xuxueli преди 7 години
родител
ревизия
d0c4c3f07a

+ 4 - 2
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;
7 7
  */
8 8
 public enum ExecutorFailStrategyEnum {
9 9
 
10
-    FAIL_ALARM(I18nUtil.getString("jobconf_fail_alarm")),
10
+    NULL(I18nUtil.getString("jobconf_fail_null")),
11 11
 
12
-    FAIL_RETRY(I18nUtil.getString("jobconf_fail_retry"));
12
+    FAIL_TRIGGER_RETRY(I18nUtil.getString("jobconf_fail_trigger_retry")),
13
+
14
+    FAIL_HANDLE_RETRY(I18nUtil.getString("jobconf_fail_handle_retry"));
13 15
 
14 16
     private final String title;
15 17
     private ExecutorFailStrategyEnum(String title) {

+ 5 - 5
xxl-job-admin/src/main/java/com/xxl/job/admin/core/trigger/XxlJobTrigger.java Целия файл

@@ -43,7 +43,7 @@ public class XxlJobTrigger {
43 43
         XxlJobGroup group = XxlJobDynamicScheduler.xxlJobGroupDao.load(jobInfo.getJobGroup());  // group info
44 44
 
45 45
         ExecutorBlockStrategyEnum blockStrategy = ExecutorBlockStrategyEnum.match(jobInfo.getExecutorBlockStrategy(), ExecutorBlockStrategyEnum.SERIAL_EXECUTION);  // block strategy
46
-        ExecutorFailStrategyEnum failStrategy = ExecutorFailStrategyEnum.match(jobInfo.getExecutorFailStrategy(), ExecutorFailStrategyEnum.FAIL_ALARM);    // fail strategy
46
+        ExecutorFailStrategyEnum failStrategy = ExecutorFailStrategyEnum.match(jobInfo.getExecutorFailStrategy(), ExecutorFailStrategyEnum.NULL);    // fail strategy
47 47
         ExecutorRouteStrategyEnum executorRouteStrategyEnum = ExecutorRouteStrategyEnum.match(jobInfo.getExecutorRouteStrategy(), null);    // route strategy
48 48
         ArrayList<String> addressList = (ArrayList<String>) group.getRegistryList();
49 49
 
@@ -104,9 +104,9 @@ public class XxlJobTrigger {
104 104
                     triggerMsgSb.append("<br><br><span style=\"color:#00c0ef;\" > >>>>>>>>>>>"+ I18nUtil.getString("jobconf_trigger_run") +"<<<<<<<<<<< </span><br>").append(triggerResult.getMsg());
105 105
 
106 106
                     // 4.3、trigger (fail retry)
107
-                    if (triggerResult.getCode()!=ReturnT.SUCCESS_CODE && failStrategy == ExecutorFailStrategyEnum.FAIL_RETRY) {
107
+                    if (triggerResult.getCode()!=ReturnT.SUCCESS_CODE && failStrategy == ExecutorFailStrategyEnum.FAIL_TRIGGER_RETRY) {
108 108
                         triggerResult = runExecutor(triggerParam, address);  // update04
109
-                        triggerMsgSb.append("<br><br><span style=\"color:#F39C12;\" > >>>>>>>>>>>"+ I18nUtil.getString("jobconf_trigger_fail_retry") +"<<<<<<<<<<< </span><br>").append(triggerResult.getMsg());
109
+                        triggerMsgSb.append("<br><br><span style=\"color:#F39C12;\" > >>>>>>>>>>>"+ I18nUtil.getString("jobconf_fail_trigger_retry") +"<<<<<<<<<<< </span><br>").append(triggerResult.getMsg());
110 110
                     }
111 111
                 }
112 112
 
@@ -174,9 +174,9 @@ public class XxlJobTrigger {
174 174
                 triggerMsgSb.append("<br><br><span style=\"color:#00c0ef;\" > >>>>>>>>>>>"+ I18nUtil.getString("jobconf_trigger_run") +"<<<<<<<<<<< </span><br>").append(triggerResult.getMsg());
175 175
 
176 176
                 // 4.3、trigger (fail retry)
177
-                if (triggerResult.getCode()!=ReturnT.SUCCESS_CODE && failStrategy == ExecutorFailStrategyEnum.FAIL_RETRY) {
177
+                if (triggerResult.getCode()!=ReturnT.SUCCESS_CODE && failStrategy == ExecutorFailStrategyEnum.FAIL_TRIGGER_RETRY) {
178 178
                     triggerResult = executorRouteStrategyEnum.getRouter().routeRun(triggerParam, addressList);
179
-                    triggerMsgSb.append("<br><br><span style=\"color:#F39C12;\" > >>>>>>>>>>>"+ I18nUtil.getString("jobconf_trigger_fail_retry") +"<<<<<<<<<<< </span><br>").append(triggerResult.getMsg());
179
+                    triggerMsgSb.append("<br><br><span style=\"color:#F39C12;\" > >>>>>>>>>>>"+ I18nUtil.getString("jobconf_fail_trigger_retry") +"<<<<<<<<<<< </span><br>").append(triggerResult.getMsg());
180 180
                 }
181 181
             }
182 182
 

+ 17 - 5
xxl-job-admin/src/main/java/com/xxl/job/admin/service/impl/AdminBizImpl.java Целия файл

@@ -1,5 +1,6 @@
1 1
 package com.xxl.job.admin.service.impl;
2 2
 
3
+import com.xxl.job.admin.core.enums.ExecutorFailStrategyEnum;
3 4
 import com.xxl.job.admin.core.model.XxlJobInfo;
4 5
 import com.xxl.job.admin.core.model.XxlJobLog;
5 6
 import com.xxl.job.admin.core.util.I18nUtil;
@@ -89,12 +90,23 @@ public class AdminBizImpl implements AdminBiz {
89 90
                 }
90 91
 
91 92
             }
92
-        } else if (IJobHandler.FAIL_RETRY.getCode() == handleCallbackParam.getExecuteResult().getCode()){
93
-            ReturnT<String> retryTriggerResult = xxlJobService.triggerJob(log.getJobId());
94
-            callbackMsg = "<br><br><span style=\"color:#F39C12;\" > >>>>>>>>>>>"+ I18nUtil.getString("jobconf_exe_fail_retry") +"<<<<<<<<<<< </span><br>";
93
+        } else {
94
+            boolean ifHandleRetry = false;
95
+            if (IJobHandler.FAIL_RETRY.getCode() == handleCallbackParam.getExecuteResult().getCode()) {
96
+                ifHandleRetry = true;
97
+            } else {
98
+                XxlJobInfo xxlJobInfo = xxlJobInfoDao.loadById(log.getJobId());
99
+                if (ExecutorFailStrategyEnum.FAIL_HANDLE_RETRY.name().equals(xxlJobInfo.getExecutorFailStrategy())) {
100
+                    ifHandleRetry = true;
101
+                }
102
+            }
103
+            if (ifHandleRetry){
104
+                ReturnT<String> retryTriggerResult = xxlJobService.triggerJob(log.getJobId());
105
+                callbackMsg = "<br><br><span style=\"color:#F39C12;\" > >>>>>>>>>>>"+ I18nUtil.getString("jobconf_fail_handle_retry") +"<<<<<<<<<<< </span><br>";
95 106
 
96
-            callbackMsg += MessageFormat.format(I18nUtil.getString("jobconf_callback_msg1"),
97
-                   (retryTriggerResult.getCode()==ReturnT.SUCCESS_CODE?I18nUtil.getString("system_success"):I18nUtil.getString("system_fail")), retryTriggerResult.getMsg());
107
+                callbackMsg += MessageFormat.format(I18nUtil.getString("jobconf_callback_msg1"),
108
+                        (retryTriggerResult.getCode()==ReturnT.SUCCESS_CODE?I18nUtil.getString("system_success"):I18nUtil.getString("system_fail")), retryTriggerResult.getMsg());
109
+            }
98 110
         }
99 111
 
100 112
         // handle msg

+ 3 - 4
xxl-job-admin/src/main/resources/i18n/message.properties Целия файл

@@ -198,8 +198,9 @@ jobgroup_del_limit_1=拒绝删除, 系统至少保留一个执行器
198 198
 jobconf_block_SERIAL_EXECUTION=单机串行
199 199
 jobconf_block_DISCARD_LATER=丢弃后续调度
200 200
 jobconf_block_COVER_EARLY=覆盖之前调度
201
-jobconf_fail_alarm=失败告警
202
-jobconf_fail_retry=失败重试
201
+jobconf_fail_null=无
202
+jobconf_fail_trigger_retry=调度失败重试
203
+jobconf_fail_handle_retry=执行失败重试
203 204
 jobconf_route_first=第一个
204 205
 jobconf_route_last=最后一个
205 206
 jobconf_route_round=轮询
@@ -223,8 +224,6 @@ jobconf_trigger_exe_regaddress=执行器-地址列表
223 224
 jobconf_trigger_address_empty=调度失败:执行器地址为空
224 225
 jobconf_trigger_run=触发调度
225 226
 jobconf_trigger_child_run=触发子任务
226
-jobconf_trigger_fail_retry=调度失败重试
227
-jobconf_exe_fail_retry=执行失败重试
228 227
 jobconf_callback_child_msg1={0}/{1} [任务ID={2}], 触发{3}, 触发备注: {4} <br>
229 228
 jobconf_callback_child_msg2={0}/{1} [任务ID={2}], 触发失败, 触发备注: 任务ID格式错误 <br>
230 229
 jobconf_callback_msg1=触发{0}, 触发备注: {1} <br>

+ 3 - 4
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
198 198
 jobconf_block_SERIAL_EXECUTION=Serial execution
199 199
 jobconf_block_DISCARD_LATER=Discard Later
200 200
 jobconf_block_COVER_EARLY=Cover Early
201
-jobconf_fail_alarm=Fail Alarm
202
-jobconf_fail_retry=Fail Retry
201
+jobconf_fail_null=Fail Alarm
202
+jobconf_fail_trigger_retry=Trigger Fail Retry
203
+jobconf_fail_handle_retry=Handle Fail Retry
203 204
 jobconf_route_first=First
204 205
 jobconf_route_last=Last
205 206
 jobconf_route_round=Round
@@ -223,8 +224,6 @@ jobconf_trigger_exe_regaddress=Execotor-Registry Address
223 224
 jobconf_trigger_address_empty=Trigger Fail:registry address is empty
224 225
 jobconf_trigger_run=Trigger Job
225 226
 jobconf_trigger_child_run=Trigger child job
226
-jobconf_trigger_fail_retry=Trigger fail retry
227
-jobconf_exe_fail_retry=Handle fail retry
228 227
 jobconf_callback_child_msg1={0}/{1} [Job ID={2}], Trigger {3}, Trigger msg: {4} <br>
229 228
 jobconf_callback_child_msg2={0}/{1} [Job ID={2}], Trigger Fail, Trigger msg: Job ID is illegal <br>
230 229
 jobconf_callback_msg1=Trigger {0}, Trigger msg: {1} <br>