Преглед на файлове

执行器路由逻辑优化

xuxueli преди 8 години
родител
ревизия
b607bcde28

+ 2 - 3
xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/ExecutorRouter.java Целия файл

@@ -1,6 +1,5 @@
1 1
 package com.xxl.job.admin.core.route;
2 2
 
3
-import com.xxl.job.admin.core.model.XxlJobLog;
4 3
 import com.xxl.job.core.biz.ExecutorBiz;
5 4
 import com.xxl.job.core.biz.model.ReturnT;
6 5
 import com.xxl.job.core.biz.model.TriggerParam;
@@ -21,9 +20,9 @@ public abstract class ExecutorRouter {
21 20
      *
22 21
      * @param triggerParam
23 22
      * @param addressList
24
-     * @return
23
+     * @return  ReturnT.content: final address
25 24
      */
26
-    public abstract ReturnT<String> routeRun(TriggerParam triggerParam, ArrayList<String> addressList, XxlJobLog jobLog);
25
+    public abstract ReturnT<String> routeRun(TriggerParam triggerParam, ArrayList<String> addressList);
27 26
 
28 27
     /**
29 28
      * run executor

+ 5 - 4
xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteBusyover.java Целия файл

@@ -1,6 +1,5 @@
1 1
 package com.xxl.job.admin.core.route.strategy;
2 2
 
3
-import com.xxl.job.admin.core.model.XxlJobLog;
4 3
 import com.xxl.job.admin.core.route.ExecutorRouter;
5 4
 import com.xxl.job.core.biz.ExecutorBiz;
6 5
 import com.xxl.job.core.biz.model.ReturnT;
@@ -19,7 +18,7 @@ public class ExecutorRouteBusyover extends ExecutorRouter {
19 18
     }
20 19
 
21 20
     @Override
22
-    public ReturnT<String> routeRun(TriggerParam triggerParam, ArrayList<String> addressList, XxlJobLog jobLog) {
21
+    public ReturnT<String> routeRun(TriggerParam triggerParam, ArrayList<String> addressList) {
23 22
 
24 23
         StringBuffer idleBeatResultSB = new StringBuffer();
25 24
         for (String address : addressList) {
@@ -40,12 +39,14 @@ public class ExecutorRouteBusyover extends ExecutorRouter {
40 39
 
41 40
             // beat success
42 41
             if (idleBeatResult.getCode() == ReturnT.SUCCESS_CODE) {
43
-                jobLog.setExecutorAddress(address);
44 42
 
45 43
                 ReturnT<String> runResult = runExecutor(triggerParam, address);
46 44
                 idleBeatResultSB.append("<br><br>").append(runResult.getMsg());
47 45
 
48
-                return new ReturnT<String>(runResult.getCode(), idleBeatResultSB.toString());
46
+                // result
47
+                runResult.setMsg(idleBeatResultSB.toString());
48
+                runResult.setContent(address);
49
+                return runResult;
49 50
             }
50 51
         }
51 52
 

+ 2 - 3
xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteConsistentHash.java Целия файл

@@ -1,6 +1,5 @@
1 1
 package com.xxl.job.admin.core.route.strategy;
2 2
 
3
-import com.xxl.job.admin.core.model.XxlJobLog;
4 3
 import com.xxl.job.admin.core.route.ExecutorRouter;
5 4
 import com.xxl.job.core.biz.model.ReturnT;
6 5
 import com.xxl.job.core.biz.model.TriggerParam;
@@ -78,13 +77,13 @@ public class ExecutorRouteConsistentHash extends ExecutorRouter {
78 77
     }
79 78
 
80 79
     @Override
81
-    public ReturnT<String> routeRun(TriggerParam triggerParam, ArrayList<String> addressList, XxlJobLog jobLog) {
80
+    public ReturnT<String> routeRun(TriggerParam triggerParam, ArrayList<String> addressList) {
82 81
         // address
83 82
         String address = route(triggerParam.getJobId(), addressList);
84
-        jobLog.setExecutorAddress(address);
85 83
 
86 84
         // run executor
87 85
         ReturnT<String> runResult = runExecutor(triggerParam, address);
86
+        runResult.setContent(address);
88 87
         return runResult;
89 88
     }
90 89
 }

+ 5 - 4
xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteFailover.java Целия файл

@@ -1,6 +1,5 @@
1 1
 package com.xxl.job.admin.core.route.strategy;
2 2
 
3
-import com.xxl.job.admin.core.model.XxlJobLog;
4 3
 import com.xxl.job.admin.core.route.ExecutorRouter;
5 4
 import com.xxl.job.core.biz.ExecutorBiz;
6 5
 import com.xxl.job.core.biz.model.ReturnT;
@@ -19,7 +18,7 @@ public class ExecutorRouteFailover extends ExecutorRouter {
19 18
     }
20 19
 
21 20
     @Override
22
-    public ReturnT<String> routeRun(TriggerParam triggerParam, ArrayList<String> addressList, XxlJobLog jobLog) {
21
+    public ReturnT<String> routeRun(TriggerParam triggerParam, ArrayList<String> addressList) {
23 22
 
24 23
         StringBuffer beatResultSB = new StringBuffer();
25 24
         for (String address : addressList) {
@@ -40,12 +39,14 @@ public class ExecutorRouteFailover extends ExecutorRouter {
40 39
 
41 40
             // beat success
42 41
             if (beatResult.getCode() == ReturnT.SUCCESS_CODE) {
43
-                jobLog.setExecutorAddress(address);
44 42
 
45 43
                 ReturnT<String> runResult = runExecutor(triggerParam, address);
46 44
                 beatResultSB.append("<br><br>").append(runResult.getMsg());
47 45
 
48
-                return new ReturnT<String>(runResult.getCode(), beatResultSB.toString());
46
+                // result
47
+                runResult.setMsg(beatResultSB.toString());
48
+                runResult.setContent(address);
49
+                return runResult;
49 50
             }
50 51
         }
51 52
         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 {
17 17
     }
18 18
 
19 19
     @Override
20
-    public ReturnT<String> routeRun(TriggerParam triggerParam, ArrayList<String> addressList, XxlJobLog jobLog) {
20
+    public ReturnT<String> routeRun(TriggerParam triggerParam, ArrayList<String> addressList) {
21 21
 
22 22
         // address
23 23
         String address = route(triggerParam.getJobId(), addressList);
24
-        jobLog.setExecutorAddress(address);
25 24
 
26 25
         // run executor
27 26
         ReturnT<String> runResult = runExecutor(triggerParam, address);
27
+        runResult.setContent(address);
28 28
         return runResult;
29 29
     }
30 30
 }

+ 2 - 3
xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteLFU.java Целия файл

@@ -1,6 +1,5 @@
1 1
 package com.xxl.job.admin.core.route.strategy;
2 2
 
3
-import com.xxl.job.admin.core.model.XxlJobLog;
4 3
 import com.xxl.job.admin.core.route.ExecutorRouter;
5 4
 import com.xxl.job.core.biz.model.ReturnT;
6 5
 import com.xxl.job.core.biz.model.TriggerParam;
@@ -57,14 +56,14 @@ public class ExecutorRouteLFU extends ExecutorRouter {
57 56
     }
58 57
 
59 58
     @Override
60
-    public ReturnT<String> routeRun(TriggerParam triggerParam, ArrayList<String> addressList, XxlJobLog jobLog) {
59
+    public ReturnT<String> routeRun(TriggerParam triggerParam, ArrayList<String> addressList) {
61 60
 
62 61
         // address
63 62
         String address = route(triggerParam.getJobId(), addressList);
64
-        jobLog.setExecutorAddress(address);
65 63
 
66 64
         // run executor
67 65
         ReturnT<String> runResult = runExecutor(triggerParam, address);
66
+        runResult.setContent(address);
68 67
         return runResult;
69 68
     }
70 69
 

+ 2 - 3
xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteLRU.java Целия файл

@@ -1,6 +1,5 @@
1 1
 package com.xxl.job.admin.core.route.strategy;
2 2
 
3
-import com.xxl.job.admin.core.model.XxlJobLog;
4 3
 import com.xxl.job.admin.core.route.ExecutorRouter;
5 4
 import com.xxl.job.core.biz.model.ReturnT;
6 5
 import com.xxl.job.core.biz.model.TriggerParam;
@@ -56,14 +55,14 @@ public class ExecutorRouteLRU extends ExecutorRouter {
56 55
 
57 56
 
58 57
     @Override
59
-    public ReturnT<String> routeRun(TriggerParam triggerParam, ArrayList<String> addressList, XxlJobLog jobLog) {
58
+    public ReturnT<String> routeRun(TriggerParam triggerParam, ArrayList<String> addressList) {
60 59
 
61 60
         // address
62 61
         String address = route(triggerParam.getJobId(), addressList);
63
-        jobLog.setExecutorAddress(address);
64 62
 
65 63
         // run executor
66 64
         ReturnT<String> runResult = runExecutor(triggerParam, address);
65
+        runResult.setContent(address);
67 66
         return runResult;
68 67
     }
69 68
 

+ 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 {
17 17
     }
18 18
 
19 19
     @Override
20
-    public ReturnT<String> routeRun(TriggerParam triggerParam, ArrayList<String> addressList, XxlJobLog jobLog) {
20
+    public ReturnT<String> routeRun(TriggerParam triggerParam, ArrayList<String> addressList) {
21 21
         // address
22 22
         String address = route(triggerParam.getJobId(), addressList);
23
-        jobLog.setExecutorAddress(address);
24 23
 
25 24
         // run executor
26 25
         ReturnT<String> runResult = runExecutor(triggerParam, address);
26
+        runResult.setContent(address);
27 27
         return runResult;
28 28
     }
29 29
 }

+ 2 - 3
xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteRandom.java Целия файл

@@ -1,6 +1,5 @@
1 1
 package com.xxl.job.admin.core.route.strategy;
2 2
 
3
-import com.xxl.job.admin.core.model.XxlJobLog;
4 3
 import com.xxl.job.admin.core.route.ExecutorRouter;
5 4
 import com.xxl.job.core.biz.model.ReturnT;
6 5
 import com.xxl.job.core.biz.model.TriggerParam;
@@ -21,13 +20,13 @@ public class ExecutorRouteRandom extends ExecutorRouter {
21 20
     }
22 21
 
23 22
     @Override
24
-    public ReturnT<String> routeRun(TriggerParam triggerParam, ArrayList<String> addressList, XxlJobLog jobLog) {
23
+    public ReturnT<String> routeRun(TriggerParam triggerParam, ArrayList<String> addressList) {
25 24
         // address
26 25
         String address = route(triggerParam.getJobId(), addressList);
27
-        jobLog.setExecutorAddress(address);
28 26
 
29 27
         // run executor
30 28
         ReturnT<String> runResult = runExecutor(triggerParam, address);
29
+        runResult.setContent(address);
31 30
         return runResult;
32 31
     }
33 32
 

+ 2 - 3
xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteRound.java Целия файл

@@ -1,6 +1,5 @@
1 1
 package com.xxl.job.admin.core.route.strategy;
2 2
 
3
-import com.xxl.job.admin.core.model.XxlJobLog;
4 3
 import com.xxl.job.admin.core.route.ExecutorRouter;
5 4
 import com.xxl.job.core.biz.model.ReturnT;
6 5
 import com.xxl.job.core.biz.model.TriggerParam;
@@ -36,14 +35,14 @@ public class ExecutorRouteRound extends ExecutorRouter {
36 35
 
37 36
 
38 37
     @Override
39
-    public ReturnT<String> routeRun(TriggerParam triggerParam, ArrayList<String> addressList, XxlJobLog jobLog) {
38
+    public ReturnT<String> routeRun(TriggerParam triggerParam, ArrayList<String> addressList) {
40 39
 
41 40
         // address
42 41
         String address = route(triggerParam.getJobId(), addressList);
43
-        jobLog.setExecutorAddress(address);
44 42
 
45 43
         // run executor
46 44
         ReturnT<String> runResult = runExecutor(triggerParam, address);
45
+        runResult.setContent(address);
47 46
         return runResult;
48 47
     }
49 48
 }

+ 3 - 2
xxl-job-admin/src/main/java/com/xxl/job/admin/core/trigger/XxlJobTrigger.java Целия файл

@@ -86,17 +86,18 @@ public class XxlJobTrigger {
86 86
             triggerParam.setLogDateTim(jobLog.getTriggerTime().getTime());
87 87
 
88 88
             // 4.2、trigger-run (route run / trigger remote executor)
89
-            triggerResult = executorRouteStrategyEnum.getRouter().routeRun(triggerParam, addressList, jobLog);
89
+            triggerResult = executorRouteStrategyEnum.getRouter().routeRun(triggerParam, addressList);
90 90
             triggerMsgSb.append("<br><br><span style=\"color:#00c0ef;\" > >>>>>>>>>>>触发调度<<<<<<<<<<< </span><br>").append(triggerResult.getMsg());
91 91
 
92 92
             // 4.3、trigger (fail retry)
93 93
             if (triggerResult.getCode()!=ReturnT.SUCCESS_CODE && failStrategy == ExecutorFailStrategyEnum.FAIL_RETRY) {
94
-                triggerResult = executorRouteStrategyEnum.getRouter().routeRun(triggerParam, addressList, jobLog);
94
+                triggerResult = executorRouteStrategyEnum.getRouter().routeRun(triggerParam, addressList);
95 95
                 triggerMsgSb.append("<br><br><span style=\"color:#F39C12;\" > >>>>>>>>>>>失败重试<<<<<<<<<<< </span><br>").append(triggerResult.getMsg());
96 96
             }
97 97
         }
98 98
 
99 99
         // 5、save trigger-info
100
+        jobLog.setExecutorAddress(triggerResult.getContent());
100 101
         jobLog.setTriggerCode(triggerResult.getCode());
101 102
         jobLog.setTriggerMsg(triggerMsgSb.toString());
102 103
         XxlJobDynamicScheduler.xxlJobLogDao.updateTriggerInfo(jobLog);

+ 1 - 1
xxl-job-admin/src/main/webapp/static/js/joblog.index.1.js Целия файл

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