diff --git a/doc/XXL-JOB官方文档.md b/doc/XXL-JOB官方文档.md index ade14997..7cf27c2a 100644 --- a/doc/XXL-JOB官方文档.md +++ b/doc/XXL-JOB官方文档.md @@ -2702,7 +2702,7 @@ b、本次升级针对客户端rollinglog依赖字段做规范约束,如不关 - 执行日志:新增“执行RollingLog开关”:任务维度自定义,支持:RollingLog、普通日志(slf4j输出)、关闭(不输出); - 21、AccessToken:废弃全局配置;支持在线管理,动态生成、动态启停; - 22、任务执行后分批批量更新,提升调度性能; - +- 23、任务管理OpenAPI; ## 八、其他 diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/constant/TriggerStatus.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/constant/TriggerStatus.java new file mode 100644 index 00000000..de13e009 --- /dev/null +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/constant/TriggerStatus.java @@ -0,0 +1,32 @@ +package com.xxl.job.admin.constant; + +public enum TriggerStatus { + + STOPPED(0, "stopped"), + RUNNING(1, "running"); + + private int value; + private String desc; + + TriggerStatus(int value, String desc) { + this.value = value; + this.desc = desc; + } + + public int getValue() { + return value; + } + + public void setValue(int value) { + this.value = value; + } + + public String getDesc() { + return desc; + } + + public void setDesc(String desc) { + this.desc = desc; + } + +} diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/model/XxlJobInfo.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/model/XxlJobInfo.java index f09d0a10..5a3b80de 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/model/XxlJobInfo.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/model/XxlJobInfo.java @@ -20,25 +20,25 @@ public class XxlJobInfo { private String author; // 负责人 private String alarmEmail; // 报警邮件 - private String scheduleType; // 调度类型 + private String scheduleType; // 调度类型:ScheduleTypeEnum private String scheduleConf; // 调度配置,值含义取决于调度类型 - private String misfireStrategy; // 调度过期策略 + private String misfireStrategy; // 调度过期策略:MisfireStrategyEnum - private String executorRouteStrategy; // 执行器路由策略 + private String executorRouteStrategy; // 执行器路由策略:ExecutorRouteStrategyEnum private String executorHandler; // 执行器,任务Handler名称 private String executorParam; // 执行器,任务参数 - private String executorBlockStrategy; // 阻塞处理策略 + private String executorBlockStrategy; // 阻塞处理策略:ExecutorBlockStrategyEnum private int executorTimeout; // 任务执行超时时间,单位秒 private int executorFailRetryCount; // 失败重试次数 - private String glueType; // GLUE类型 #com.xxl.job.core.glue.GlueTypeEnum + private String glueType; // GLUE类型:GlueTypeEnum private String glueSource; // GLUE源代码 private String glueRemark; // GLUE备注 private Date glueUpdatetime; // GLUE更新时间 private String childJobId; // 子任务ID,多个逗号分隔 - private int triggerStatus; // 调度状态:0-停止,1-运行 + private int triggerStatus; // 调度状态:TriggerStatus private long triggerLastTime; // 上次调度时间 private long triggerNextTime; // 下次调度时间 diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/scheduler/thread/JobScheduleHelper.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/scheduler/thread/JobScheduleHelper.java index c51b53c7..de7df79c 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/scheduler/thread/JobScheduleHelper.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/scheduler/thread/JobScheduleHelper.java @@ -1,5 +1,6 @@ package com.xxl.job.admin.scheduler.thread; +import com.xxl.job.admin.constant.TriggerStatus; import com.xxl.job.admin.model.XxlJobInfo; import com.xxl.job.admin.scheduler.config.XxlJobAdminBootstrap; import com.xxl.job.admin.scheduler.misfire.MisfireStrategyEnum; @@ -97,7 +98,7 @@ public class JobScheduleHelper { refreshNextTriggerTime(jobInfo, new Date()); // next-trigger-time in 5s, pre-read again - if (jobInfo.getTriggerStatus()==1 && nowTime + PRE_READ_MS > jobInfo.getTriggerNextTime()) { + if (jobInfo.getTriggerStatus()== TriggerStatus.RUNNING.getValue() && nowTime + PRE_READ_MS > jobInfo.getTriggerNextTime()) { // 1、make ring second int ringSecond = (int)((jobInfo.getTriggerNextTime()/1000)%60); @@ -252,7 +253,7 @@ public class JobScheduleHelper { jobInfo.setTriggerNextTime(nextTriggerTime.getTime()); } else { // generate fail, stop job - jobInfo.setTriggerStatus(0); + jobInfo.setTriggerStatus(TriggerStatus.STOPPED.getValue()); jobInfo.setTriggerLastTime(0); jobInfo.setTriggerNextTime(0); logger.error(">>>>>>>>>>> xxl-job, refreshNextValidTime fail for job: jobId={}, scheduleType={}, scheduleConf={}", @@ -260,7 +261,7 @@ public class JobScheduleHelper { } } catch (Throwable e) { // generate error, stop job - jobInfo.setTriggerStatus(0); + jobInfo.setTriggerStatus(TriggerStatus.STOPPED.getValue()); jobInfo.setTriggerLastTime(0); jobInfo.setTriggerNextTime(0); diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/service/impl/XxlJobServiceImpl.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/service/impl/XxlJobServiceImpl.java index 40cf80ce..7ee56987 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/service/impl/XxlJobServiceImpl.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/service/impl/XxlJobServiceImpl.java @@ -1,5 +1,6 @@ package com.xxl.job.admin.service.impl; +import com.xxl.job.admin.constant.TriggerStatus; import com.xxl.job.admin.mapper.*; import com.xxl.job.admin.model.XxlJobGroup; import com.xxl.job.admin.model.XxlJobInfo; @@ -273,7 +274,7 @@ public class XxlJobServiceImpl implements XxlJobService { long nextTriggerTime = exists_jobInfo.getTriggerNextTime(); boolean scheduleDataNotChanged = jobInfo.getScheduleType().equals(exists_jobInfo.getScheduleType()) && jobInfo.getScheduleConf().equals(exists_jobInfo.getScheduleConf()); // 触发配置如果不变,避免重复计算; - if (exists_jobInfo.getTriggerStatus() == 1 && !scheduleDataNotChanged) { + if (exists_jobInfo.getTriggerStatus() == TriggerStatus.RUNNING.getValue() && !scheduleDataNotChanged) { try { // generate next trigger time Date nextValidTime = scheduleTypeEnum.getScheduleType().generateNextTriggerTime(jobInfo, new Date(System.currentTimeMillis() + JobScheduleHelper.PRE_READ_MS)); @@ -372,7 +373,7 @@ public class XxlJobServiceImpl implements XxlJobService { return Response.ofFail ( (I18nUtil.getString("schedule_type")+I18nUtil.getString("system_unvalid")) ); } - xxlJobInfo.setTriggerStatus(1); + xxlJobInfo.setTriggerStatus(TriggerStatus.RUNNING.getValue()); xxlJobInfo.setTriggerLastTime(0); xxlJobInfo.setTriggerNextTime(nextTriggerTime); @@ -400,7 +401,7 @@ public class XxlJobServiceImpl implements XxlJobService { } // stop - xxlJobInfo.setTriggerStatus(0); + xxlJobInfo.setTriggerStatus(TriggerStatus.STOPPED.getValue()); xxlJobInfo.setTriggerLastTime(0); xxlJobInfo.setTriggerNextTime(0);