Ver código fonte

失败处理策略

xueli.xue 8 anos atrás
pai
commit
8600f883e2

+ 16 - 6
xxl-job-admin/src/main/java/com/xxl/job/admin/core/jobbean/RemoteHttpJobBean.java Ver arquivo

1
 package com.xxl.job.admin.core.jobbean;
1
 package com.xxl.job.admin.core.jobbean;
2
 
2
 
3
+import com.xxl.job.admin.core.enums.ExecutorFailStrategyEnum;
3
 import com.xxl.job.admin.core.model.XxlJobGroup;
4
 import com.xxl.job.admin.core.model.XxlJobGroup;
4
 import com.xxl.job.admin.core.model.XxlJobInfo;
5
 import com.xxl.job.admin.core.model.XxlJobInfo;
5
 import com.xxl.job.admin.core.model.XxlJobLog;
6
 import com.xxl.job.admin.core.model.XxlJobLog;
70
 		// do trigger
71
 		// do trigger
71
 		ReturnT<String> triggerResult = doTrigger(triggerParam, jobInfo, jobLog);
72
 		ReturnT<String> triggerResult = doTrigger(triggerParam, jobInfo, jobLog);
72
 
73
 
74
+		// fail retry
75
+		if (triggerResult.getCode()==ReturnT.FAIL_CODE &&
76
+				ExecutorFailStrategyEnum.match(jobInfo.getExecutorFailStrategy(), null) == ExecutorFailStrategyEnum.FAIL_RETRY) {
77
+			ReturnT<String> retryTriggerResult = doTrigger(triggerParam, jobInfo, jobLog);
78
+
79
+			triggerResult.setCode(retryTriggerResult.getCode());
80
+			triggerResult.setMsg(triggerResult.getMsg() + "<br><br><span style=\"color:#F39C12;\" > >>>>>>>>>>>失败重试<<<<<<<<<<< </span><br><br>" +retryTriggerResult.getMsg());
81
+		}
82
+
73
 		// log part-2
83
 		// log part-2
74
 		jobLog.setTriggerCode(triggerResult.getCode());
84
 		jobLog.setTriggerCode(triggerResult.getCode());
75
 		jobLog.setTriggerMsg(triggerResult.getMsg());
85
 		jobLog.setTriggerMsg(triggerResult.getMsg());
97
 		}
107
 		}
98
 		triggerSb.append("<br>地址列表:").append(addressList!=null?addressList.toString():"");
108
 		triggerSb.append("<br>地址列表:").append(addressList!=null?addressList.toString():"");
99
 		if (CollectionUtils.isEmpty(addressList)) {
109
 		if (CollectionUtils.isEmpty(addressList)) {
100
-			triggerSb.append("<hr>调度失败:").append("执行器地址为空");
110
+			triggerSb.append("<br>----------------------<br>").append("调度失败:").append("执行器地址为空");
101
 			return new ReturnT<String>(ReturnT.FAIL_CODE, triggerSb.toString());
111
 			return new ReturnT<String>(ReturnT.FAIL_CODE, triggerSb.toString());
102
 		}
112
 		}
103
 
113
 
107
 			jobLog.setExecutorAddress(address);
117
 			jobLog.setExecutorAddress(address);
108
 
118
 
109
 			ReturnT<String> runResult = runExecutor(triggerParam, address);
119
 			ReturnT<String> runResult = runExecutor(triggerParam, address);
110
-			triggerSb.append("<hr>").append(runResult.getMsg());
120
+			triggerSb.append("<br>----------------------<br>").append(runResult.getMsg());
111
 
121
 
112
 			return new ReturnT<String>(runResult.getCode(), triggerSb.toString());
122
 			return new ReturnT<String>(runResult.getCode(), triggerSb.toString());
113
 		} else {
123
 		} else {
115
 			ExecutorRouteStrategyEnum executorRouteStrategyEnum = ExecutorRouteStrategyEnum.match(jobInfo.getExecutorRouteStrategy(), null);
125
 			ExecutorRouteStrategyEnum executorRouteStrategyEnum = ExecutorRouteStrategyEnum.match(jobInfo.getExecutorRouteStrategy(), null);
116
 			triggerSb.append("<br>路由策略:").append(executorRouteStrategyEnum!=null?(executorRouteStrategyEnum.name() + "-" + executorRouteStrategyEnum.getTitle()):null);
126
 			triggerSb.append("<br>路由策略:").append(executorRouteStrategyEnum!=null?(executorRouteStrategyEnum.name() + "-" + executorRouteStrategyEnum.getTitle()):null);
117
 			if (executorRouteStrategyEnum == null) {
127
 			if (executorRouteStrategyEnum == null) {
118
-				triggerSb.append("<hr>调度失败:").append("执行器路由策略为空");
128
+				triggerSb.append("<br>----------------------<br>").append("调度失败:").append("执行器路由策略为空");
119
 				return new ReturnT<String>(ReturnT.FAIL_CODE, triggerSb.toString());
129
 				return new ReturnT<String>(ReturnT.FAIL_CODE, triggerSb.toString());
120
 			}
130
 			}
121
 
131
 
126
 
136
 
127
 				// run
137
 				// run
128
 				ReturnT<String> runResult = runExecutor(triggerParam, address);
138
 				ReturnT<String> runResult = runExecutor(triggerParam, address);
129
-				triggerSb.append("<hr>").append(runResult.getMsg());
139
+				triggerSb.append("<br>----------------------<br>").append(runResult.getMsg());
130
 
140
 
131
 				return new ReturnT<String>(runResult.getCode(), triggerSb.toString());
141
 				return new ReturnT<String>(runResult.getCode(), triggerSb.toString());
132
 			} else {
142
 			} else {
133
 				for (String address : addressList) {
143
 				for (String address : addressList) {
134
 					// beat
144
 					// beat
135
 					ReturnT<String> beatResult = beatExecutor(address);
145
 					ReturnT<String> beatResult = beatExecutor(address);
136
-					triggerSb.append("<hr>").append(beatResult.getMsg());
146
+					triggerSb.append("<br>----------------------<br>").append(beatResult.getMsg());
137
 
147
 
138
 					if (beatResult.getCode() == ReturnT.SUCCESS_CODE) {
148
 					if (beatResult.getCode() == ReturnT.SUCCESS_CODE) {
139
 						jobLog.setExecutorAddress(address);
149
 						jobLog.setExecutorAddress(address);
140
 
150
 
141
 						ReturnT<String> runResult = runExecutor(triggerParam, address);
151
 						ReturnT<String> runResult = runExecutor(triggerParam, address);
142
-						triggerSb.append("<hr>").append(runResult.getMsg());
152
+						triggerSb.append("<br>----------------------<br>").append(runResult.getMsg());
143
 
153
 
144
 						return new ReturnT<String>(runResult.getCode(), triggerSb.toString());
154
 						return new ReturnT<String>(runResult.getCode(), triggerSb.toString());
145
 					}
155
 					}