From d0c4c3f07a26c673fc98bad7aa0cf10b282927a8 Mon Sep 17 00:00:00 2001 From: xuxueli <931591021@qq.com> Date: Sun, 24 Jun 2018 20:33:15 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=B1=E8=B4=A5=E7=AD=96=E7=95=A5=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/enums/ExecutorFailStrategyEnum.java | 6 +++-- .../job/admin/core/trigger/XxlJobTrigger.java | 10 ++++----- .../job/admin/service/impl/AdminBizImpl.java | 22 ++++++++++++++----- .../main/resources/i18n/message.properties | 7 +++--- .../main/resources/i18n/message_en.properties | 7 +++--- 5 files changed, 32 insertions(+), 20 deletions(-) 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 index c6db0407..d5a4441e 100644 --- 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 @@ -7,9 +7,11 @@ import com.xxl.job.admin.core.util.I18nUtil; */ public enum ExecutorFailStrategyEnum { - FAIL_ALARM(I18nUtil.getString("jobconf_fail_alarm")), + NULL(I18nUtil.getString("jobconf_fail_null")), - FAIL_RETRY(I18nUtil.getString("jobconf_fail_retry")); + FAIL_TRIGGER_RETRY(I18nUtil.getString("jobconf_fail_trigger_retry")), + + FAIL_HANDLE_RETRY(I18nUtil.getString("jobconf_fail_handle_retry")); private final String title; private ExecutorFailStrategyEnum(String title) { 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 a4ca6dab..e9e8743b 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 @@ -43,7 +43,7 @@ public class XxlJobTrigger { 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.FAIL_ALARM); // fail 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(); @@ -104,9 +104,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_RETRY) { + if (triggerResult.getCode()!=ReturnT.SUCCESS_CODE && failStrategy == ExecutorFailStrategyEnum.FAIL_TRIGGER_RETRY) { triggerResult = runExecutor(triggerParam, address); // update04 - triggerMsgSb.append("

>>>>>>>>>>>"+ I18nUtil.getString("jobconf_trigger_fail_retry") +"<<<<<<<<<<<
").append(triggerResult.getMsg()); + triggerMsgSb.append("

>>>>>>>>>>>"+ I18nUtil.getString("jobconf_fail_trigger_retry") +"<<<<<<<<<<<
").append(triggerResult.getMsg()); } } @@ -174,9 +174,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_RETRY) { + if (triggerResult.getCode()!=ReturnT.SUCCESS_CODE && failStrategy == ExecutorFailStrategyEnum.FAIL_TRIGGER_RETRY) { triggerResult = executorRouteStrategyEnum.getRouter().routeRun(triggerParam, addressList); - triggerMsgSb.append("

>>>>>>>>>>>"+ I18nUtil.getString("jobconf_trigger_fail_retry") +"<<<<<<<<<<<
").append(triggerResult.getMsg()); + triggerMsgSb.append("

>>>>>>>>>>>"+ I18nUtil.getString("jobconf_fail_trigger_retry") +"<<<<<<<<<<<
").append(triggerResult.getMsg()); } } 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 ddaa6bd0..1e8b51e3 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,5 +1,6 @@ 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.util.I18nUtil; @@ -89,12 +90,23 @@ public class AdminBizImpl implements AdminBiz { } } - } else if (IJobHandler.FAIL_RETRY.getCode() == handleCallbackParam.getExecuteResult().getCode()){ - ReturnT retryTriggerResult = xxlJobService.triggerJob(log.getJobId()); - callbackMsg = "

>>>>>>>>>>>"+ I18nUtil.getString("jobconf_exe_fail_retry") +"<<<<<<<<<<<
"; + } 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()); + callbackMsg = "

>>>>>>>>>>>"+ I18nUtil.getString("jobconf_fail_handle_retry") +"<<<<<<<<<<<
"; - callbackMsg += MessageFormat.format(I18nUtil.getString("jobconf_callback_msg1"), - (retryTriggerResult.getCode()==ReturnT.SUCCESS_CODE?I18nUtil.getString("system_success"):I18nUtil.getString("system_fail")), retryTriggerResult.getMsg()); + callbackMsg += MessageFormat.format(I18nUtil.getString("jobconf_callback_msg1"), + (retryTriggerResult.getCode()==ReturnT.SUCCESS_CODE?I18nUtil.getString("system_success"):I18nUtil.getString("system_fail")), retryTriggerResult.getMsg()); + } } // handle msg diff --git a/xxl-job-admin/src/main/resources/i18n/message.properties b/xxl-job-admin/src/main/resources/i18n/message.properties index 8f984979..718875da 100644 --- a/xxl-job-admin/src/main/resources/i18n/message.properties +++ b/xxl-job-admin/src/main/resources/i18n/message.properties @@ -198,8 +198,9 @@ jobgroup_del_limit_1=拒绝删除, 系统至少保留一个执行器 jobconf_block_SERIAL_EXECUTION=单机串行 jobconf_block_DISCARD_LATER=丢弃后续调度 jobconf_block_COVER_EARLY=覆盖之前调度 -jobconf_fail_alarm=失败告警 -jobconf_fail_retry=失败重试 +jobconf_fail_null=无 +jobconf_fail_trigger_retry=调度失败重试 +jobconf_fail_handle_retry=执行失败重试 jobconf_route_first=第一个 jobconf_route_last=最后一个 jobconf_route_round=轮询 @@ -223,8 +224,6 @@ jobconf_trigger_exe_regaddress=执行器-地址列表 jobconf_trigger_address_empty=调度失败:执行器地址为空 jobconf_trigger_run=触发调度 jobconf_trigger_child_run=触发子任务 -jobconf_trigger_fail_retry=调度失败重试 -jobconf_exe_fail_retry=执行失败重试 jobconf_callback_child_msg1={0}/{1} [任务ID={2}], 触发{3}, 触发备注: {4}
jobconf_callback_child_msg2={0}/{1} [任务ID={2}], 触发失败, 触发备注: 任务ID格式错误
jobconf_callback_msg1=触发{0}, 触发备注: {1}
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 1cb1e943..978b7292 100644 --- a/xxl-job-admin/src/main/resources/i18n/message_en.properties +++ b/xxl-job-admin/src/main/resources/i18n/message_en.properties @@ -198,8 +198,9 @@ jobgroup_del_limit_1=Refuses to delete, the system retains at least one executor jobconf_block_SERIAL_EXECUTION=Serial execution jobconf_block_DISCARD_LATER=Discard Later jobconf_block_COVER_EARLY=Cover Early -jobconf_fail_alarm=Fail Alarm -jobconf_fail_retry=Fail Retry +jobconf_fail_null=Fail Alarm +jobconf_fail_trigger_retry=Trigger Fail Retry +jobconf_fail_handle_retry=Handle Fail Retry jobconf_route_first=First jobconf_route_last=Last jobconf_route_round=Round @@ -223,8 +224,6 @@ jobconf_trigger_exe_regaddress=Execotor-Registry Address jobconf_trigger_address_empty=Trigger Fail:registry address is empty jobconf_trigger_run=Trigger Job jobconf_trigger_child_run=Trigger child job -jobconf_trigger_fail_retry=Trigger fail retry -jobconf_exe_fail_retry=Handle fail retry jobconf_callback_child_msg1={0}/{1} [Job ID={2}], Trigger {3}, Trigger msg: {4}
jobconf_callback_child_msg2={0}/{1} [Job ID={2}], Trigger Fail, Trigger msg: Job ID is illegal
jobconf_callback_msg1=Trigger {0}, Trigger msg: {1}
-- GitLab