添加数据同步代码

This commit is contained in:
hzj
2024-01-11 13:43:11 +08:00
parent 4dcb3af7ae
commit 7b31e0376c
4 changed files with 30 additions and 18 deletions

View File

@@ -44,6 +44,7 @@ public abstract class ReplenishMybatisServiceImpl<M extends BatchBaseMapper<T>,
} else {
this.baseMapper.insertBatchSomeColumn(dataTemp);
}
System.gc();
}

View File

@@ -1,5 +1,6 @@
package com.njcn.oracle.service;
import com.njcn.oracle.bo.param.DataAsynParam;
import com.njcn.oracle.mybatis.service.IReplenishMybatisService;
import java.time.LocalDate;
@@ -13,4 +14,6 @@ import java.time.LocalDate;
*/
public interface DataSyncService {
void dataSync(IReplenishMybatisService executor, String temp, LocalDate migration);
void dataBacthSysc(DataAsynParam dataAsynParam);
}

View File

@@ -3,11 +3,14 @@ package com.njcn.oracle.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.LocalDateTimeUtil;
import cn.hutool.extra.spring.SpringUtil;
import com.njcn.oracle.bo.param.DataAsynParam;
import com.njcn.oracle.bo.param.MigrationParam;
import com.njcn.oracle.bo.po.JobDetail;
import com.njcn.oracle.mybatis.service.IReplenishMybatisService;
import com.njcn.oracle.service.DataSyncService;
import com.njcn.oracle.service.JobDetailService;
import com.njcn.oracle.util.LocalDateUtil;
import lombok.RequiredArgsConstructor;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
@@ -31,7 +34,6 @@ public class DataSyncServiceImpl implements DataSyncService {
private final JobDetailService jobDetailService;
@Override
@Async
public void dataSync(IReplenishMybatisService executor, String temp, LocalDate date) {
StopWatch stopWatch = new StopWatch();
stopWatch.start();
@@ -85,4 +87,26 @@ public class DataSyncServiceImpl implements DataSyncService {
}
}
@Override
@Async
public void dataBacthSysc(DataAsynParam dataAsynParam) {
List<String> tableNames = dataAsynParam.getTableNames();
tableNames.stream().forEach(temp->{
IReplenishMybatisService executor = null;
try {
executor = (IReplenishMybatisService) SpringUtil.getBean(Class.forName("com.njcn.oracle.service.impl." + temp + "ServiceImpl"));
} catch (ClassNotFoundException e) {
throw new RuntimeException(e);
}
List<LocalDate> dateList = LocalDateUtil.getDateList(dataAsynParam.getStartTime(), dataAsynParam.getEndTime());
IReplenishMybatisService finalExecutor = executor;
dateList.forEach(date->{
this.dataSync(finalExecutor,temp,date);
});
});
}
}

View File

@@ -53,26 +53,10 @@ public class DataSyncController {
@ApiImplicitParam(name = "dataAsynParam", value = "数据同步参数", required = true)
public Boolean dataSync(@RequestBody DataAsynParam dataAsynParam){
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
List<String> tableNames = dataAsynParam.getTableNames();
tableNames.stream().forEach(temp->{
IReplenishMybatisService executor = null;
try {
executor = (IReplenishMybatisService) SpringUtil.getBean(Class.forName("com.njcn.oracle.service.impl." + temp + "ServiceImpl"));
} catch (ClassNotFoundException e) {
throw new RuntimeException(e);
}
List<LocalDate> dateList = LocalDateUtil.getDateList(dataAsynParam.getStartTime(), dataAsynParam.getEndTime());
IReplenishMybatisService finalExecutor = executor;
dateList.forEach(date->{
dataSyncService.dataSync(finalExecutor,temp,date);
});
dataSyncService.dataBacthSysc(dataAsynParam);
});
return true;// HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, "数据同步");
}