新增MySQL和pg数据库的同步
This commit is contained in:
@@ -46,14 +46,46 @@ public class taskDbSync {
|
||||
private static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern("yyyyMMdd");
|
||||
private static final String dsValue = LocalDate.now().format(DATE_FORMATTER);
|
||||
|
||||
/**
|
||||
* 运行全部任务
|
||||
*/
|
||||
@GetMapping("/getTaskSyncDbInfo")
|
||||
public ApiResult<?> jobSyncTask(String token) {
|
||||
if (vToken.isValidToken(token)) {
|
||||
public ApiResult<?> jobSyncAllTask(String token) {
|
||||
if (!vToken.isValidToken(token)) {
|
||||
return ApiResult.error(401, "无效的访问令牌");
|
||||
}
|
||||
List<SyncTask> syncTasks = syncTaskService.list();
|
||||
// 记录是否有任务失败(仅用于后台日志,不影响接口返回)
|
||||
List<String> errorMessages = new ArrayList<>();
|
||||
for (SyncTask task : syncTasks) {
|
||||
// 提交任务到线程池(异步执行,接口不等待)
|
||||
execSyncTask(task, errorMessages);
|
||||
}
|
||||
// 接口立即返回,不等待任务执行完成
|
||||
return ApiResult.success();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 运行单个任务
|
||||
*/
|
||||
@GetMapping("/getTaskSyncDbByInfo")
|
||||
public ApiResult<?> jobSyncOneTask(String token, String taskId) {
|
||||
if (!vToken.isValidToken(token)) {
|
||||
return ApiResult.error(401, "无效的访问令牌");
|
||||
}
|
||||
try {
|
||||
SyncTask task = syncTaskService.getById(taskId);
|
||||
// 记录是否有任务失败(仅用于后台日志,不影响接口返回)
|
||||
List<String> errorMessages = new ArrayList<>();
|
||||
execSyncTask(task, errorMessages);
|
||||
return ApiResult.success();
|
||||
} catch (Exception e) {
|
||||
return ApiResult.error(101, e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
private void execSyncTask(SyncTask task, List<String> errorMessages) {
|
||||
hostExecutor.execute(() -> {
|
||||
try {
|
||||
// 1. 获取源/目标数据库配置
|
||||
@@ -76,11 +108,6 @@ public class taskDbSync {
|
||||
});
|
||||
System.out.println(errorMessages);
|
||||
}
|
||||
// 接口立即返回,不等待任务执行完成
|
||||
return ApiResult.success();
|
||||
}
|
||||
return ApiResult.error();
|
||||
}
|
||||
|
||||
/**
|
||||
* 同步表数据
|
||||
|
||||
Reference in New Issue
Block a user