Browse Source

调度中心注册:

xueli.xue 9 years ago
parent
commit
caf817124e

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

30
 //@DisallowConcurrentExecution
30
 //@DisallowConcurrentExecution
31
 public class RemoteHttpJobBean extends QuartzJobBean {
31
 public class RemoteHttpJobBean extends QuartzJobBean {
32
 	private static Logger logger = LoggerFactory.getLogger(RemoteHttpJobBean.class);
32
 	private static Logger logger = LoggerFactory.getLogger(RemoteHttpJobBean.class);
33
-	
33
+
34
 	@Override
34
 	@Override
35
 	protected void executeInternal(JobExecutionContext context)
35
 	protected void executeInternal(JobExecutionContext context)
36
 			throws JobExecutionException {
36
 			throws JobExecutionException {
43
 		jobLog.setJobName(jobInfo.getJobName());
43
 		jobLog.setJobName(jobInfo.getJobName());
44
 		DynamicSchedulerUtil.xxlJobLogDao.save(jobLog);
44
 		DynamicSchedulerUtil.xxlJobLogDao.save(jobLog);
45
 		logger.info(">>>>>>>>>>> xxl-job trigger start, jobId:{}", jobLog.getId());
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
 		// trigger request
55
 		// trigger request
48
 		RequestModel requestModel = new RequestModel();
56
 		RequestModel requestModel = new RequestModel();
49
 		requestModel.setTimestamp(System.currentTimeMillis());
57
 		requestModel.setTimestamp(System.currentTimeMillis());
53
 		requestModel.setExecutorHandler(jobInfo.getExecutorHandler());
61
 		requestModel.setExecutorHandler(jobInfo.getExecutorHandler());
54
 		requestModel.setExecutorParams(jobInfo.getExecutorParam());
62
 		requestModel.setExecutorParams(jobInfo.getExecutorParam());
55
 		requestModel.setGlueSwitch((jobInfo.getGlueSwitch()==0)?false:true);
63
 		requestModel.setGlueSwitch((jobInfo.getGlueSwitch()==0)?false:true);
56
-		requestModel.setLogAddress(XxlJobLogCallbackServer.getTrigger_log_address());
64
+		requestModel.setLogAddress(adminAddressSet);
57
 		requestModel.setLogId(jobLog.getId());
65
 		requestModel.setLogId(jobLog.getId());
58
 
66
 
59
 		// parse address
67
 		// parse address

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

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

23
                     try {
23
                     try {
24
                         RequestModel callback = callBackQueue.take();
24
                         RequestModel callback = callBackQueue.take();
25
                         if (callback != null) {
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
                     } catch (Exception e) {
38
                     } catch (Exception e) {