diff --git a/neutrino-core/src/main/java/fun/asgc/neutrino/core/quartz/DefaultJobSource.java b/neutrino-core/src/main/java/fun/asgc/neutrino/core/quartz/DefaultJobSource.java index afbe005c..6c4ad85b 100644 --- a/neutrino-core/src/main/java/fun/asgc/neutrino/core/quartz/DefaultJobSource.java +++ b/neutrino-core/src/main/java/fun/asgc/neutrino/core/quartz/DefaultJobSource.java @@ -54,6 +54,7 @@ public class DefaultJobSource implements IJobSource { .setDesc(handler.desc()) .setCron(handler.cron()) .setParam(handler.param()) + .setEnable(true) ); } return jobInfoList; diff --git a/neutrino-core/src/main/java/fun/asgc/neutrino/core/quartz/IJobCallback.java b/neutrino-core/src/main/java/fun/asgc/neutrino/core/quartz/IJobCallback.java index 1c4a232f..402badd1 100644 --- a/neutrino-core/src/main/java/fun/asgc/neutrino/core/quartz/IJobCallback.java +++ b/neutrino-core/src/main/java/fun/asgc/neutrino/core/quartz/IJobCallback.java @@ -31,7 +31,8 @@ public interface IJobCallback { /** * 执行日志 * @param jobInfo + * @param param * @param throwable */ - void executeLog(JobInfo jobInfo, Throwable throwable); + void executeLog(JobInfo jobInfo, String param, Throwable throwable); } diff --git a/neutrino-core/src/main/java/fun/asgc/neutrino/core/quartz/JobExecutor.java b/neutrino-core/src/main/java/fun/asgc/neutrino/core/quartz/JobExecutor.java index 0e14ed57..bb6e42a9 100644 --- a/neutrino-core/src/main/java/fun/asgc/neutrino/core/quartz/JobExecutor.java +++ b/neutrino-core/src/main/java/fun/asgc/neutrino/core/quartz/JobExecutor.java @@ -112,7 +112,7 @@ public class JobExecutor implements ApplicationRunner, IJobExecutor { @Override public void add(JobInfo jobInfo) throws JobException { if (null == jobInfo || StringUtil.isEmpty(jobInfo.getId()) || StringUtil.isEmpty(jobInfo.getName()) || - StringUtil.isEmpty(jobInfo.getCron()) || runJobSet.contains(jobInfo.getName())) { + StringUtil.isEmpty(jobInfo.getCron())) { return; } synchronized (jobInfo.getId()) { @@ -128,8 +128,10 @@ public class JobExecutor implements ApplicationRunner, IJobExecutor { JobDetail jobDetail = JobBuilder.newJob(JobBean.class).withIdentity(jobKey).build(); try { - scheduler.scheduleJob(jobDetail, cronTrigger); - scheduler.start(); + if (jobInfo.isEnable()) { + scheduler.scheduleJob(jobDetail, cronTrigger); + scheduler.start(); + } } catch (Exception e) { throw new RuntimeException(String.format("新增job[name=%s]异常", jobInfo.getName())); } @@ -190,10 +192,10 @@ public class JobExecutor implements ApplicationRunner, IJobExecutor { try { jobHandler.execute(param); if (null != jobCallback) { - jobCallback.executeLog(jobInfo, null); + jobCallback.executeLog(jobInfo, param, null); } } catch (Throwable e) { - jobCallback.executeLog(jobInfo, e); + jobCallback.executeLog(jobInfo, param, e); } }); } diff --git a/neutrino-core/src/main/java/fun/asgc/neutrino/core/quartz/JobInfo.java b/neutrino-core/src/main/java/fun/asgc/neutrino/core/quartz/JobInfo.java index e5ace0d2..c7055f0a 100644 --- a/neutrino-core/src/main/java/fun/asgc/neutrino/core/quartz/JobInfo.java +++ b/neutrino-core/src/main/java/fun/asgc/neutrino/core/quartz/JobInfo.java @@ -39,5 +39,6 @@ public class JobInfo { private String desc; private String cron; private String param; + private boolean enable; private Map extension; } diff --git a/neutrino-core/src/test/java/fun/asgc/neutrino/core/quartz/test2/JobCallback.java b/neutrino-core/src/test/java/fun/asgc/neutrino/core/quartz/test2/JobCallback.java index 639abf4d..1bd14b1e 100644 --- a/neutrino-core/src/test/java/fun/asgc/neutrino/core/quartz/test2/JobCallback.java +++ b/neutrino-core/src/test/java/fun/asgc/neutrino/core/quartz/test2/JobCallback.java @@ -34,7 +34,7 @@ import lombok.extern.slf4j.Slf4j; public class JobCallback implements IJobCallback { @Override - public void executeLog(JobInfo jobInfo, Throwable throwable) { + public void executeLog(JobInfo jobInfo, String param, Throwable throwable) { if (null == throwable) { log.info("job[name={}]执行完毕", jobInfo.getId(), jobInfo.getName()); } else { diff --git a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/DataCleanMapper.java b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/DataCleanMapper.java index 87dbc372..1b77d255 100644 --- a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/DataCleanMapper.java +++ b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/DataCleanMapper.java @@ -16,6 +16,6 @@ import java.util.Date; public interface DataCleanMapper extends SqlMapper { @Delete("delete from `job_log` where create_time < ?") - void cleanJobLog(Date date); + void cleanJobLog(long date); } diff --git a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/JobInfoMapper.java b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/JobInfoMapper.java index 8f164f53..7ab06ec6 100644 --- a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/JobInfoMapper.java +++ b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/JobInfoMapper.java @@ -56,8 +56,8 @@ public interface JobInfoMapper extends SqlMapper { void updateEnableStatus(@Param("id") Integer id, @Param("enable") Integer enable, @Param("updateTime") Date updateTime); @ResultType(JobInfoDO.class) - @Select("select * from job_info where enable = 1") - List findEnableList(); + @Select("select * from job_info") + List findList(); void update(JobInfoDO jobInfoDO); } diff --git a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/job/DataCleanJob.java b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/job/DataCleanJob.java index 094ab87a..dc01a175 100644 --- a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/job/DataCleanJob.java +++ b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/job/DataCleanJob.java @@ -11,6 +11,7 @@ import fun.asgc.neutrino.proxy.server.dal.DataCleanMapper; import lombok.Data; import lombok.experimental.Accessors; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import java.text.SimpleDateFormat; import java.util.Calendar; @@ -38,14 +39,16 @@ public class DataCleanJob implements IJobHandler { public void execute(String s) throws Exception { JobParams jobParams = getParams(s); - Date date = DateUtil.addDate(new Date(), Calendar.DATE, jobParams.getJobLogKeepDays()); + Date date = DateUtil.addDate(new Date(), Calendar.DATE, -1 * jobParams.getJobLogKeepDays()); log.info("清理调度管理日志 date:{}", sdf.format(date)); - dataCleanMapper.cleanJobLog(date); + dataCleanMapper.cleanJobLog(date.getTime()); } public static JobParams getParams(String s) { try { - return JSONObject.parseObject(s, JobParams.class); + if (StringUtils.isNotBlank(s)) { + return JSONObject.parseObject(s, JobParams.class); + } } catch (Exception e) { // ignore } diff --git a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/service/JobInfoService.java b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/service/JobInfoService.java index 45f3a043..da1691b7 100644 --- a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/service/JobInfoService.java +++ b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/service/JobInfoService.java @@ -74,6 +74,7 @@ public class JobInfoService implements IJobSource { .setDesc(jobInfoDO.getDesc()) .setCron(jobInfoDO.getCron()) .setParam(jobInfoDO.getParam()) + .setEnable(true) ); } else { BeanManager.getBean(JobExecutor.class).remove(String.valueOf(req.getId())); @@ -89,7 +90,7 @@ public class JobInfoService implements IJobSource { @Override public List sourceList() { List jobInfoList = Lists.newArrayList(); - List jobInfoDOList = jobInfoMapper.findEnableList(); + List jobInfoDOList = jobInfoMapper.findList(); if (CollectionUtil.isEmpty(jobInfoDOList)) { return jobInfoList; } @@ -100,6 +101,7 @@ public class JobInfoService implements IJobSource { .setDesc(item.getDesc()) .setCron(item.getCron()) .setParam(item.getParam()) + .setEnable(EnableStatusEnum.ENABLE.getStatus().equals(item.getEnable())) ); } diff --git a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/service/JobLogService.java b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/service/JobLogService.java index 250300ac..3c9c536c 100644 --- a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/service/JobLogService.java +++ b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/service/JobLogService.java @@ -46,7 +46,7 @@ public class JobLogService implements IJobCallback { private JobLogMapper jobLogMapper; @Override - public void executeLog(JobInfo jobInfo, Throwable throwable) { + public void executeLog(JobInfo jobInfo, String param, Throwable throwable) { Integer code = 0; String msg = ""; if (null == throwable) { @@ -60,7 +60,7 @@ public class JobLogService implements IJobCallback { jobLogMapper.add(new JobLogDO() .setJobId(Integer.valueOf(jobInfo.getId())) .setHandler(jobInfo.getName()) - .setParam(jobInfo.getParam()) + .setParam(param) .setCode(code) .setMsg(msg) .setAlarmStatus(0)