Quellcode durchsuchen

任务触发逻辑代码重构

xuxueli vor 6 Jahren
Ursprung
Commit
a75d82f983

+ 3 - 4
xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/ExecutorRouter.java Datei anzeigen

@@ -14,12 +14,11 @@ public abstract class ExecutorRouter {
14 14
     protected static Logger logger = LoggerFactory.getLogger(ExecutorRouter.class);
15 15
 
16 16
     /**
17
-     * route run executor
17
+     * route address
18 18
      *
19
-     * @param triggerParam
20 19
      * @param addressList
21
-     * @return  ReturnT.content: final address
20
+     * @return  ReturnT.content=address
22 21
      */
23
-    public abstract ReturnT<String> routeRun(TriggerParam triggerParam, ArrayList<String> addressList);
22
+    public abstract ReturnT<String> route(TriggerParam triggerParam, ArrayList<String> addressList);
24 23
 
25 24
 }

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

@@ -15,13 +15,8 @@ import java.util.ArrayList;
15 15
  */
16 16
 public class ExecutorRouteBusyover extends ExecutorRouter {
17 17
 
18
-    public String route(int jobId, ArrayList<String> addressList) {
19
-        return addressList.get(0);
20
-    }
21
-
22 18
     @Override
23
-    public ReturnT<String> routeRun(TriggerParam triggerParam, ArrayList<String> addressList) {
24
-
19
+    public ReturnT<String> route(TriggerParam triggerParam, ArrayList<String> addressList) {
25 20
         StringBuffer idleBeatResultSB = new StringBuffer();
26 21
         for (String address : addressList) {
27 22
             // beat
@@ -41,17 +36,13 @@ public class ExecutorRouteBusyover extends ExecutorRouter {
41 36
 
42 37
             // beat success
43 38
             if (idleBeatResult.getCode() == ReturnT.SUCCESS_CODE) {
44
-
45
-                ReturnT<String> runResult = XxlJobTrigger.runExecutor(triggerParam, address);
46
-                idleBeatResultSB.append("<br><br>").append(runResult.getMsg());
47
-
48
-                // result
49
-                runResult.setMsg(idleBeatResultSB.toString());
50
-                runResult.setContent(address);
51
-                return runResult;
39
+                idleBeatResult.setMsg(idleBeatResultSB.toString());
40
+                idleBeatResult.setContent(address);
41
+                return idleBeatResult;
52 42
             }
53 43
         }
54 44
 
55 45
         return new ReturnT<String>(ReturnT.FAIL_CODE, idleBeatResultSB.toString());
56 46
     }
47
+
57 48
 }

+ 5 - 9
xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteConsistentHash.java Datei anzeigen

@@ -57,7 +57,7 @@ public class ExecutorRouteConsistentHash extends ExecutorRouter {
57 57
         return truncateHashCode;
58 58
     }
59 59
 
60
-    public String route(int jobId, ArrayList<String> addressList) {
60
+    public String hashJob(int jobId, ArrayList<String> addressList) {
61 61
 
62 62
         // ------A1------A2-------A3------
63 63
         // -----------J1------------------
@@ -78,13 +78,9 @@ public class ExecutorRouteConsistentHash extends ExecutorRouter {
78 78
     }
79 79
 
80 80
     @Override
81
-    public ReturnT<String> routeRun(TriggerParam triggerParam, ArrayList<String> addressList) {
82
-        // address
83
-        String address = route(triggerParam.getJobId(), addressList);
84
-
85
-        // run executor
86
-        ReturnT<String> runResult = XxlJobTrigger.runExecutor(triggerParam, address);
87
-        runResult.setContent(address);
88
-        return runResult;
81
+    public ReturnT<String> route(TriggerParam triggerParam, ArrayList<String> addressList) {
82
+        String address = hashJob(triggerParam.getJobId(), addressList);
83
+        return new ReturnT<String>(address);
89 84
     }
85
+
90 86
 }

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

@@ -15,12 +15,8 @@ import java.util.ArrayList;
15 15
  */
16 16
 public class ExecutorRouteFailover extends ExecutorRouter {
17 17
 
18
-    public String route(int jobId, ArrayList<String> addressList) {
19
-        return addressList.get(0);
20
-    }
21
-
22 18
     @Override
23
-    public ReturnT<String> routeRun(TriggerParam triggerParam, ArrayList<String> addressList) {
19
+    public ReturnT<String> route(TriggerParam triggerParam, ArrayList<String> addressList) {
24 20
 
25 21
         StringBuffer beatResultSB = new StringBuffer();
26 22
         for (String address : addressList) {
@@ -42,13 +38,9 @@ public class ExecutorRouteFailover extends ExecutorRouter {
42 38
             // beat success
43 39
             if (beatResult.getCode() == ReturnT.SUCCESS_CODE) {
44 40
 
45
-                ReturnT<String> runResult = XxlJobTrigger.runExecutor(triggerParam, address);
46
-                beatResultSB.append("<br><br>").append(runResult.getMsg());
47
-
48
-                // result
49
-                runResult.setMsg(beatResultSB.toString());
50
-                runResult.setContent(address);
51
-                return runResult;
41
+                beatResult.setMsg(beatResultSB.toString());
42
+                beatResult.setContent(address);
43
+                return beatResult;
52 44
             }
53 45
         }
54 46
         return new ReturnT<String>(ReturnT.FAIL_CODE, beatResultSB.toString());

+ 3 - 13
xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteFirst.java Datei anzeigen

@@ -12,19 +12,9 @@ import java.util.ArrayList;
12 12
  */
13 13
 public class ExecutorRouteFirst extends ExecutorRouter {
14 14
 
15
-    public String route(int jobId, ArrayList<String> addressList) {
16
-        return addressList.get(0);
17
-    }
18
-
19 15
     @Override
20
-    public ReturnT<String> routeRun(TriggerParam triggerParam, ArrayList<String> addressList) {
21
-
22
-        // address
23
-        String address = route(triggerParam.getJobId(), addressList);
24
-
25
-        // run executor
26
-        ReturnT<String> runResult = XxlJobTrigger.runExecutor(triggerParam, address);
27
-        runResult.setContent(address);
28
-        return runResult;
16
+    public ReturnT<String> route(TriggerParam triggerParam, ArrayList<String> addressList){
17
+        return new ReturnT<String>(addressList.get(0));
29 18
     }
19
+
30 20
 }

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

@@ -57,15 +57,9 @@ public class ExecutorRouteLFU extends ExecutorRouter {
57 57
     }
58 58
 
59 59
     @Override
60
-    public ReturnT<String> routeRun(TriggerParam triggerParam, ArrayList<String> addressList) {
61
-
62
-        // address
60
+    public ReturnT<String> route(TriggerParam triggerParam, ArrayList<String> addressList) {
63 61
         String address = route(triggerParam.getJobId(), addressList);
64
-
65
-        // run executor
66
-        ReturnT<String> runResult = XxlJobTrigger.runExecutor(triggerParam, address);
67
-        runResult.setContent(address);
68
-        return runResult;
62
+        return new ReturnT<String>(address);
69 63
     }
70 64
 
71 65
 }

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

@@ -54,17 +54,10 @@ public class ExecutorRouteLRU extends ExecutorRouter {
54 54
         return eldestValue;
55 55
     }
56 56
 
57
-
58 57
     @Override
59
-    public ReturnT<String> routeRun(TriggerParam triggerParam, ArrayList<String> addressList) {
60
-
61
-        // address
58
+    public ReturnT<String> route(TriggerParam triggerParam, ArrayList<String> addressList) {
62 59
         String address = route(triggerParam.getJobId(), addressList);
63
-
64
-        // run executor
65
-        ReturnT<String> runResult = XxlJobTrigger.runExecutor(triggerParam, address);
66
-        runResult.setContent(address);
67
-        return runResult;
60
+        return new ReturnT<String>(address);
68 61
     }
69 62
 
70 63
 }

+ 3 - 12
xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteLast.java Datei anzeigen

@@ -12,18 +12,9 @@ import java.util.ArrayList;
12 12
  */
13 13
 public class ExecutorRouteLast extends ExecutorRouter {
14 14
 
15
-    public String route(int jobId, ArrayList<String> addressList) {
16
-        return addressList.get(addressList.size()-1);
17
-    }
18
-
19 15
     @Override
20
-    public ReturnT<String> routeRun(TriggerParam triggerParam, ArrayList<String> addressList) {
21
-        // address
22
-        String address = route(triggerParam.getJobId(), addressList);
23
-
24
-        // run executor
25
-        ReturnT<String> runResult = XxlJobTrigger.runExecutor(triggerParam, address);
26
-        runResult.setContent(address);
27
-        return runResult;
16
+    public ReturnT<String> route(TriggerParam triggerParam, ArrayList<String> addressList) {
17
+        return new ReturnT<String>(addressList.get(addressList.size()-1));
28 18
     }
19
+
29 20
 }

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

@@ -15,20 +15,10 @@ public class ExecutorRouteRandom extends ExecutorRouter {
15 15
 
16 16
     private static Random localRandom = new Random();
17 17
 
18
-    public String route(int jobId, ArrayList<String> addressList) {
19
-        // Collections.shuffle(addressList);
20
-        return addressList.get(localRandom.nextInt(addressList.size()));
21
-    }
22
-
23 18
     @Override
24
-    public ReturnT<String> routeRun(TriggerParam triggerParam, ArrayList<String> addressList) {
25
-        // address
26
-        String address = route(triggerParam.getJobId(), addressList);
27
-
28
-        // run executor
29
-        ReturnT<String> runResult = XxlJobTrigger.runExecutor(triggerParam, address);
30
-        runResult.setContent(address);
31
-        return runResult;
19
+    public ReturnT<String> route(TriggerParam triggerParam, ArrayList<String> addressList) {
20
+        String address = addressList.get(localRandom.nextInt(addressList.size()));
21
+        return new ReturnT<String>(address);
32 22
     }
33 23
 
34 24
 }

+ 4 - 14
xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteRound.java Datei anzeigen

@@ -30,20 +30,10 @@ public class ExecutorRouteRound extends ExecutorRouter {
30 30
         return count;
31 31
     }
32 32
 
33
-    public String route(int jobId, ArrayList<String> addressList) {
34
-        return addressList.get(count(jobId)%addressList.size());
35
-    }
36
-
37
-
38 33
     @Override
39
-    public ReturnT<String> routeRun(TriggerParam triggerParam, ArrayList<String> addressList) {
40
-
41
-        // address
42
-        String address = route(triggerParam.getJobId(), addressList);
43
-
44
-        // run executor
45
-        ReturnT<String> runResult = XxlJobTrigger.runExecutor(triggerParam, address);
46
-        runResult.setContent(address);
47
-        return runResult;
34
+    public ReturnT<String> route(TriggerParam triggerParam, ArrayList<String> addressList) {
35
+        String address = addressList.get(count(triggerParam.getJobId())%addressList.size());
36
+        return new ReturnT<String>(address);
48 37
     }
38
+
49 39
 }

+ 10 - 4
xxl-job-admin/src/main/java/com/xxl/job/admin/core/trigger/XxlJobTrigger.java Datei anzeigen

@@ -145,6 +145,7 @@ public class XxlJobTrigger {
145 145
             triggerMsgSb.append("<br>").append(I18nUtil.getString("jobinfo_field_executorFailRetryCount")).append(":").append(finalFailRetryCount);
146 146
 
147 147
             // 3.0、trigger-valid
148
+            String address = null;
148 149
             if (CollectionUtils.isEmpty(addressList)) {
149 150
                 triggerResult.setCode(ReturnT.FAIL_CODE);
150 151
                 triggerMsgSb.append("<br>----------------------<br>").append(I18nUtil.getString("jobconf_trigger_address_empty"));
@@ -165,14 +166,19 @@ public class XxlJobTrigger {
165 166
                 triggerParam.setBroadcastTotal(1);
166 167
 
167 168
                 // 3.2、trigger-run (route run / trigger remote executor)
168
-                triggerResult = executorRouteStrategyEnum.getRouter().routeRun(triggerParam, addressList);
169
-                triggerMsgSb.append("<br><br><span style=\"color:#00c0ef;\" > >>>>>>>>>>>"+ I18nUtil.getString("jobconf_trigger_run") +"<<<<<<<<<<< </span><br>").append(triggerResult.getMsg());
170
-
169
+                //triggerResult = executorRouteStrategyEnum.getRouter().routeRun(triggerParam, addressList);
170
+                ReturnT<String> routeAddressResult = executorRouteStrategyEnum.getRouter().route(triggerParam, addressList);
171
+                if (routeAddressResult.getCode() == ReturnT.SUCCESS_CODE) {
172
+                    address = routeAddressResult.getContent();
173
+                    triggerResult = runExecutor(triggerParam, address);
174
+                }
175
+                triggerMsgSb.append("<br><br><span style=\"color:#00c0ef;\" > >>>>>>>>>>>"+ I18nUtil.getString("jobconf_trigger_run") +"<<<<<<<<<<< </span><br>")
176
+                        .append(routeAddressResult.getMsg()!=null?routeAddressResult.getMsg()+"<br><br>":"").append(triggerResult.getMsg()!=null?triggerResult.getMsg():"");
171 177
 
172 178
             }
173 179
 
174 180
             // 4、save trigger-info
175
-            jobLog.setExecutorAddress(triggerResult.getContent());
181
+            jobLog.setExecutorAddress(address);
176 182
             jobLog.setTriggerCode(triggerResult.getCode());
177 183
             jobLog.setTriggerMsg(triggerMsgSb.toString());
178 184
             XxlJobDynamicScheduler.xxlJobLogDao.updateTriggerInfo(jobLog);