Просмотр исходного кода

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

xuxueli 8 лет назад
Родитель
Сommit
8e07d501e2

+ 15 - 9
xxl-job-core/src/main/java/com/xxl/job/core/thread/ExecutorRegistryThread.java Просмотреть файл

49
             @Override
49
             @Override
50
             public void run() {
50
             public void run() {
51
                 while (!toStop) {
51
                 while (!toStop) {
52
+
52
                     try {
53
                     try {
53
                         RegistryParam registryParam = new RegistryParam(RegistryConfig.RegistType.EXECUTOR.name(), appName, executorAddress);
54
                         RegistryParam registryParam = new RegistryParam(RegistryConfig.RegistType.EXECUTOR.name(), appName, executorAddress);
54
-                        ReturnT<String> registryResult = null;
55
 
55
 
56
                         for (String addressUrl: XxlJobExecutor.adminAddresses.split(",")) {
56
                         for (String addressUrl: XxlJobExecutor.adminAddresses.split(",")) {
57
                             String apiUrl = addressUrl.concat("/api");
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
                     } catch (Exception e) {
75
                     } catch (Exception e) {
70
-                        logger.error(">>>>>>>>>>> xxl-job ExecutorRegistryThread Exception:", e);
76
+                        logger.error(e.getMessage(), e);
71
                     }
77
                     }
72
 
78
 
73
                     try {
79
                     try {

+ 18 - 18
xxl-job-core/src/main/java/com/xxl/job/core/thread/TriggerCallbackThread.java Просмотреть файл

37
                         HandleCallbackParam callback = getInstance().callBackQueue.take();
37
                         HandleCallbackParam callback = getInstance().callBackQueue.take();
38
                         if (callback != null) {
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
                             // callback list param
40
                             // callback list param
47
                             List<HandleCallbackParam> callbackParamList = new ArrayList<HandleCallbackParam>();
41
                             List<HandleCallbackParam> callbackParamList = new ArrayList<HandleCallbackParam>();
48
                             int drainToNum = getInstance().callBackQueue.drainTo(callbackParamList);
42
                             int drainToNum = getInstance().callBackQueue.drainTo(callbackParamList);
49
                             callbackParamList.add(callback);
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
                                     AdminBiz adminBiz = (AdminBiz) new NetComClientProxy(AdminBiz.class, apiUrl).getObject();
56
                                     AdminBiz adminBiz = (AdminBiz) new NetComClientProxy(AdminBiz.class, apiUrl).getObject();
59
-                                    callbackResult = adminBiz.callback(callbackParamList);
57
+                                    ReturnT<String> callbackResult = adminBiz.callback(callbackParamList);
60
                                     if (callbackResult!=null && ReturnT.SUCCESS_CODE == callbackResult.getCode()) {
58
                                     if (callbackResult!=null && ReturnT.SUCCESS_CODE == callbackResult.getCode()) {
61
                                         callbackResult = ReturnT.SUCCESS;
59
                                         callbackResult = ReturnT.SUCCESS;
60
+                                        logger.info(">>>>>>>>>>> xxl-job callback success, callbackParamList:{}, callbackResult:{}", new Object[]{callbackParamList, callbackResult});
62
                                         break;
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
                     } catch (Exception e) {
72
                     } catch (Exception e) {
73
-                        logger.error("", e);
73
+                        logger.error(e.getMessage(), e);
74
                     }
74
                     }
75
                 }
75
                 }
76
             }
76
             }