|
|
|
|
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
|
}
|