Bläddra i källkod

失败处理策略

xueli.xue 8 år sedan
förälder
incheckning
8600f883e2

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

@@ -1,5 +1,6 @@
1 1
 package com.xxl.job.admin.core.jobbean;
2 2
 
3
+import com.xxl.job.admin.core.enums.ExecutorFailStrategyEnum;
3 4
 import com.xxl.job.admin.core.model.XxlJobGroup;
4 5
 import com.xxl.job.admin.core.model.XxlJobInfo;
5 6
 import com.xxl.job.admin.core.model.XxlJobLog;
@@ -70,6 +71,15 @@ public class RemoteHttpJobBean extends QuartzJobBean {
70 71
 		// do trigger
71 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 83
 		// log part-2
74 84
 		jobLog.setTriggerCode(triggerResult.getCode());
75 85
 		jobLog.setTriggerMsg(triggerResult.getMsg());
@@ -97,7 +107,7 @@ public class RemoteHttpJobBean extends QuartzJobBean {
97 107
 		}
98 108
 		triggerSb.append("<br>地址列表:").append(addressList!=null?addressList.toString():"");
99 109
 		if (CollectionUtils.isEmpty(addressList)) {
100
-			triggerSb.append("<hr>调度失败:").append("执行器地址为空");
110
+			triggerSb.append("<br>----------------------<br>").append("调度失败:").append("执行器地址为空");
101 111
 			return new ReturnT<String>(ReturnT.FAIL_CODE, triggerSb.toString());
102 112
 		}
103 113
 
@@ -107,7 +117,7 @@ public class RemoteHttpJobBean extends QuartzJobBean {
107 117
 			jobLog.setExecutorAddress(address);
108 118
 
109 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 122
 			return new ReturnT<String>(runResult.getCode(), triggerSb.toString());
113 123
 		} else {
@@ -115,7 +125,7 @@ public class RemoteHttpJobBean extends QuartzJobBean {
115 125
 			ExecutorRouteStrategyEnum executorRouteStrategyEnum = ExecutorRouteStrategyEnum.match(jobInfo.getExecutorRouteStrategy(), null);
116 126
 			triggerSb.append("<br>路由策略:").append(executorRouteStrategyEnum!=null?(executorRouteStrategyEnum.name() + "-" + executorRouteStrategyEnum.getTitle()):null);
117 127
 			if (executorRouteStrategyEnum == null) {
118
-				triggerSb.append("<hr>调度失败:").append("执行器路由策略为空");
128
+				triggerSb.append("<br>----------------------<br>").append("调度失败:").append("执行器路由策略为空");
119 129
 				return new ReturnT<String>(ReturnT.FAIL_CODE, triggerSb.toString());
120 130
 			}
121 131
 
@@ -126,20 +136,20 @@ public class RemoteHttpJobBean extends QuartzJobBean {
126 136
 
127 137
 				// run
128 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 141
 				return new ReturnT<String>(runResult.getCode(), triggerSb.toString());
132 142
 			} else {
133 143
 				for (String address : addressList) {
134 144
 					// beat
135 145
 					ReturnT<String> beatResult = beatExecutor(address);
136
-					triggerSb.append("<hr>").append(beatResult.getMsg());
146
+					triggerSb.append("<br>----------------------<br>").append(beatResult.getMsg());
137 147
 
138 148
 					if (beatResult.getCode() == ReturnT.SUCCESS_CODE) {
139 149
 						jobLog.setExecutorAddress(address);
140 150
 
141 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 154
 						return new ReturnT<String>(runResult.getCode(), triggerSb.toString());
145 155
 					}