diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/ExecutorRouter.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/ExecutorRouter.java index 58dd40d8..5a9623f8 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/ExecutorRouter.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/ExecutorRouter.java @@ -14,12 +14,11 @@ public abstract class ExecutorRouter { protected static Logger logger = LoggerFactory.getLogger(ExecutorRouter.class); /** - * route run executor + * route address * - * @param triggerParam * @param addressList - * @return ReturnT.content: final address + * @return ReturnT.content=address */ - public abstract ReturnT routeRun(TriggerParam triggerParam, ArrayList addressList); + public abstract ReturnT route(TriggerParam triggerParam, ArrayList addressList); } diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteBusyover.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteBusyover.java index 7f355248..55c3b67f 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteBusyover.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteBusyover.java @@ -15,13 +15,8 @@ import java.util.ArrayList; */ public class ExecutorRouteBusyover extends ExecutorRouter { - public String route(int jobId, ArrayList addressList) { - return addressList.get(0); - } - @Override - public ReturnT routeRun(TriggerParam triggerParam, ArrayList addressList) { - + public ReturnT route(TriggerParam triggerParam, ArrayList addressList) { StringBuffer idleBeatResultSB = new StringBuffer(); for (String address : addressList) { // beat @@ -41,17 +36,13 @@ public class ExecutorRouteBusyover extends ExecutorRouter { // beat success if (idleBeatResult.getCode() == ReturnT.SUCCESS_CODE) { - - ReturnT runResult = XxlJobTrigger.runExecutor(triggerParam, address); - idleBeatResultSB.append("

").append(runResult.getMsg()); - - // result - runResult.setMsg(idleBeatResultSB.toString()); - runResult.setContent(address); - return runResult; + idleBeatResult.setMsg(idleBeatResultSB.toString()); + idleBeatResult.setContent(address); + return idleBeatResult; } } return new ReturnT(ReturnT.FAIL_CODE, idleBeatResultSB.toString()); } + } diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteConsistentHash.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteConsistentHash.java index a6540f7e..3abb5de1 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteConsistentHash.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteConsistentHash.java @@ -57,7 +57,7 @@ public class ExecutorRouteConsistentHash extends ExecutorRouter { return truncateHashCode; } - public String route(int jobId, ArrayList addressList) { + public String hashJob(int jobId, ArrayList addressList) { // ------A1------A2-------A3------ // -----------J1------------------ @@ -78,13 +78,9 @@ public class ExecutorRouteConsistentHash extends ExecutorRouter { } @Override - public ReturnT routeRun(TriggerParam triggerParam, ArrayList addressList) { - // address - String address = route(triggerParam.getJobId(), addressList); - - // run executor - ReturnT runResult = XxlJobTrigger.runExecutor(triggerParam, address); - runResult.setContent(address); - return runResult; + public ReturnT route(TriggerParam triggerParam, ArrayList addressList) { + String address = hashJob(triggerParam.getJobId(), addressList); + return new ReturnT(address); } + } diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteFailover.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteFailover.java index 663c7f2f..98181ff2 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteFailover.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteFailover.java @@ -15,12 +15,8 @@ import java.util.ArrayList; */ public class ExecutorRouteFailover extends ExecutorRouter { - public String route(int jobId, ArrayList addressList) { - return addressList.get(0); - } - @Override - public ReturnT routeRun(TriggerParam triggerParam, ArrayList addressList) { + public ReturnT route(TriggerParam triggerParam, ArrayList addressList) { StringBuffer beatResultSB = new StringBuffer(); for (String address : addressList) { @@ -42,13 +38,9 @@ public class ExecutorRouteFailover extends ExecutorRouter { // beat success if (beatResult.getCode() == ReturnT.SUCCESS_CODE) { - ReturnT runResult = XxlJobTrigger.runExecutor(triggerParam, address); - beatResultSB.append("

").append(runResult.getMsg()); - - // result - runResult.setMsg(beatResultSB.toString()); - runResult.setContent(address); - return runResult; + beatResult.setMsg(beatResultSB.toString()); + beatResult.setContent(address); + return beatResult; } } return new ReturnT(ReturnT.FAIL_CODE, beatResultSB.toString()); diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteFirst.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteFirst.java index e500825d..a64be3c7 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteFirst.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteFirst.java @@ -12,19 +12,9 @@ import java.util.ArrayList; */ public class ExecutorRouteFirst extends ExecutorRouter { - public String route(int jobId, ArrayList addressList) { - return addressList.get(0); - } - @Override - public ReturnT routeRun(TriggerParam triggerParam, ArrayList addressList) { - - // address - String address = route(triggerParam.getJobId(), addressList); - - // run executor - ReturnT runResult = XxlJobTrigger.runExecutor(triggerParam, address); - runResult.setContent(address); - return runResult; + public ReturnT route(TriggerParam triggerParam, ArrayList addressList){ + return new ReturnT(addressList.get(0)); } + } diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteLFU.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteLFU.java index a10fac4c..d4cce7e5 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteLFU.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteLFU.java @@ -57,15 +57,9 @@ public class ExecutorRouteLFU extends ExecutorRouter { } @Override - public ReturnT routeRun(TriggerParam triggerParam, ArrayList addressList) { - - // address + public ReturnT route(TriggerParam triggerParam, ArrayList addressList) { String address = route(triggerParam.getJobId(), addressList); - - // run executor - ReturnT runResult = XxlJobTrigger.runExecutor(triggerParam, address); - runResult.setContent(address); - return runResult; + return new ReturnT(address); } } diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteLRU.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteLRU.java index 7e8f6176..60c233e9 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteLRU.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteLRU.java @@ -54,17 +54,10 @@ public class ExecutorRouteLRU extends ExecutorRouter { return eldestValue; } - @Override - public ReturnT routeRun(TriggerParam triggerParam, ArrayList addressList) { - - // address + public ReturnT route(TriggerParam triggerParam, ArrayList addressList) { String address = route(triggerParam.getJobId(), addressList); - - // run executor - ReturnT runResult = XxlJobTrigger.runExecutor(triggerParam, address); - runResult.setContent(address); - return runResult; + return new ReturnT(address); } } diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteLast.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteLast.java index 81b72534..bcf9d6f8 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteLast.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteLast.java @@ -12,18 +12,9 @@ import java.util.ArrayList; */ public class ExecutorRouteLast extends ExecutorRouter { - public String route(int jobId, ArrayList addressList) { - return addressList.get(addressList.size()-1); - } - @Override - public ReturnT routeRun(TriggerParam triggerParam, ArrayList addressList) { - // address - String address = route(triggerParam.getJobId(), addressList); - - // run executor - ReturnT runResult = XxlJobTrigger.runExecutor(triggerParam, address); - runResult.setContent(address); - return runResult; + public ReturnT route(TriggerParam triggerParam, ArrayList addressList) { + return new ReturnT(addressList.get(addressList.size()-1)); } + } diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteRandom.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteRandom.java index 1db6438a..7c383468 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteRandom.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteRandom.java @@ -15,20 +15,10 @@ public class ExecutorRouteRandom extends ExecutorRouter { private static Random localRandom = new Random(); - public String route(int jobId, ArrayList addressList) { - // Collections.shuffle(addressList); - return addressList.get(localRandom.nextInt(addressList.size())); - } - @Override - public ReturnT routeRun(TriggerParam triggerParam, ArrayList addressList) { - // address - String address = route(triggerParam.getJobId(), addressList); - - // run executor - ReturnT runResult = XxlJobTrigger.runExecutor(triggerParam, address); - runResult.setContent(address); - return runResult; + public ReturnT route(TriggerParam triggerParam, ArrayList addressList) { + String address = addressList.get(localRandom.nextInt(addressList.size())); + return new ReturnT(address); } } diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteRound.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteRound.java index e12e7490..365f59fe 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteRound.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteRound.java @@ -30,20 +30,10 @@ public class ExecutorRouteRound extends ExecutorRouter { return count; } - public String route(int jobId, ArrayList addressList) { - return addressList.get(count(jobId)%addressList.size()); - } - - @Override - public ReturnT routeRun(TriggerParam triggerParam, ArrayList addressList) { - - // address - String address = route(triggerParam.getJobId(), addressList); - - // run executor - ReturnT runResult = XxlJobTrigger.runExecutor(triggerParam, address); - runResult.setContent(address); - return runResult; + public ReturnT route(TriggerParam triggerParam, ArrayList addressList) { + String address = addressList.get(count(triggerParam.getJobId())%addressList.size()); + return new ReturnT(address); } + } diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/trigger/XxlJobTrigger.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/trigger/XxlJobTrigger.java index 424b5fd7..1212dfd4 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/trigger/XxlJobTrigger.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/trigger/XxlJobTrigger.java @@ -145,6 +145,7 @@ public class XxlJobTrigger { triggerMsgSb.append("
").append(I18nUtil.getString("jobinfo_field_executorFailRetryCount")).append(":").append(finalFailRetryCount); // 3.0、trigger-valid + String address = null; if (CollectionUtils.isEmpty(addressList)) { triggerResult.setCode(ReturnT.FAIL_CODE); triggerMsgSb.append("
----------------------
").append(I18nUtil.getString("jobconf_trigger_address_empty")); @@ -165,14 +166,19 @@ public class XxlJobTrigger { triggerParam.setBroadcastTotal(1); // 3.2、trigger-run (route run / trigger remote executor) - triggerResult = executorRouteStrategyEnum.getRouter().routeRun(triggerParam, addressList); - triggerMsgSb.append("

>>>>>>>>>>>"+ I18nUtil.getString("jobconf_trigger_run") +"<<<<<<<<<<<
").append(triggerResult.getMsg()); - + //triggerResult = executorRouteStrategyEnum.getRouter().routeRun(triggerParam, addressList); + ReturnT routeAddressResult = executorRouteStrategyEnum.getRouter().route(triggerParam, addressList); + if (routeAddressResult.getCode() == ReturnT.SUCCESS_CODE) { + address = routeAddressResult.getContent(); + triggerResult = runExecutor(triggerParam, address); + } + triggerMsgSb.append("

>>>>>>>>>>>"+ I18nUtil.getString("jobconf_trigger_run") +"<<<<<<<<<<<
") + .append(routeAddressResult.getMsg()!=null?routeAddressResult.getMsg()+"

":"").append(triggerResult.getMsg()!=null?triggerResult.getMsg():""); } // 4、save trigger-info - jobLog.setExecutorAddress(triggerResult.getContent()); + jobLog.setExecutorAddress(address); jobLog.setTriggerCode(triggerResult.getCode()); jobLog.setTriggerMsg(triggerMsgSb.toString()); XxlJobDynamicScheduler.xxlJobLogDao.updateTriggerInfo(jobLog);