Bladeren bron

调度中心注册:

xueli.xue 9 jaren geleden
bovenliggende
commit
caf817124e

+ 11 - 3
xxl-job-admin/src/main/java/com/xxl/job/admin/core/jobbean/RemoteHttpJobBean.java Bestand weergeven

@@ -30,7 +30,7 @@ import java.util.*;
30 30
 //@DisallowConcurrentExecution
31 31
 public class RemoteHttpJobBean extends QuartzJobBean {
32 32
 	private static Logger logger = LoggerFactory.getLogger(RemoteHttpJobBean.class);
33
-	
33
+
34 34
 	@Override
35 35
 	protected void executeInternal(JobExecutionContext context)
36 36
 			throws JobExecutionException {
@@ -43,7 +43,15 @@ public class RemoteHttpJobBean extends QuartzJobBean {
43 43
 		jobLog.setJobName(jobInfo.getJobName());
44 44
 		DynamicSchedulerUtil.xxlJobLogDao.save(jobLog);
45 45
 		logger.info(">>>>>>>>>>> xxl-job trigger start, jobId:{}", jobLog.getId());
46
-		
46
+
47
+        // admin address
48
+        List<String> adminAddressList = JobRegistryHelper.discover(RegistHelper.RegistType.ADMIN.name(), RegistHelper.RegistType.ADMIN.name());
49
+		Set<String> adminAddressSet = new HashSet<String>();
50
+        if (adminAddressList!=null) {
51
+            adminAddressSet.addAll(adminAddressList);
52
+        }
53
+        adminAddressSet.add(XxlJobLogCallbackServer.getTrigger_log_address());
54
+
47 55
 		// trigger request
48 56
 		RequestModel requestModel = new RequestModel();
49 57
 		requestModel.setTimestamp(System.currentTimeMillis());
@@ -53,7 +61,7 @@ public class RemoteHttpJobBean extends QuartzJobBean {
53 61
 		requestModel.setExecutorHandler(jobInfo.getExecutorHandler());
54 62
 		requestModel.setExecutorParams(jobInfo.getExecutorParam());
55 63
 		requestModel.setGlueSwitch((jobInfo.getGlueSwitch()==0)?false:true);
56
-		requestModel.setLogAddress(XxlJobLogCallbackServer.getTrigger_log_address());
64
+		requestModel.setLogAddress(adminAddressSet);
57 65
 		requestModel.setLogId(jobLog.getId());
58 66
 
59 67
 		// parse address

+ 7 - 5
xxl-job-core/src/main/java/com/xxl/job/core/router/model/RequestModel.java Bestand weergeven

@@ -1,5 +1,7 @@
1 1
 package com.xxl.job.core.router.model;
2 2
 
3
+import java.util.Set;
4
+
3 5
 /**
4 6
  * Created by xuxueli on 16/7/22.
5 7
  */
@@ -16,13 +18,14 @@ public class RequestModel {
16 18
 
17 19
     private boolean glueSwitch;
18 20
 
19
-    private String logAddress;
21
+    private Set<String> logAddress;
20 22
     private int logId;
21 23
     private long logDateTim;
22 24
 
23 25
     private String status;
24 26
     private String msg;
25 27
 
28
+
26 29
     public long getTimestamp() {
27 30
         return timestamp;
28 31
     }
@@ -79,11 +82,11 @@ public class RequestModel {
79 82
         this.glueSwitch = glueSwitch;
80 83
     }
81 84
 
82
-    public String getLogAddress() {
85
+    public Set<String> getLogAddress() {
83 86
         return logAddress;
84 87
     }
85 88
 
86
-    public void setLogAddress(String logAddress) {
89
+    public void setLogAddress(Set<String> logAddress) {
87 90
         this.logAddress = logAddress;
88 91
     }
89 92
 
@@ -129,12 +132,11 @@ public class RequestModel {
129 132
                 ", executorHandler='" + executorHandler + '\'' +
130 133
                 ", executorParams='" + executorParams + '\'' +
131 134
                 ", glueSwitch=" + glueSwitch +
132
-                ", logAddress='" + logAddress + '\'' +
135
+                ", logAddress=" + logAddress +
133 136
                 ", logId=" + logId +
134 137
                 ", logDateTim=" + logDateTim +
135 138
                 ", status='" + status + '\'' +
136 139
                 ", msg='" + msg + '\'' +
137 140
                 '}';
138 141
     }
139
-
140 142
 }

+ 10 - 5
xxl-job-core/src/main/java/com/xxl/job/core/router/thread/TriggerCallbackThread.java Bestand weergeven

@@ -23,11 +23,16 @@ public class TriggerCallbackThread {
23 23
                     try {
24 24
                         RequestModel callback = callBackQueue.take();
25 25
                         if (callback != null) {
26
-                            try {
27
-                                ResponseModel responseModel = XxlJobNetCommUtil.postHex(XxlJobNetCommUtil.addressToUrl(callback.getLogAddress()), callback);
28
-                                logger.info(">>>>>>>>>>> xxl-job callback , RequestModel:{}, ResponseModel:{}", new Object[]{callback.toString(), responseModel.toString()});
29
-                            } catch (Exception e) {
30
-                                logger.info("JobThread Exception:", e);
26
+                            for (String address : callback.getLogAddress()) {
27
+                                try {
28
+                                    ResponseModel responseModel = XxlJobNetCommUtil.postHex(XxlJobNetCommUtil.addressToUrl(address), callback);
29
+                                    logger.info(">>>>>>>>>>> xxl-job callback , RequestModel:{}, ResponseModel:{}", new Object[]{callback.toString(), responseModel.toString()});
30
+                                    if (ResponseModel.SUCCESS.equals(responseModel.getStatus())) {
31
+                                        break;
32
+                                    }
33
+                                } catch (Exception e) {
34
+                                    logger.info("JobThread Exception:", e);
35
+                                }
31 36
                             }
32 37
                         }
33 38
                     } catch (Exception e) {