定时任务任务表增加type:1-正常任务;2-全量同步执行时未执行的任务。
增加全量同步时未执行任务的扫描
全量同步时,业务无数据也需要下发{}至服务端。
This commit is contained in:
@@ -40,20 +40,65 @@ public class ScheduleService extends BaseService{
|
||||
ScheduleExceInfo exceNew = dao.findScheduleExceNew(se);
|
||||
//2、如果已经下发,直接下发状态,否则下发配置
|
||||
Integer issueResult = 1;
|
||||
//是否下发内容
|
||||
Integer isIssueContent = 1;
|
||||
String errorInfo = null;
|
||||
String tableName = cfg.getTableName();
|
||||
SchedulerTaskUtil scheduler = new SchedulerTaskUtil();
|
||||
boolean udpateConfigStatus = false;
|
||||
|
||||
try {
|
||||
if(isValid == 1 && (exceNew == null || exceNew.getIsIssue() == 1)) {//生效配置需要下发
|
||||
udpateConfigStatus = scheduler.updateConfigByServiceAndCompile(cfg.getServiceId(), compileId, isValid, 1,configSynchronizationDao);
|
||||
logger.info(String.format("定时器下发配置内容,compileId:%s,isValid:%s,issueResult:%s,errorInfo:%s",compileId,isValid,issueResult,errorInfo));
|
||||
}else{//只需修改状态
|
||||
udpateConfigStatus = scheduler.updateConfigByServiceAndCompile(cfg.getServiceId(), compileId, isValid, 0,configSynchronizationDao);
|
||||
logger.info(String.format("定时器修改配置状态,compileId:%s,isValid:%s,issueResult:%s,errorInfo:%s",compileId,isValid,issueResult,errorInfo));
|
||||
//生效配置需要下发
|
||||
if(isValid == 1 && (exceNew == null || exceNew.getIsIssue() == 1)) {
|
||||
isIssueContent=1;
|
||||
}else {
|
||||
//之下发状态
|
||||
isIssueContent=0;
|
||||
}
|
||||
|
||||
|
||||
//首先对数据库操作
|
||||
if(exceNew == null) {
|
||||
//新增exce_new 表状态
|
||||
exceNew = new ScheduleExceInfo();
|
||||
exceNew.setCompileId(compileId);
|
||||
exceNew.setIssueStatus(isValid);
|
||||
exceNew.setExceTime(new Date());
|
||||
exceNew.setIssueResult(issueResult);
|
||||
exceNew.setErrorInfo(errorInfo);
|
||||
exceNew.setIsIssue(0);
|
||||
exceNew.setScheduleId(cfg.getId());
|
||||
dao.insertScheduleExceNew(exceNew);
|
||||
}else {
|
||||
//修改 exce_new 表状态
|
||||
exceNew.setExceTime(new Date());
|
||||
exceNew.setIssueResult(issueResult);
|
||||
exceNew.setErrorInfo(errorInfo);
|
||||
exceNew.setScheduleId(cfg.getId());
|
||||
dao.updateScheduleExceNew(exceNew);
|
||||
}
|
||||
ServiceConfigTemplateUtil serviceTemplate = new ServiceConfigTemplateUtil();
|
||||
List<Map<String,Object>> serviceList = serviceTemplate.getServiceListByServiceId(cfg.getServiceId());
|
||||
//根据编译ID查询配置表中的配置信息
|
||||
for(Map<String,Object> service:serviceList){
|
||||
//获取业务下的配置域
|
||||
List<Map<String,Object>> cfgList = (List<Map<String, Object>>) service.get("cfgList");
|
||||
//查询子域配置详情
|
||||
if(cfgList!=null){
|
||||
for(Map<String,Object> m:cfgList){
|
||||
String regionTable = m.get("tableName").toString();
|
||||
//更新配置域表的isValid字段
|
||||
dao.updateCfgTableStatus(regionTable, compileId, isValid);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
//3、更新 配置表的 isValid 字段,添加 exce_log 记录
|
||||
dao.insertScheduleExceLog(exceNew);
|
||||
dao.updateCfgTableStatus(tableName, compileId, isValid);
|
||||
|
||||
|
||||
//数据库操作完成后与服务端交互
|
||||
try {
|
||||
udpateConfigStatus = scheduler.updateConfigByServiceAndCompile(cfg.getServiceId(), compileId, isValid, isIssueContent,configSynchronizationDao);
|
||||
logger.info(String.format("定时器下发配置内容,compileId:%s,isValid:%s,issueResult:%s,errorInfo:%s",compileId,isValid,issueResult,errorInfo));
|
||||
} catch (NoSuchFieldException e) {
|
||||
udpateConfigStatus = false;
|
||||
e.printStackTrace();
|
||||
@@ -70,46 +115,6 @@ public class ScheduleService extends BaseService{
|
||||
// logger.info(String.format("配置状态更新,compileId:%s,isValid:%s,issueResult:%s,errorInfo:%s",compileId,isValid,issueResult,errorInfo));
|
||||
|
||||
|
||||
if(udpateConfigStatus){//配置更新成功
|
||||
if(exceNew == null) {
|
||||
//新增exce_new 表状态
|
||||
exceNew = new ScheduleExceInfo();
|
||||
exceNew.setCompileId(compileId);
|
||||
exceNew.setIssueStatus(isValid);
|
||||
exceNew.setExceTime(new Date());
|
||||
exceNew.setIssueResult(issueResult);
|
||||
exceNew.setErrorInfo(errorInfo);
|
||||
exceNew.setIsIssue(0);
|
||||
exceNew.setScheduleId(cfg.getId());
|
||||
dao.insertScheduleExceNew(exceNew);
|
||||
}else {
|
||||
//修改 exce_new 表状态
|
||||
exceNew.setExceTime(new Date());
|
||||
exceNew.setIssueResult(issueResult);
|
||||
exceNew.setErrorInfo(errorInfo);
|
||||
exceNew.setScheduleId(cfg.getId());
|
||||
dao.updateScheduleExceNew(exceNew);
|
||||
}
|
||||
ServiceConfigTemplateUtil serviceTemplate = new ServiceConfigTemplateUtil();
|
||||
List<Map<String,Object>> serviceList = serviceTemplate.getServiceListByServiceId(cfg.getServiceId());
|
||||
//根据编译ID查询配置表中的配置信息
|
||||
for(Map<String,Object> service:serviceList){
|
||||
//获取业务下的配置域
|
||||
List<Map<String,Object>> cfgList = (List<Map<String, Object>>) service.get("cfgList");
|
||||
//查询子域配置详情
|
||||
if(cfgList!=null){
|
||||
for(Map<String,Object> m:cfgList){
|
||||
String regionTable = m.get("tableName").toString();
|
||||
//更新配置域表的isValid字段
|
||||
dao.updateCfgTableStatus(regionTable, compileId, isValid);
|
||||
}
|
||||
}
|
||||
}
|
||||
//3、更新 配置表的 isValid 字段,添加 exce_log 记录
|
||||
dao.insertScheduleExceLog(exceNew);
|
||||
dao.updateCfgTableStatus(tableName, compileId, isValid);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user