Bläddra i källkod

执行器路由逻辑优化

xuxueli 8 år sedan
förälder
incheckning
b607bcde28

+ 2 - 3
xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/ExecutorRouter.java

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

+ 5 - 4
xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteBusyover.java

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

+ 2 - 3
xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteConsistentHash.java

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

+ 5 - 4
xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteFailover.java

@@ -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());

+ 2 - 2
xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteFirst.java

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

+ 2 - 3
xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteLFU.java

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

+ 2 - 3
xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteLRU.java

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

+ 2 - 2
xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteLast.java

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

+ 2 - 3
xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteRandom.java

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

+ 2 - 3
xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteRound.java

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

+ 3 - 2
xxl-job-admin/src/main/java/com/xxl/job/admin/core/trigger/XxlJobTrigger.java

@@ -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);

+ 1 - 1
xxl-job-admin/src/main/webapp/static/js/joblog.index.1.js

@@ -110,7 +110,7 @@ $(function() {
                             }
 
                             var temp = '';
-                            temp += '执行器地址:' + row.executorAddress;
+                            temp += '执行器地址:' + (row.executorAddress?row.executorAddress:'');
                             temp += '<br>运行模式:' + glueTypeTitle;
                             temp += '<br>任务参数:' + row.executorParam;