diff --git a/doc/XXL-JOB官方文档.md b/doc/XXL-JOB官方文档.md index a3dd8486..98d15e8c 100644 --- a/doc/XXL-JOB官方文档.md +++ b/doc/XXL-JOB官方文档.md @@ -951,7 +951,6 @@ echo "分片总数 total = $3" --- | --- | --- 成功 | IJobHandler.SUCCESS | 0 失败 | IJobHandler.FAIL | -1(其他) -失败重试 | IJobHandler.FAIL_RETRY | 101 ### 5.16 任务超时控制 支持设置任务超时时间,任务运行超时的情况下,将会主动中断任务; @@ -1241,7 +1240,9 @@ Tips: 历史版本(V1.3.x)目前已经Release至稳定版本, 进入维护阶段 - 22、告警邮件固定使用 UTF-8 编码格式,修复由机器编码导致的邮件乱码问题; - 23、新增任务运行模式 "GLUE模式(PHP) ",支持php脚本任务; - 24、执行器手动设置IP时取消绑定Host的操作,该IP仅供执行器注册使用;修复指定外网IP时无法绑定执行器Host的问题; -- 25、[迭代中]任务失败重试优化:收敛并废弃现有失败重试策略,新增任务属性 "失败重试次数",支持自定义失败重试次数,任务失败时将会根据该值进行失败重试; +- 25、任务失败重试优化:收敛并废弃现有失败重试策略,如调度失败、执行失败、状态码失败等,新增任务属性 "失败重试次数",支持自定义失败重试次数,任务失败时将会根据该值进行失败重试; +- 26、【迭代中】父子任务循环限制放开,支持特殊场景; +- 27、【迭代中】API服务支持动态参数; ### TODO LIST diff --git a/doc/db/tables_xxl_job.sql b/doc/db/tables_xxl_job.sql index f0781af4..8d88fb64 100644 --- a/doc/db/tables_xxl_job.sql +++ b/doc/db/tables_xxl_job.sql @@ -162,7 +162,6 @@ CREATE TABLE `XXL_JOB_QRTZ_TRIGGER_INFO` ( `executor_handler` varchar(255) DEFAULT NULL COMMENT '执行器任务handler', `executor_param` varchar(512) DEFAULT NULL COMMENT '执行器任务参数', `executor_block_strategy` varchar(50) DEFAULT NULL COMMENT '阻塞处理策略', - `executor_fail_strategy` varchar(50) DEFAULT NULL COMMENT '失败处理策略', `executor_timeout` int(11) NOT NULL DEFAULT '0' COMMENT '任务执行超时时间,单位秒', `executor_fail_retry_count` int(11) NOT NULL DEFAULT '0' COMMENT '失败重试次数', `glue_type` varchar(50) NOT NULL COMMENT 'GLUE类型', @@ -181,6 +180,7 @@ CREATE TABLE `XXL_JOB_QRTZ_TRIGGER_LOG` ( `executor_address` varchar(255) DEFAULT NULL COMMENT '执行器地址,本次执行的地址', `executor_handler` varchar(255) DEFAULT NULL COMMENT '执行器任务handler', `executor_param` varchar(512) DEFAULT NULL COMMENT '执行器任务参数', + `executor_fail_retry_count` int(11) NOT NULL DEFAULT '0' COMMENT '失败重试次数', `trigger_time` datetime DEFAULT NULL COMMENT '调度-时间', `trigger_code` int(11) NOT NULL COMMENT '调度-结果', `trigger_msg` varchar(2048) DEFAULT NULL COMMENT '调度-日志', diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobInfoController.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobInfoController.java index 3a889fa8..aa201bbc 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobInfoController.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobInfoController.java @@ -3,6 +3,7 @@ package com.xxl.job.admin.controller; import com.xxl.job.admin.core.model.XxlJobGroup; import com.xxl.job.admin.core.model.XxlJobInfo; import com.xxl.job.admin.core.route.ExecutorRouteStrategyEnum; +import com.xxl.job.admin.core.thread.JobTriggerPoolHelper; import com.xxl.job.admin.dao.XxlJobGroupDao; import com.xxl.job.admin.service.XxlJobService; import com.xxl.job.core.biz.model.ReturnT; @@ -89,7 +90,8 @@ public class JobInfoController { @RequestMapping("/trigger") @ResponseBody public ReturnT triggerJob(int id) { - return xxlJobService.triggerJob(id); + JobTriggerPoolHelper.trigger(id, -1); + return ReturnT.SUCCESS; } } diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/enums/ExecutorFailStrategyEnum.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/enums/ExecutorFailStrategyEnum.java deleted file mode 100644 index c66e4488..00000000 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/enums/ExecutorFailStrategyEnum.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.xxl.job.admin.core.enums; - -/** - * Created by xuxueli on 17/5/9. - */ - -@Deprecated -public enum ExecutorFailStrategyEnum { - - NULL("NULL"), - - FAIL_TRIGGER_RETRY("FAIL_TRIGGER_RETRY"), - - FAIL_HANDLE_RETRY("FAIL_HANDLE_RETRY"); - - private final String title; - private ExecutorFailStrategyEnum(String title) { - this.title = title; - } - - public String getTitle() { - return title; - } - - public static ExecutorFailStrategyEnum match(String name, ExecutorFailStrategyEnum defaultItem) { - if (name != null) { - for (ExecutorFailStrategyEnum item: ExecutorFailStrategyEnum.values()) { - if (item.name().equals(name)) { - return item; - } - } - } - return defaultItem; - } - -} diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/jobbean/RemoteHttpJobBean.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/jobbean/RemoteHttpJobBean.java index 1aa4e407..3fbd0839 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/jobbean/RemoteHttpJobBean.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/jobbean/RemoteHttpJobBean.java @@ -27,7 +27,7 @@ public class RemoteHttpJobBean extends QuartzJobBean { // trigger //XxlJobTrigger.trigger(jobId); - JobTriggerPoolHelper.trigger(jobId); + JobTriggerPoolHelper.trigger(jobId, -1); } } \ No newline at end of file diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/model/XxlJobInfo.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/model/XxlJobInfo.java index 2a0ce1c1..905fb863 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/model/XxlJobInfo.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/model/XxlJobInfo.java @@ -25,7 +25,6 @@ public class XxlJobInfo { private String executorHandler; // 执行器,任务Handler名称 private String executorParam; // 执行器,任务参数 private String executorBlockStrategy; // 阻塞处理策略 - private String executorFailStrategy; // 失败处理策略 private int executorTimeout; // 任务执行超时时间,单位秒 private int executorFailRetryCount; // 失败重试次数 @@ -136,14 +135,6 @@ public class XxlJobInfo { this.executorBlockStrategy = executorBlockStrategy; } - public String getExecutorFailStrategy() { - return executorFailStrategy; - } - - public void setExecutorFailStrategy(String executorFailStrategy) { - this.executorFailStrategy = executorFailStrategy; - } - public int getExecutorTimeout() { return executorTimeout; } diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/model/XxlJobLog.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/model/XxlJobLog.java index 30976f38..99c5cc6b 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/model/XxlJobLog.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/model/XxlJobLog.java @@ -21,6 +21,7 @@ public class XxlJobLog { private String executorAddress; private String executorHandler; private String executorParam; + private int executorFailRetryCount; // trigger info private Date triggerTime; @@ -88,6 +89,14 @@ public class XxlJobLog { this.executorParam = executorParam; } + public int getExecutorFailRetryCount() { + return executorFailRetryCount; + } + + public void setExecutorFailRetryCount(int executorFailRetryCount) { + this.executorFailRetryCount = executorFailRetryCount; + } + public Date getTriggerTime() { return triggerTime; } diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobTriggerPoolHelper.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobTriggerPoolHelper.java index e3664ab7..fec449cb 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobTriggerPoolHelper.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobTriggerPoolHelper.java @@ -28,11 +28,11 @@ public class JobTriggerPoolHelper { new ThreadPoolExecutor.CallerRunsPolicy()); - public void addTrigger(final int jobId){ + public void addTrigger(final int jobId, final int failRetryCount){ triggerPool.execute(new Runnable() { @Override public void run() { - XxlJobTrigger.trigger(jobId); + XxlJobTrigger.trigger(jobId, failRetryCount); } }); } @@ -47,9 +47,16 @@ public class JobTriggerPoolHelper { private static JobTriggerPoolHelper helper = new JobTriggerPoolHelper(); - - public static void trigger(int jobId) { - helper.addTrigger(jobId); + /** + * + * @param jobId + * @param failRetryCount + * >=0: use this param + * <0: use param from job info config + * + */ + public static void trigger(int jobId, int failRetryCount) { + helper.addTrigger(jobId, failRetryCount); } public static void toStop(){ diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/trigger/XxlJobTrigger.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/trigger/XxlJobTrigger.java index 8bb73947..eebc0af7 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/trigger/XxlJobTrigger.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/trigger/XxlJobTrigger.java @@ -1,12 +1,12 @@ package com.xxl.job.admin.core.trigger; -import com.xxl.job.admin.core.enums.ExecutorFailStrategyEnum; import com.xxl.job.admin.core.model.XxlJobGroup; import com.xxl.job.admin.core.model.XxlJobInfo; import com.xxl.job.admin.core.model.XxlJobLog; import com.xxl.job.admin.core.route.ExecutorRouteStrategyEnum; import com.xxl.job.admin.core.schedule.XxlJobDynamicScheduler; import com.xxl.job.admin.core.thread.JobFailMonitorHelper; +import com.xxl.job.admin.core.thread.JobTriggerPoolHelper; import com.xxl.job.admin.core.util.I18nUtil; import com.xxl.job.core.biz.ExecutorBiz; import com.xxl.job.core.biz.model.ReturnT; @@ -31,8 +31,12 @@ public class XxlJobTrigger { * trigger job * * @param jobId + * @param failRetryCount + * >=0: use this param + * <0: use param from job info config + * */ - public static void trigger(int jobId) { + public static void trigger(int jobId, int failRetryCount) { // load data XxlJobInfo jobInfo = XxlJobDynamicScheduler.xxlJobInfoDao.loadById(jobId); // job info @@ -40,10 +44,14 @@ public class XxlJobTrigger { logger.warn(">>>>>>>>>>>> trigger fail, jobId invalid,jobId={}", jobId); return; } + int finalFailRetryCount = jobInfo.getExecutorFailRetryCount(); + if (failRetryCount >= 0) { + finalFailRetryCount = failRetryCount; + } + XxlJobGroup group = XxlJobDynamicScheduler.xxlJobGroupDao.load(jobInfo.getJobGroup()); // group info ExecutorBlockStrategyEnum blockStrategy = ExecutorBlockStrategyEnum.match(jobInfo.getExecutorBlockStrategy(), ExecutorBlockStrategyEnum.SERIAL_EXECUTION); // block strategy - ExecutorFailStrategyEnum failStrategy = ExecutorFailStrategyEnum.match(jobInfo.getExecutorFailStrategy(), ExecutorFailStrategyEnum.NULL); // fail strategy ExecutorRouteStrategyEnum executorRouteStrategyEnum = ExecutorRouteStrategyEnum.match(jobInfo.getExecutorRouteStrategy(), null); // route strategy ArrayList addressList = (ArrayList) group.getRegistryList(); @@ -64,6 +72,7 @@ public class XxlJobTrigger { jobLog.setGlueType(jobInfo.getGlueType()); jobLog.setExecutorHandler(jobInfo.getExecutorHandler()); jobLog.setExecutorParam(jobInfo.getExecutorParam()); + jobLog.setExecutorFailRetryCount(finalFailRetryCount); jobLog.setTriggerTime(new Date()); ReturnT triggerResult = new ReturnT(null); @@ -74,7 +83,7 @@ public class XxlJobTrigger { triggerMsgSb.append("
").append(I18nUtil.getString("jobconf_trigger_exe_regaddress")).append(":").append(group.getRegistryList()); triggerMsgSb.append("
").append(I18nUtil.getString("jobinfo_field_executorRouteStrategy")).append(":").append(executorRouteStrategyEnum.getTitle()).append("("+i+"/"+addressList.size()+")"); // update01 triggerMsgSb.append("
").append(I18nUtil.getString("jobinfo_field_executorBlockStrategy")).append(":").append(blockStrategy.getTitle()); - triggerMsgSb.append("
").append(I18nUtil.getString("jobinfo_field_executorFailRetryCount")).append(":").append(jobInfo.getExecutorFailRetryCount()); + triggerMsgSb.append("
").append(I18nUtil.getString("jobinfo_field_executorFailRetryCount")).append(":").append(finalFailRetryCount); triggerMsgSb.append("
").append(I18nUtil.getString("jobinfo_field_timeout")).append(":").append(jobInfo.getExecutorTimeout()); // 3、trigger-valid @@ -104,9 +113,9 @@ public class XxlJobTrigger { triggerMsgSb.append("

>>>>>>>>>>>"+ I18nUtil.getString("jobconf_trigger_run") +"<<<<<<<<<<<
").append(triggerResult.getMsg()); // 4.3、trigger (fail retry) - if (triggerResult.getCode()!=ReturnT.SUCCESS_CODE && failStrategy == ExecutorFailStrategyEnum.FAIL_TRIGGER_RETRY) { - triggerResult = runExecutor(triggerParam, address); // update04 - triggerMsgSb.append("

>>>>>>>>>>>"+ I18nUtil.getString("jobconf_fail_trigger_retry") +"<<<<<<<<<<<
").append(triggerResult.getMsg()); + if (triggerResult.getCode()!=ReturnT.SUCCESS_CODE && finalFailRetryCount > 0) { + JobTriggerPoolHelper.trigger(jobId, (finalFailRetryCount-1)); + triggerMsgSb.append("

>>>>>>>>>>>"+ I18nUtil.getString("jobconf_fail_trigger_retry") +"<<<<<<<<<<<
"); } } @@ -134,6 +143,7 @@ public class XxlJobTrigger { jobLog.setGlueType(jobInfo.getGlueType()); jobLog.setExecutorHandler(jobInfo.getExecutorHandler()); jobLog.setExecutorParam(jobInfo.getExecutorParam()); + jobLog.setExecutorFailRetryCount(finalFailRetryCount); jobLog.setTriggerTime(new Date()); ReturnT triggerResult = new ReturnT(null); @@ -144,7 +154,7 @@ public class XxlJobTrigger { triggerMsgSb.append("
").append(I18nUtil.getString("jobconf_trigger_exe_regaddress")).append(":").append(group.getRegistryList()); triggerMsgSb.append("
").append(I18nUtil.getString("jobinfo_field_executorRouteStrategy")).append(":").append(executorRouteStrategyEnum.getTitle()); triggerMsgSb.append("
").append(I18nUtil.getString("jobinfo_field_executorBlockStrategy")).append(":").append(blockStrategy.getTitle()); - triggerMsgSb.append("
").append(I18nUtil.getString("jobinfo_field_executorFailRetryCount")).append(":").append(jobInfo.getExecutorFailRetryCount()); + triggerMsgSb.append("
").append(I18nUtil.getString("jobinfo_field_executorFailRetryCount")).append(":").append(finalFailRetryCount); triggerMsgSb.append("
").append(I18nUtil.getString("jobinfo_field_timeout")).append(":").append(jobInfo.getExecutorTimeout()); // 3、trigger-valid @@ -174,9 +184,9 @@ public class XxlJobTrigger { triggerMsgSb.append("

>>>>>>>>>>>"+ I18nUtil.getString("jobconf_trigger_run") +"<<<<<<<<<<<
").append(triggerResult.getMsg()); // 4.3、trigger (fail retry) - if (triggerResult.getCode()!=ReturnT.SUCCESS_CODE && failStrategy == ExecutorFailStrategyEnum.FAIL_TRIGGER_RETRY) { - triggerResult = executorRouteStrategyEnum.getRouter().routeRun(triggerParam, addressList); - triggerMsgSb.append("

>>>>>>>>>>>"+ I18nUtil.getString("jobconf_fail_trigger_retry") +"<<<<<<<<<<<
").append(triggerResult.getMsg()); + if (triggerResult.getCode()!=ReturnT.SUCCESS_CODE && finalFailRetryCount > 0) { + JobTriggerPoolHelper.trigger(jobId, (finalFailRetryCount-1)); + triggerMsgSb.append("

>>>>>>>>>>>"+ I18nUtil.getString("jobconf_fail_trigger_retry") +"<<<<<<<<<<<
"); } } diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/service/XxlJobService.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/service/XxlJobService.java index b51e9288..d426bb6b 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/service/XxlJobService.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/service/XxlJobService.java @@ -67,14 +67,6 @@ public interface XxlJobService { */ public ReturnT resume(int id); - /** - * trigger job - * - * @param id - * @return - */ - public ReturnT triggerJob(int id); - /** * dashboard info * diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/service/impl/AdminBizImpl.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/service/impl/AdminBizImpl.java index 1e8b51e3..e268e844 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/service/impl/AdminBizImpl.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/service/impl/AdminBizImpl.java @@ -1,8 +1,8 @@ package com.xxl.job.admin.service.impl; -import com.xxl.job.admin.core.enums.ExecutorFailStrategyEnum; import com.xxl.job.admin.core.model.XxlJobInfo; import com.xxl.job.admin.core.model.XxlJobLog; +import com.xxl.job.admin.core.thread.JobTriggerPoolHelper; import com.xxl.job.admin.core.util.I18nUtil; import com.xxl.job.admin.dao.XxlJobInfoDao; import com.xxl.job.admin.dao.XxlJobLogDao; @@ -72,7 +72,9 @@ public class AdminBizImpl implements AdminBiz { for (int i = 0; i < childJobIds.length; i++) { int childJobId = (StringUtils.isNotBlank(childJobIds[i]) && StringUtils.isNumeric(childJobIds[i]))?Integer.valueOf(childJobIds[i]):-1; if (childJobId > 0) { - ReturnT triggerChildResult = xxlJobService.triggerJob(childJobId); + + JobTriggerPoolHelper.trigger(childJobId, 0); + ReturnT triggerChildResult = ReturnT.SUCCESS; // add msg callbackMsg += MessageFormat.format(I18nUtil.getString("jobconf_callback_child_msg1"), @@ -91,17 +93,13 @@ public class AdminBizImpl implements AdminBiz { } } else { - boolean ifHandleRetry = false; - if (IJobHandler.FAIL_RETRY.getCode() == handleCallbackParam.getExecuteResult().getCode()) { - ifHandleRetry = true; - } else { - XxlJobInfo xxlJobInfo = xxlJobInfoDao.loadById(log.getJobId()); - if (ExecutorFailStrategyEnum.FAIL_HANDLE_RETRY.name().equals(xxlJobInfo.getExecutorFailStrategy())) { - ifHandleRetry = true; - } - } - if (ifHandleRetry){ - ReturnT retryTriggerResult = xxlJobService.triggerJob(log.getJobId()); + XxlJobInfo xxlJobInfo = xxlJobInfoDao.loadById(log.getJobId()); + if (xxlJobInfo.getExecutorFailRetryCount() > 0) { + int nextFailRetryCount = xxlJobInfo.getExecutorFailRetryCount()-1; + + JobTriggerPoolHelper.trigger(log.getJobId(), nextFailRetryCount); + ReturnT retryTriggerResult = ReturnT.SUCCESS; + callbackMsg = "

>>>>>>>>>>>"+ I18nUtil.getString("jobconf_fail_handle_retry") +"<<<<<<<<<<<
"; callbackMsg += MessageFormat.format(I18nUtil.getString("jobconf_callback_msg1"), @@ -147,7 +145,8 @@ public class AdminBizImpl implements AdminBiz { @Override public ReturnT triggerJob(int jobId) { - return xxlJobService.triggerJob(jobId); + JobTriggerPoolHelper.trigger(jobId, -1); + return ReturnT.SUCCESS; } } 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 2f597794..5b133eb6 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 @@ -4,7 +4,6 @@ import com.xxl.job.admin.core.model.XxlJobGroup; import com.xxl.job.admin.core.model.XxlJobInfo; import com.xxl.job.admin.core.route.ExecutorRouteStrategyEnum; import com.xxl.job.admin.core.schedule.XxlJobDynamicScheduler; -import com.xxl.job.admin.core.thread.JobTriggerPoolHelper; import com.xxl.job.admin.core.util.I18nUtil; import com.xxl.job.admin.dao.XxlJobGroupDao; import com.xxl.job.admin.dao.XxlJobInfoDao; @@ -201,7 +200,6 @@ public class XxlJobServiceImpl implements XxlJobService { exists_jobInfo.setExecutorHandler(jobInfo.getExecutorHandler()); exists_jobInfo.setExecutorParam(jobInfo.getExecutorParam()); exists_jobInfo.setExecutorBlockStrategy(jobInfo.getExecutorBlockStrategy()); - exists_jobInfo.setExecutorFailStrategy(jobInfo.getExecutorFailStrategy()); exists_jobInfo.setExecutorTimeout(jobInfo.getExecutorTimeout()); exists_jobInfo.setExecutorFailRetryCount(jobInfo.getExecutorFailRetryCount()); exists_jobInfo.setChildJobId(jobInfo.getChildJobId()); @@ -268,13 +266,13 @@ public class XxlJobServiceImpl implements XxlJobService { } } - @Override - public ReturnT triggerJob(int id) { + /*@Override + public ReturnT triggerJob(int id, int failRetryCount) { - JobTriggerPoolHelper.trigger(id); + JobTriggerPoolHelper.trigger(id, failRetryCount); return ReturnT.SUCCESS; - /*XxlJobInfo xxlJobInfo = xxlJobInfoDao.loadById(id); + *//*XxlJobInfo xxlJobInfo = xxlJobInfoDao.loadById(id); if (xxlJobInfo == null) { return new ReturnT(ReturnT.FAIL_CODE, (I18nUtil.getString("jobinfo_field_id")+I18nUtil.getString("system_unvalid")) ); } @@ -288,9 +286,9 @@ public class XxlJobServiceImpl implements XxlJobService { } catch (SchedulerException e) { logger.error(e.getMessage(), e); return new ReturnT(ReturnT.FAIL_CODE, e.getMessage()); - }*/ + }*//* - } + }*/ @Override public Map dashboardInfo() { diff --git a/xxl-job-admin/src/main/resources/i18n/message.properties b/xxl-job-admin/src/main/resources/i18n/message.properties index ec71353a..bb226c47 100644 --- a/xxl-job-admin/src/main/resources/i18n/message.properties +++ b/xxl-job-admin/src/main/resources/i18n/message.properties @@ -162,7 +162,6 @@ joblog_clean_type_unvalid=清理类型参数异常 joblog_handleCode_200=成功 joblog_handleCode_500=失败 joblog_handleCode_502=失败(超时) -joblog_handleCode_501=失败(重试) joblog_kill_log=终止任务 joblog_kill_log_limit=调度失败,无法终止日志 joblog_kill_log_byman=人为操作主动终止 diff --git a/xxl-job-admin/src/main/resources/i18n/message_en.properties b/xxl-job-admin/src/main/resources/i18n/message_en.properties index 18ae26ce..ff361bb2 100644 --- a/xxl-job-admin/src/main/resources/i18n/message_en.properties +++ b/xxl-job-admin/src/main/resources/i18n/message_en.properties @@ -162,7 +162,6 @@ joblog_clean_type_unvalid=Clean type is illegal joblog_handleCode_200=Success joblog_handleCode_500=Fail joblog_handleCode_502=Timeout -joblog_handleCode_501=Fail retry joblog_kill_log=Kill Job joblog_kill_log_limit=Trigger Fail, can not kill job joblog_kill_log_byman=Manual operation to active kill job diff --git a/xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobInfoMapper.xml b/xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobInfoMapper.xml index 59d24452..0aafba4d 100644 --- a/xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobInfoMapper.xml +++ b/xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobInfoMapper.xml @@ -20,7 +20,6 @@ - @@ -45,7 +44,6 @@ t.executor_handler, t.executor_param, t.executor_block_strategy, - t.executor_fail_strategy, t.executor_timeout, t.executor_fail_retry_count, t.glue_type, @@ -102,7 +100,6 @@ executor_handler, executor_param, executor_block_strategy, - executor_fail_strategy, executor_timeout, executor_fail_retry_count, glue_type, @@ -122,7 +119,6 @@ #{executorHandler}, #{executorParam}, #{executorBlockStrategy}, - #{executorFailStrategy}, #{executorTimeout}, #{executorFailRetryCount}, #{glueType}, @@ -155,7 +151,6 @@ executor_handler = #{executorHandler}, executor_param = #{executorParam}, executor_block_strategy = #{executorBlockStrategy}, - executor_fail_strategy = #{executorFailStrategy}, executor_timeout = ${executorTimeout}, executor_fail_retry_count = ${executorFailRetryCount}, glue_type = #{glueType}, diff --git a/xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobLogMapper.xml b/xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobLogMapper.xml index e125ac22..2b5879b3 100644 --- a/xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobLogMapper.xml +++ b/xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobLogMapper.xml @@ -14,6 +14,7 @@ + @@ -33,6 +34,7 @@ t.executor_address, t.executor_handler, t.executor_param, + t.executor_fail_retry_count, t.trigger_time, t.trigger_code, t.trigger_msg, @@ -140,7 +142,8 @@ `trigger_msg`= #{triggerMsg}, `executor_address`= #{executorAddress}, `executor_handler`=#{executorHandler}, - `executor_param`= #{executorParam} + `executor_param`= #{executorParam}, + `executor_fail_retry_count`= #{executorFailRetryCount} WHERE `id`= #{id} diff --git a/xxl-job-admin/src/main/webapp/static/js/joblog.index.1.js b/xxl-job-admin/src/main/webapp/static/js/joblog.index.1.js index 2a5acc09..bb68fe9c 100644 --- a/xxl-job-admin/src/main/webapp/static/js/joblog.index.1.js +++ b/xxl-job-admin/src/main/webapp/static/js/joblog.index.1.js @@ -157,8 +157,6 @@ $(function() { html = ''+ I18n.joblog_handleCode_200 +''; } else if (data == 500) { html = ''+ I18n.joblog_handleCode_500 +''; - } else if (data == 501) { - html = ''+ I18n.joblog_handleCode_501 +''; } else if (data == 502) { html = ''+ I18n.joblog_handleCode_502 +''; } else if (data == 0) { diff --git a/xxl-job-admin/src/test/java/com/xxl/job/admin/dao/XxlJobInfoDaoTest.java b/xxl-job-admin/src/test/java/com/xxl/job/admin/dao/XxlJobInfoDaoTest.java index ca320d22..741f6cb1 100644 --- a/xxl-job-admin/src/test/java/com/xxl/job/admin/dao/XxlJobInfoDaoTest.java +++ b/xxl-job-admin/src/test/java/com/xxl/job/admin/dao/XxlJobInfoDaoTest.java @@ -1,7 +1,6 @@ package com.xxl.job.admin.dao; import com.xxl.job.admin.core.model.XxlJobInfo; -import com.xxl.job.admin.dao.XxlJobInfoDao; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.test.context.ContextConfiguration; @@ -41,7 +40,6 @@ public class XxlJobInfoDaoTest { info.setExecutorHandler("setExecutorHandler"); info.setExecutorParam("setExecutorParam"); info.setExecutorBlockStrategy("setExecutorBlockStrategy"); - info.setExecutorFailStrategy("setExecutorFailStrategy"); info.setGlueType("setGlueType"); info.setGlueSource("setGlueSource"); info.setGlueRemark("setGlueRemark"); @@ -58,7 +56,6 @@ public class XxlJobInfoDaoTest { info2.setExecutorHandler("setExecutorHandler2"); info2.setExecutorParam("setExecutorParam2"); info2.setExecutorBlockStrategy("setExecutorBlockStrategy2"); - info2.setExecutorFailStrategy("setExecutorFailStrategy2"); info2.setGlueType("setGlueType2"); info2.setGlueSource("setGlueSource2"); info2.setGlueRemark("setGlueRemark2"); diff --git a/xxl-job-core/src/main/java/com/xxl/job/core/handler/IJobHandler.java b/xxl-job-core/src/main/java/com/xxl/job/core/handler/IJobHandler.java index 19251df2..087b5ba0 100644 --- a/xxl-job-core/src/main/java/com/xxl/job/core/handler/IJobHandler.java +++ b/xxl-job-core/src/main/java/com/xxl/job/core/handler/IJobHandler.java @@ -14,8 +14,6 @@ public abstract class IJobHandler { public static final ReturnT SUCCESS = new ReturnT(200, null); /** fail */ public static final ReturnT FAIL = new ReturnT(500, null); - /** fail retry */ - public static final ReturnT FAIL_RETRY = new ReturnT(501, null); /** fail timeout */ public static final ReturnT FAIL_TIMEOUT = new ReturnT(502, null); diff --git a/xxl-job-core/src/main/java/com/xxl/job/core/handler/impl/ScriptJobHandler.java b/xxl-job-core/src/main/java/com/xxl/job/core/handler/impl/ScriptJobHandler.java index 7cad6461..32741182 100644 --- a/xxl-job-core/src/main/java/com/xxl/job/core/handler/impl/ScriptJobHandler.java +++ b/xxl-job-core/src/main/java/com/xxl/job/core/handler/impl/ScriptJobHandler.java @@ -66,8 +66,6 @@ public class ScriptJobHandler extends IJobHandler { if (exitValue == 0) { return IJobHandler.SUCCESS; - } else if (exitValue == 101) { - return IJobHandler.FAIL_RETRY; } else { return new ReturnT(IJobHandler.FAIL.getCode(), "script exit value("+exitValue+") is failed"); }