执行器路由逻辑优化
This commit is contained in:
parent
2ed78c55df
commit
b607bcde28
|
@ -1,6 +1,5 @@
|
|||
package com.xxl.job.admin.core.route;
|
||||
|
||||
import com.xxl.job.admin.core.model.XxlJobLog;
|
||||
import com.xxl.job.core.biz.ExecutorBiz;
|
||||
import com.xxl.job.core.biz.model.ReturnT;
|
||||
import com.xxl.job.core.biz.model.TriggerParam;
|
||||
|
@ -21,9 +20,9 @@ public abstract class ExecutorRouter {
|
|||
*
|
||||
* @param triggerParam
|
||||
* @param addressList
|
||||
* @return
|
||||
* @return ReturnT.content: final address
|
||||
*/
|
||||
public abstract ReturnT<String> routeRun(TriggerParam triggerParam, ArrayList<String> addressList, XxlJobLog jobLog);
|
||||
public abstract ReturnT<String> routeRun(TriggerParam triggerParam, ArrayList<String> addressList);
|
||||
|
||||
/**
|
||||
* run executor
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
package com.xxl.job.admin.core.route.strategy;
|
||||
|
||||
import com.xxl.job.admin.core.model.XxlJobLog;
|
||||
import com.xxl.job.admin.core.route.ExecutorRouter;
|
||||
import com.xxl.job.core.biz.ExecutorBiz;
|
||||
import com.xxl.job.core.biz.model.ReturnT;
|
||||
|
@ -19,7 +18,7 @@ public class ExecutorRouteBusyover extends ExecutorRouter {
|
|||
}
|
||||
|
||||
@Override
|
||||
public ReturnT<String> routeRun(TriggerParam triggerParam, ArrayList<String> addressList, XxlJobLog jobLog) {
|
||||
public ReturnT<String> routeRun(TriggerParam triggerParam, ArrayList<String> addressList) {
|
||||
|
||||
StringBuffer idleBeatResultSB = new StringBuffer();
|
||||
for (String address : addressList) {
|
||||
|
@ -40,12 +39,14 @@ public class ExecutorRouteBusyover extends ExecutorRouter {
|
|||
|
||||
// beat success
|
||||
if (idleBeatResult.getCode() == ReturnT.SUCCESS_CODE) {
|
||||
jobLog.setExecutorAddress(address);
|
||||
|
||||
ReturnT<String> runResult = runExecutor(triggerParam, address);
|
||||
idleBeatResultSB.append("<br><br>").append(runResult.getMsg());
|
||||
|
||||
return new ReturnT<String>(runResult.getCode(), idleBeatResultSB.toString());
|
||||
// result
|
||||
runResult.setMsg(idleBeatResultSB.toString());
|
||||
runResult.setContent(address);
|
||||
return runResult;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
package com.xxl.job.admin.core.route.strategy;
|
||||
|
||||
import com.xxl.job.admin.core.model.XxlJobLog;
|
||||
import com.xxl.job.admin.core.route.ExecutorRouter;
|
||||
import com.xxl.job.core.biz.model.ReturnT;
|
||||
import com.xxl.job.core.biz.model.TriggerParam;
|
||||
|
@ -78,13 +77,13 @@ public class ExecutorRouteConsistentHash extends ExecutorRouter {
|
|||
}
|
||||
|
||||
@Override
|
||||
public ReturnT<String> routeRun(TriggerParam triggerParam, ArrayList<String> addressList, XxlJobLog jobLog) {
|
||||
public ReturnT<String> routeRun(TriggerParam triggerParam, ArrayList<String> addressList) {
|
||||
// address
|
||||
String address = route(triggerParam.getJobId(), addressList);
|
||||
jobLog.setExecutorAddress(address);
|
||||
|
||||
// run executor
|
||||
ReturnT<String> runResult = runExecutor(triggerParam, address);
|
||||
runResult.setContent(address);
|
||||
return runResult;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
package com.xxl.job.admin.core.route.strategy;
|
||||
|
||||
import com.xxl.job.admin.core.model.XxlJobLog;
|
||||
import com.xxl.job.admin.core.route.ExecutorRouter;
|
||||
import com.xxl.job.core.biz.ExecutorBiz;
|
||||
import com.xxl.job.core.biz.model.ReturnT;
|
||||
|
@ -19,7 +18,7 @@ public class ExecutorRouteFailover extends ExecutorRouter {
|
|||
}
|
||||
|
||||
@Override
|
||||
public ReturnT<String> routeRun(TriggerParam triggerParam, ArrayList<String> addressList, XxlJobLog jobLog) {
|
||||
public ReturnT<String> routeRun(TriggerParam triggerParam, ArrayList<String> addressList) {
|
||||
|
||||
StringBuffer beatResultSB = new StringBuffer();
|
||||
for (String address : addressList) {
|
||||
|
@ -40,12 +39,14 @@ public class ExecutorRouteFailover extends ExecutorRouter {
|
|||
|
||||
// beat success
|
||||
if (beatResult.getCode() == ReturnT.SUCCESS_CODE) {
|
||||
jobLog.setExecutorAddress(address);
|
||||
|
||||
ReturnT<String> runResult = runExecutor(triggerParam, address);
|
||||
beatResultSB.append("<br><br>").append(runResult.getMsg());
|
||||
|
||||
return new ReturnT<String>(runResult.getCode(), beatResultSB.toString());
|
||||
// result
|
||||
runResult.setMsg(beatResultSB.toString());
|
||||
runResult.setContent(address);
|
||||
return runResult;
|
||||
}
|
||||
}
|
||||
return new ReturnT<String>(ReturnT.FAIL_CODE, beatResultSB.toString());
|
||||
|
|
|
@ -17,14 +17,14 @@ public class ExecutorRouteFirst extends ExecutorRouter {
|
|||
}
|
||||
|
||||
@Override
|
||||
public ReturnT<String> routeRun(TriggerParam triggerParam, ArrayList<String> addressList, XxlJobLog jobLog) {
|
||||
public ReturnT<String> routeRun(TriggerParam triggerParam, ArrayList<String> addressList) {
|
||||
|
||||
// address
|
||||
String address = route(triggerParam.getJobId(), addressList);
|
||||
jobLog.setExecutorAddress(address);
|
||||
|
||||
// run executor
|
||||
ReturnT<String> runResult = runExecutor(triggerParam, address);
|
||||
runResult.setContent(address);
|
||||
return runResult;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
package com.xxl.job.admin.core.route.strategy;
|
||||
|
||||
import com.xxl.job.admin.core.model.XxlJobLog;
|
||||
import com.xxl.job.admin.core.route.ExecutorRouter;
|
||||
import com.xxl.job.core.biz.model.ReturnT;
|
||||
import com.xxl.job.core.biz.model.TriggerParam;
|
||||
|
@ -57,14 +56,14 @@ public class ExecutorRouteLFU extends ExecutorRouter {
|
|||
}
|
||||
|
||||
@Override
|
||||
public ReturnT<String> routeRun(TriggerParam triggerParam, ArrayList<String> addressList, XxlJobLog jobLog) {
|
||||
public ReturnT<String> routeRun(TriggerParam triggerParam, ArrayList<String> addressList) {
|
||||
|
||||
// address
|
||||
String address = route(triggerParam.getJobId(), addressList);
|
||||
jobLog.setExecutorAddress(address);
|
||||
|
||||
// run executor
|
||||
ReturnT<String> runResult = runExecutor(triggerParam, address);
|
||||
runResult.setContent(address);
|
||||
return runResult;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
package com.xxl.job.admin.core.route.strategy;
|
||||
|
||||
import com.xxl.job.admin.core.model.XxlJobLog;
|
||||
import com.xxl.job.admin.core.route.ExecutorRouter;
|
||||
import com.xxl.job.core.biz.model.ReturnT;
|
||||
import com.xxl.job.core.biz.model.TriggerParam;
|
||||
|
@ -56,14 +55,14 @@ public class ExecutorRouteLRU extends ExecutorRouter {
|
|||
|
||||
|
||||
@Override
|
||||
public ReturnT<String> routeRun(TriggerParam triggerParam, ArrayList<String> addressList, XxlJobLog jobLog) {
|
||||
public ReturnT<String> routeRun(TriggerParam triggerParam, ArrayList<String> addressList) {
|
||||
|
||||
// address
|
||||
String address = route(triggerParam.getJobId(), addressList);
|
||||
jobLog.setExecutorAddress(address);
|
||||
|
||||
// run executor
|
||||
ReturnT<String> runResult = runExecutor(triggerParam, address);
|
||||
runResult.setContent(address);
|
||||
return runResult;
|
||||
}
|
||||
|
||||
|
|
|
@ -17,13 +17,13 @@ public class ExecutorRouteLast extends ExecutorRouter {
|
|||
}
|
||||
|
||||
@Override
|
||||
public ReturnT<String> routeRun(TriggerParam triggerParam, ArrayList<String> addressList, XxlJobLog jobLog) {
|
||||
public ReturnT<String> routeRun(TriggerParam triggerParam, ArrayList<String> addressList) {
|
||||
// address
|
||||
String address = route(triggerParam.getJobId(), addressList);
|
||||
jobLog.setExecutorAddress(address);
|
||||
|
||||
// run executor
|
||||
ReturnT<String> runResult = runExecutor(triggerParam, address);
|
||||
runResult.setContent(address);
|
||||
return runResult;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
package com.xxl.job.admin.core.route.strategy;
|
||||
|
||||
import com.xxl.job.admin.core.model.XxlJobLog;
|
||||
import com.xxl.job.admin.core.route.ExecutorRouter;
|
||||
import com.xxl.job.core.biz.model.ReturnT;
|
||||
import com.xxl.job.core.biz.model.TriggerParam;
|
||||
|
@ -21,13 +20,13 @@ public class ExecutorRouteRandom extends ExecutorRouter {
|
|||
}
|
||||
|
||||
@Override
|
||||
public ReturnT<String> routeRun(TriggerParam triggerParam, ArrayList<String> addressList, XxlJobLog jobLog) {
|
||||
public ReturnT<String> routeRun(TriggerParam triggerParam, ArrayList<String> addressList) {
|
||||
// address
|
||||
String address = route(triggerParam.getJobId(), addressList);
|
||||
jobLog.setExecutorAddress(address);
|
||||
|
||||
// run executor
|
||||
ReturnT<String> runResult = runExecutor(triggerParam, address);
|
||||
runResult.setContent(address);
|
||||
return runResult;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
package com.xxl.job.admin.core.route.strategy;
|
||||
|
||||
import com.xxl.job.admin.core.model.XxlJobLog;
|
||||
import com.xxl.job.admin.core.route.ExecutorRouter;
|
||||
import com.xxl.job.core.biz.model.ReturnT;
|
||||
import com.xxl.job.core.biz.model.TriggerParam;
|
||||
|
@ -36,14 +35,14 @@ public class ExecutorRouteRound extends ExecutorRouter {
|
|||
|
||||
|
||||
@Override
|
||||
public ReturnT<String> routeRun(TriggerParam triggerParam, ArrayList<String> addressList, XxlJobLog jobLog) {
|
||||
public ReturnT<String> routeRun(TriggerParam triggerParam, ArrayList<String> addressList) {
|
||||
|
||||
// address
|
||||
String address = route(triggerParam.getJobId(), addressList);
|
||||
jobLog.setExecutorAddress(address);
|
||||
|
||||
// run executor
|
||||
ReturnT<String> runResult = runExecutor(triggerParam, address);
|
||||
runResult.setContent(address);
|
||||
return runResult;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -86,17 +86,18 @@ public class XxlJobTrigger {
|
|||
triggerParam.setLogDateTim(jobLog.getTriggerTime().getTime());
|
||||
|
||||
// 4.2、trigger-run (route run / trigger remote executor)
|
||||
triggerResult = executorRouteStrategyEnum.getRouter().routeRun(triggerParam, addressList, jobLog);
|
||||
triggerResult = executorRouteStrategyEnum.getRouter().routeRun(triggerParam, addressList);
|
||||
triggerMsgSb.append("<br><br><span style=\"color:#00c0ef;\" > >>>>>>>>>>>触发调度<<<<<<<<<<< </span><br>").append(triggerResult.getMsg());
|
||||
|
||||
// 4.3、trigger (fail retry)
|
||||
if (triggerResult.getCode()!=ReturnT.SUCCESS_CODE && failStrategy == ExecutorFailStrategyEnum.FAIL_RETRY) {
|
||||
triggerResult = executorRouteStrategyEnum.getRouter().routeRun(triggerParam, addressList, jobLog);
|
||||
triggerResult = executorRouteStrategyEnum.getRouter().routeRun(triggerParam, addressList);
|
||||
triggerMsgSb.append("<br><br><span style=\"color:#F39C12;\" > >>>>>>>>>>>失败重试<<<<<<<<<<< </span><br>").append(triggerResult.getMsg());
|
||||
}
|
||||
}
|
||||
|
||||
// 5、save trigger-info
|
||||
jobLog.setExecutorAddress(triggerResult.getContent());
|
||||
jobLog.setTriggerCode(triggerResult.getCode());
|
||||
jobLog.setTriggerMsg(triggerMsgSb.toString());
|
||||
XxlJobDynamicScheduler.xxlJobLogDao.updateTriggerInfo(jobLog);
|
||||
|
|
|
@ -110,7 +110,7 @@ $(function() {
|
|||
}
|
||||
|
||||
var temp = '';
|
||||
temp += '执行器地址:' + row.executorAddress;
|
||||
temp += '执行器地址:' + (row.executorAddress?row.executorAddress:'');
|
||||
temp += '<br>运行模式:' + glueTypeTitle;
|
||||
temp += '<br>任务参数:' + row.executorParam;
|
||||
|
||||
|
|
Loading…
Reference in New Issue