瀏覽代碼

心跳注册和结果回调,重试逻辑优化

xuxueli 8 年之前
父節點
當前提交
8e07d501e2

+ 15 - 9
xxl-job-core/src/main/java/com/xxl/job/core/thread/ExecutorRegistryThread.java 查看文件

@@ -49,25 +49,31 @@ public class ExecutorRegistryThread extends Thread {
49 49
             @Override
50 50
             public void run() {
51 51
                 while (!toStop) {
52
+
52 53
                     try {
53 54
                         RegistryParam registryParam = new RegistryParam(RegistryConfig.RegistType.EXECUTOR.name(), appName, executorAddress);
54
-                        ReturnT<String> registryResult = null;
55 55
 
56 56
                         for (String addressUrl: XxlJobExecutor.adminAddresses.split(",")) {
57 57
                             String apiUrl = addressUrl.concat("/api");
58 58
 
59
-                            AdminBiz adminBiz = (AdminBiz) new NetComClientProxy(AdminBiz.class, apiUrl).getObject();
60
-                            registryResult = adminBiz.registry(registryParam);
61
-                            if (registryResult!=null && ReturnT.SUCCESS_CODE == registryResult.getCode()) {
62
-                                registryResult = ReturnT.SUCCESS;
63
-                                break;
59
+                            try {
60
+                                AdminBiz adminBiz = (AdminBiz) new NetComClientProxy(AdminBiz.class, apiUrl).getObject();
61
+                                ReturnT<String> registryResult = adminBiz.registry(registryParam);
62
+                                if (registryResult!=null && ReturnT.SUCCESS_CODE == registryResult.getCode()) {
63
+                                    registryResult = ReturnT.SUCCESS;
64
+                                    logger.info(">>>>>>>>>>> xxl-job registry success, registryParam:{}, registryResult:{}", new Object[]{registryParam, registryResult});
65
+                                    break;
66
+                                } else {
67
+                                    logger.info(">>>>>>>>>>> xxl-job registry fail, registryParam:{}, registryResult:{}", new Object[]{registryParam, registryResult});
68
+                                }
69
+                            } catch (Exception e) {
70
+                                logger.info(">>>>>>>>>>> xxl-job registry error, registryParam:{}", registryParam, e);
64 71
                             }
72
+
65 73
                         }
66 74
 
67
-                        logger.info(">>>>>>>>>>> xxl-job Executor registry {}, RegistryParam:{}, registryResult:{}",
68
-                                new Object[]{(registryResult.getCode()==ReturnT.SUCCESS_CODE?"success":"fail"), registryParam.toString(), registryResult.toString()});
69 75
                     } catch (Exception e) {
70
-                        logger.error(">>>>>>>>>>> xxl-job ExecutorRegistryThread Exception:", e);
76
+                        logger.error(e.getMessage(), e);
71 77
                     }
72 78
 
73 79
                     try {

+ 18 - 18
xxl-job-core/src/main/java/com/xxl/job/core/thread/TriggerCallbackThread.java 查看文件

@@ -37,40 +37,40 @@ public class TriggerCallbackThread {
37 37
                         HandleCallbackParam callback = getInstance().callBackQueue.take();
38 38
                         if (callback != null) {
39 39
 
40
-                            // valid
41
-                            if (XxlJobExecutor.adminAddresses==null || XxlJobExecutor.adminAddresses.trim().length()==0) {
42
-                                logger.warn(">>>>>>>>>>>> xxl-job callback fail, adminAddresses is null.");
43
-                                continue;
44
-                            }
45
-
46 40
                             // callback list param
47 41
                             List<HandleCallbackParam> callbackParamList = new ArrayList<HandleCallbackParam>();
48 42
                             int drainToNum = getInstance().callBackQueue.drainTo(callbackParamList);
49 43
                             callbackParamList.add(callback);
50 44
 
51
-                            // callback, will retry if error
52
-                            try {
45
+                            // valid
46
+                            if (XxlJobExecutor.adminAddresses==null || XxlJobExecutor.adminAddresses.trim().length()==0) {
47
+                                logger.warn(">>>>>>>>>>>> xxl-job callback fail, adminAddresses is null, callbackParamList:{}", callbackParamList);
48
+                                continue;
49
+                            }
53 50
 
54
-                                ReturnT<String> callbackResult = null;
55
-                                for (String addressUrl: XxlJobExecutor.adminAddresses.split(",")) {
56
-                                    String apiUrl = addressUrl.concat("/api");
51
+                            // callback, will retry if error
52
+                            for (String addressUrl: XxlJobExecutor.adminAddresses.split(",")) {
53
+                                String apiUrl = addressUrl.concat("/api");
57 54
 
55
+                                try {
58 56
                                     AdminBiz adminBiz = (AdminBiz) new NetComClientProxy(AdminBiz.class, apiUrl).getObject();
59
-                                    callbackResult = adminBiz.callback(callbackParamList);
57
+                                    ReturnT<String> callbackResult = adminBiz.callback(callbackParamList);
60 58
                                     if (callbackResult!=null && ReturnT.SUCCESS_CODE == callbackResult.getCode()) {
61 59
                                         callbackResult = ReturnT.SUCCESS;
60
+                                        logger.info(">>>>>>>>>>> xxl-job callback success, callbackParamList:{}, callbackResult:{}", new Object[]{callbackParamList, callbackResult});
62 61
                                         break;
62
+                                    } else {
63
+                                        logger.info(">>>>>>>>>>> xxl-job callback fail, callbackParamList:{}, callbackResult:{}", new Object[]{callbackParamList, callbackResult});
63 64
                                     }
65
+                                } catch (Exception e) {
66
+                                    logger.error(">>>>>>>>>>> xxl-job callback error, callbackParamList:{}", callbackParamList, e);
67
+                                    //getInstance().callBackQueue.addAll(callbackParamList);
64 68
                                 }
65
-
66
-                                logger.info(">>>>>>>>>>> xxl-job callback, callbackParamList:{}, callbackResult:{}", new Object[]{callbackParamList, callbackResult});
67
-                            } catch (Exception e) {
68
-                                logger.error(">>>>>>>>>>> xxl-job TriggerCallbackThread Exception:", e);
69
-                                //getInstance().callBackQueue.addAll(callbackParamList);
70 69
                             }
70
+
71 71
                         }
72 72
                     } catch (Exception e) {
73
-                        logger.error("", e);
73
+                        logger.error(e.getMessage(), e);
74 74
                     }
75 75
                 }
76 76
             }