diff --git a/src/main/java/com/nis/domain/ScheduleCfg.java b/src/main/java/com/nis/domain/ScheduleCfg.java index f133ae1c3..280cf314c 100644 --- a/src/main/java/com/nis/domain/ScheduleCfg.java +++ b/src/main/java/com/nis/domain/ScheduleCfg.java @@ -14,6 +14,7 @@ public class ScheduleCfg extends BaseCfg{ private String cronValid;//生效cron表达式 private String cronInvalid;//失效cron表达式 private String whereStr;//动态where 条件 + private int delFlag; private int type; public String getName() { return name; @@ -45,5 +46,11 @@ public class ScheduleCfg extends BaseCfg{ public void setType(int type) { this.type = type; } + public int getDelFlag() { + return delFlag; + } + public void setDelFlag(int delFlag) { + this.delFlag = delFlag; + } } diff --git a/src/main/java/com/nis/quartz/ScheduleCfgJob.java b/src/main/java/com/nis/quartz/ScheduleCfgJob.java index bcd20547c..6683d5032 100644 --- a/src/main/java/com/nis/quartz/ScheduleCfgJob.java +++ b/src/main/java/com/nis/quartz/ScheduleCfgJob.java @@ -82,15 +82,21 @@ public class ScheduleCfgJob implements Job { SchedulerDao dao = SpringContextHolder.getBean(SchedulerDao.class); JobDataMap dataMap = context.getJobDetail().getJobDataMap(); long scheduleCfgId = dataMap.get("scheduleCfgId") == null ? 0:dataMap.getLong("scheduleCfgId"); - long limit = dataMap.get("limit") == null ? 1000:dataMap.getLong("limit"); + long limit = dataMap.get("limit") == null ? Constants.MAAT_JSON_SEND_SIZE:dataMap.getLong("limit"); log.info(String.format("定时配置任务开始执行,scheduleCfgId:%s,limit:%s",scheduleCfgId,limit )); - List newlyCfg = null; + List allNewlySche = null; int totalNum = 0; do { - newlyCfg = dao.findNewlyCfg(scheduleCfgId, limit,1); - if(newlyCfg != null && newlyCfg.size() > 0) { - totalNum += newlyCfg.size(); - for(ScheduleCfg cfg : newlyCfg) {//先取消之前的定时配置 + allNewlySche = dao.findNewlyCfg(scheduleCfgId, limit,1,1); + if(allNewlySche != null && allNewlySche.size() > 0) { + List allAddSche = new ArrayList<>(); + totalNum += allNewlySche.size(); + //先取消之前的定时配置 + for(ScheduleCfg cfg : allNewlySche) { + //获取有效的任务 + if(cfg.getDelFlag()==1) { + allAddSche.add(cfg); + } Integer compileId = cfg.getCompileId(); try { //取消之前所有的 trigger @@ -106,7 +112,7 @@ public class ScheduleCfgJob implements Job { log.error(String.format("定时任务取消异常,compileId:%s", compileId),e); } } - for(ScheduleCfg cfg : newlyCfg) { + for(ScheduleCfg cfg : allAddSche) { Integer compileId = cfg.getCompileId(); try { //判断状态,重新添加最新的 trigger @@ -123,12 +129,12 @@ public class ScheduleCfgJob implements Job { } } //最后 保存此次 最后的id - ScheduleCfg lastCfg = newlyCfg.get(newlyCfg.size() -1); + ScheduleCfg lastCfg = allNewlySche.get(allNewlySche.size() -1); scheduleCfgId = lastCfg.getId(); dataMap.put("scheduleCfgId", scheduleCfgId); - log.info(String.format("加载定时任务,total num :%s", newlyCfg.size())); + log.info(String.format("加载定时任务,total num :%s", allNewlySche.size())); } - } while (newlyCfg != null && newlyCfg.size() > 0); + } while (allNewlySche != null && allNewlySche.size() > 0); log.info(String.format("定时配置任务结束执行,total num:%s",totalNum)); } diff --git a/src/main/java/com/nis/quartz/ScheduleStatusJob.java b/src/main/java/com/nis/quartz/ScheduleStatusJob.java index 445fc21b9..432487266 100644 --- a/src/main/java/com/nis/quartz/ScheduleStatusJob.java +++ b/src/main/java/com/nis/quartz/ScheduleStatusJob.java @@ -66,8 +66,14 @@ public class ScheduleStatusJob implements Job{ log.debug(String.format("任务开始执行,compileId:%s,isValid:%s",compileId,isValid )); //配置下发,并修改 配置表的状态,保存下发记录等 ScheduleService scheduleService = SpringContextHolder.getBean(ScheduleService.class); - scheduleService.issueCompileInfo(cfg, isValid?1:0); - log.debug(String.format("任务开始执行,compileId:%s,isValid:%s",compileId,isValid )); + try { + scheduleService.issueCompileInfo(cfg, isValid?1:0); + } catch (Exception e) { + log.error("定时任务"+cfg.getId()+"执行失败",e); + }finally { + log.debug(String.format("任务执行完成,compileId:%s,isValid:%s",compileId,isValid )); + } + } } diff --git a/src/main/java/com/nis/quartz/ScheduleSyncCfgJob.java b/src/main/java/com/nis/quartz/ScheduleSyncCfgJob.java index f3bf6d574..eb4d0b5e8 100644 --- a/src/main/java/com/nis/quartz/ScheduleSyncCfgJob.java +++ b/src/main/java/com/nis/quartz/ScheduleSyncCfgJob.java @@ -85,7 +85,7 @@ public class ScheduleSyncCfgJob implements Job { SchedulerDao dao = SpringContextHolder.getBean(SchedulerDao.class); JobDataMap dataMap = context.getJobDetail().getJobDataMap(); long scheduleCfgId = dataMap.get("scheduleCfgId") == null ? 0:dataMap.getLong("scheduleCfgId"); - long limit = dataMap.get("limit") == null ? 1000:dataMap.getLong("limit"); + long limit = dataMap.get("limit") == null ? Constants.MAAT_JSON_SEND_SIZE:dataMap.getLong("limit"); log.info(String.format("Sync定时配置任务开始扫描,scheduleCfgId:%s,limit:%s",scheduleCfgId,limit )); List newlyCfg = null; int totalNum = 0; @@ -94,7 +94,7 @@ public class ScheduleSyncCfgJob implements Job { String currentStatus = DictUtils.getDictLabel("currrent_sync_status", "status","0"); if(!(currentStatus.equals("0") || currentStatus.equals("1") || currentStatus.equals("2"))) { do { - newlyCfg = dao.findNewlyCfg(scheduleCfgId, limit,2); + newlyCfg = dao.findNewlyCfg(scheduleCfgId, limit,2,null); if(newlyCfg != null && newlyCfg.size() > 0) { totalNum += newlyCfg.size(); for(ScheduleCfg cfg : newlyCfg) {//先取消之前的定时配置 diff --git a/src/main/java/com/nis/util/SchedulerTaskUtil.java b/src/main/java/com/nis/util/SchedulerTaskUtil.java index 28edebd95..fc79ee0f2 100644 --- a/src/main/java/com/nis/util/SchedulerTaskUtil.java +++ b/src/main/java/com/nis/util/SchedulerTaskUtil.java @@ -76,7 +76,7 @@ public class SchedulerTaskUtil { * @throws IllegalAccessException * @throws IllegalArgumentException */ - public boolean updateConfigByServiceAndCompile(Integer serviceId,Integer compileId,Integer isValid,Integer isIssueContent,ConfigSynchronizationDao configSynchronizationDao) throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException{ + public void updateConfigByServiceAndCompile(Integer serviceId,Integer compileId,Integer isValid,Integer isIssueContent,ConfigSynchronizationDao configSynchronizationDao)throws Exception{ // SecurityManagerInit(); // Subject subject = login("admin","zdjzsoft"); // System.out.println(subject.getPrincipal()); @@ -328,9 +328,6 @@ public class SchedulerTaskUtil { ToMaatResult result = ConfigServiceUtil.postMaatCfg(json); if(result!=null){ logger.info("定时任务修改NTC/PROXY策略的MAAT配置内容响应信息:"+result.getMsg()); - return true; - }else{ - return false; } }else{ /*maatCfg = new MaatCfg(); @@ -473,9 +470,6 @@ public class SchedulerTaskUtil { ToMaatResult result = ConfigServiceUtil.postMaatCfg(json); if(result!=null){ logger.info("定时任务修改DDOS配置内容响应信息:"+result.getMsg()); - return true; - }else{ - return false; } }else{ /*maatCfg = new MaatCfg(); @@ -614,10 +608,7 @@ public class SchedulerTaskUtil { ToMaatResult result = ConfigServiceUtil.postMaatCfg(json); if(result!=null){ logger.info("定时任务修改文件摘要类配置内容响应信息:"+result.getMsg()); - return true; - }else{ - return false; - } + } }else{ /*maatCfg = new MaatCfg(); maatCfg.initDefaultValue(); @@ -776,10 +767,7 @@ public class SchedulerTaskUtil { ToMaatResult result = ConfigServiceUtil.postMaatCfg(json); if(result!=null){ logger.info("定时任务更新APP POLICY配置内容响应信息:"+result.getMsg()); - return true; - }else{ - return false; - } + } }else{ /*maatCfg = new MaatCfg(); maatCfg.initDefaultValue(); @@ -818,7 +806,7 @@ public class SchedulerTaskUtil { }else{//只修改配置状态 //下发并修改配置状态的参数类 - ToUpdateMaatBeanStatus maatStatusBean = new ToUpdateMaatBeanStatus(); + /*ToUpdateMaatBeanStatus maatStatusBean = new ToUpdateMaatBeanStatus(); UpdateMaatCfgStatus updateCfg = new UpdateMaatCfgStatus(); List configCompileStartStopList = new ArrayList(); maatStatusBean.setVersion(Constants.MAAT_VERSION); @@ -864,13 +852,13 @@ public class SchedulerTaskUtil { String json=BaseService.gsonToJson(maatStatusBean); logger.info("MAAT类配置启停状态修改内容:"+json); //调用服务启停接口 - String result = ConfigServiceUtil.configStatusUpdate(json); + ToMaatResult result = ConfigServiceUtil.put(json,1); if(result!=null){ - logger.info("MAAT类配置启停状态修改结果:"+result); + logger.info("MAAT类配置启停状态修改结果:"+result.getMsg()); }else{ return false; - } - /*maatCfg = new MaatCfg(); + }*/ + maatCfg = new MaatCfg(); maatCfg.initDefaultValue(); maatBean = new ToMaatBean(); configCompileList = new ArrayList(); @@ -880,7 +868,7 @@ public class SchedulerTaskUtil { configCompileList.add(maatCfg); maatBean.setConfigCompileList(configCompileList); maatBean.setAuditTime(entity.getAuditTime()); - maatBean.setCreatorName(entity.getCurrentUser().getName()); + maatBean.setCreatorName("TaskScheduler"); maatBean.setVersion(Constants.MAAT_VERSION); maatBean.setOpAction(Constants.UPDATE_ACTION); //调用服务接口取消配置 @@ -888,7 +876,7 @@ public class SchedulerTaskUtil { logger.info("定时器修改配置状态:"+json); //调用服务接口下发配置 ToMaatResult result = ConfigServiceUtil.put(json,1); - logger.info("定时器修改配置状态响应时间:"+result.getMsg());*/ + logger.info("定时器修改配置状态响应时间:"+result.getMsg()); } }else if("2".equals(serviceType)){//回调类配置 @@ -948,17 +936,11 @@ public class SchedulerTaskUtil { //调用服务接口修改回调类配置状态 ToMaatResult result = ConfigServiceUtil.put(json,2); logger.info("定时器修改回调类配置状态响应信息:"+result); - if(result==null){ - return false; - }else{ - return true; - } } } } - return true; } //定时器非前台业务,需要设置shiro的SecurityManager private void SecurityManagerInit(){ diff --git a/src/main/java/com/nis/web/dao/SchedulerDao.java b/src/main/java/com/nis/web/dao/SchedulerDao.java index a6f22ff3c..356190c24 100644 --- a/src/main/java/com/nis/web/dao/SchedulerDao.java +++ b/src/main/java/com/nis/web/dao/SchedulerDao.java @@ -20,14 +20,14 @@ public interface SchedulerDao extends CrudDao { * @param size * @return */ - List findNewlyCfg(@Param("id")Long id,@Param("limit")Long limit,@Param("type")int type); + List findNewlyCfg(@Param("id")Long id,@Param("limit")Long limit,@Param("type")int type,@Param("delFlag")Integer delFlag); /** * 更新 del_flag 字段为删除标识 * @param cfg * @return */ - int deleteByCompileId(ScheduleCfg cfg); + int deleteByCompileIds(String compileIds); /** * 查找 配置 下发 最新记录 diff --git a/src/main/java/com/nis/web/dao/SchedulerDao.xml b/src/main/java/com/nis/web/dao/SchedulerDao.xml index 933f21fb4..4a38bc71d 100644 --- a/src/main/java/com/nis/web/dao/SchedulerDao.xml +++ b/src/main/java/com/nis/web/dao/SchedulerDao.xml @@ -24,6 +24,7 @@ + @@ -123,6 +124,36 @@ order by a.id + +