xueli.xue 8 rokov pred
rodič
commit
8600f883e2

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

@@ -1,5 +1,6 @@
 package com.xxl.job.admin.core.jobbean;
 
+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;
@@ -70,6 +71,15 @@ public class RemoteHttpJobBean extends QuartzJobBean {
 		// do trigger
 		ReturnT<String> triggerResult = doTrigger(triggerParam, jobInfo, jobLog);
 
+		// fail retry
+		if (triggerResult.getCode()==ReturnT.FAIL_CODE &&
+				ExecutorFailStrategyEnum.match(jobInfo.getExecutorFailStrategy(), null) == ExecutorFailStrategyEnum.FAIL_RETRY) {
+			ReturnT<String> retryTriggerResult = doTrigger(triggerParam, jobInfo, jobLog);
+
+			triggerResult.setCode(retryTriggerResult.getCode());
+			triggerResult.setMsg(triggerResult.getMsg() + "<br><br><span style=\"color:#F39C12;\" > >>>>>>>>>>>失败重试<<<<<<<<<<< </span><br><br>" +retryTriggerResult.getMsg());
+		}
+
 		// log part-2
 		jobLog.setTriggerCode(triggerResult.getCode());
 		jobLog.setTriggerMsg(triggerResult.getMsg());
@@ -97,7 +107,7 @@ public class RemoteHttpJobBean extends QuartzJobBean {
 		}
 		triggerSb.append("<br>地址列表:").append(addressList!=null?addressList.toString():"");
 		if (CollectionUtils.isEmpty(addressList)) {
-			triggerSb.append("<hr>调度失败:").append("执行器地址为空");
+			triggerSb.append("<br>----------------------<br>").append("调度失败:").append("执行器地址为空");
 			return new ReturnT<String>(ReturnT.FAIL_CODE, triggerSb.toString());
 		}
 
@@ -107,7 +117,7 @@ public class RemoteHttpJobBean extends QuartzJobBean {
 			jobLog.setExecutorAddress(address);
 
 			ReturnT<String> runResult = runExecutor(triggerParam, address);
-			triggerSb.append("<hr>").append(runResult.getMsg());
+			triggerSb.append("<br>----------------------<br>").append(runResult.getMsg());
 
 			return new ReturnT<String>(runResult.getCode(), triggerSb.toString());
 		} else {
@@ -115,7 +125,7 @@ public class RemoteHttpJobBean extends QuartzJobBean {
 			ExecutorRouteStrategyEnum executorRouteStrategyEnum = ExecutorRouteStrategyEnum.match(jobInfo.getExecutorRouteStrategy(), null);
 			triggerSb.append("<br>路由策略:").append(executorRouteStrategyEnum!=null?(executorRouteStrategyEnum.name() + "-" + executorRouteStrategyEnum.getTitle()):null);
 			if (executorRouteStrategyEnum == null) {
-				triggerSb.append("<hr>调度失败:").append("执行器路由策略为空");
+				triggerSb.append("<br>----------------------<br>").append("调度失败:").append("执行器路由策略为空");
 				return new ReturnT<String>(ReturnT.FAIL_CODE, triggerSb.toString());
 			}
 
@@ -126,20 +136,20 @@ public class RemoteHttpJobBean extends QuartzJobBean {
 
 				// run
 				ReturnT<String> runResult = runExecutor(triggerParam, address);
-				triggerSb.append("<hr>").append(runResult.getMsg());
+				triggerSb.append("<br>----------------------<br>").append(runResult.getMsg());
 
 				return new ReturnT<String>(runResult.getCode(), triggerSb.toString());
 			} else {
 				for (String address : addressList) {
 					// beat
 					ReturnT<String> beatResult = beatExecutor(address);
-					triggerSb.append("<hr>").append(beatResult.getMsg());
+					triggerSb.append("<br>----------------------<br>").append(beatResult.getMsg());
 
 					if (beatResult.getCode() == ReturnT.SUCCESS_CODE) {
 						jobLog.setExecutorAddress(address);
 
 						ReturnT<String> runResult = runExecutor(triggerParam, address);
-						triggerSb.append("<hr>").append(runResult.getMsg());
+						triggerSb.append("<br>----------------------<br>").append(runResult.getMsg());
 
 						return new ReturnT<String>(runResult.getCode(), triggerSb.toString());
 					}