Pārlūkot izejas kodu

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

xuxueli 8 gadus atpakaļ
vecāks
revīzija
02818b4d6b

+ 1 - 0
doc/XXL-JOB官方文档.md Parādīt failu

903
 - 4、执行器集群地址列表进行自然排序;
903
 - 4、执行器集群地址列表进行自然排序;
904
 - 5、调度中心,DAO层代码精简优化并且新增测试用例覆盖;
904
 - 5、调度中心,DAO层代码精简优化并且新增测试用例覆盖;
905
 - 6、调度中心API服务改为自研RPC形式,统一底层通讯模型;
905
 - 6、调度中心API服务改为自研RPC形式,统一底层通讯模型;
906
+- 7、新增调度中心API服务测试Demo,方便在调度中心API扩展和测试;
906
 
907
 
907
 #### TODO LIST
908
 #### TODO LIST
908
 - 1、任务权限管理:执行器为粒度分配权限,核心操作校验权限;
909
 - 1、任务权限管理:执行器为粒度分配权限,核心操作校验权限;

+ 2 - 1
xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobApiController.java Parādīt failu

1
 package com.xxl.job.admin.controller;
1
 package com.xxl.job.admin.controller;
2
 
2
 
3
 import com.xxl.job.admin.controller.annotation.PermessionLimit;
3
 import com.xxl.job.admin.controller.annotation.PermessionLimit;
4
+import com.xxl.job.core.biz.AdminBiz;
4
 import com.xxl.job.core.rpc.codec.RpcRequest;
5
 import com.xxl.job.core.rpc.codec.RpcRequest;
5
 import com.xxl.job.core.rpc.codec.RpcResponse;
6
 import com.xxl.job.core.rpc.codec.RpcResponse;
6
 import com.xxl.job.core.rpc.netcom.NetComServerFactory;
7
 import com.xxl.job.core.rpc.netcom.NetComServerFactory;
46
         }
47
         }
47
     }
48
     }
48
 
49
 
49
-    @RequestMapping("/api")
50
+    @RequestMapping(AdminBiz.MAPPING)
50
     @PermessionLimit(limit=false)
51
     @PermessionLimit(limit=false)
51
     public void api(HttpServletRequest request, HttpServletResponse response) throws IOException {
52
     public void api(HttpServletRequest request, HttpServletResponse response) throws IOException {
52
 
53
 

+ 9 - 6
xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobLogController.java Parādīt failu

12
 import com.xxl.job.core.rpc.netcom.NetComClientProxy;
12
 import com.xxl.job.core.rpc.netcom.NetComClientProxy;
13
 import org.apache.commons.lang.StringUtils;
13
 import org.apache.commons.lang.StringUtils;
14
 import org.apache.commons.lang.time.DateUtils;
14
 import org.apache.commons.lang.time.DateUtils;
15
+import org.slf4j.Logger;
16
+import org.slf4j.LoggerFactory;
15
 import org.springframework.stereotype.Controller;
17
 import org.springframework.stereotype.Controller;
16
 import org.springframework.ui.Model;
18
 import org.springframework.ui.Model;
17
 import org.springframework.web.bind.annotation.RequestMapping;
19
 import org.springframework.web.bind.annotation.RequestMapping;
32
 @Controller
34
 @Controller
33
 @RequestMapping("/joblog")
35
 @RequestMapping("/joblog")
34
 public class JobLogController {
36
 public class JobLogController {
37
+	private static Logger logger = LoggerFactory.getLogger(JobLogController.class);
35
 
38
 
36
 	@Resource
39
 	@Resource
37
 	private XxlJobGroupDao xxlJobGroupDao;
40
 	private XxlJobGroupDao xxlJobGroupDao;
129
 
132
 
130
 			return logResult;
133
 			return logResult;
131
 		} catch (Exception e) {
134
 		} catch (Exception e) {
132
-			e.printStackTrace();
135
+			logger.error(e.getMessage(), e);
133
 			return new ReturnT<LogResult>(ReturnT.FAIL_CODE, e.getMessage());
136
 			return new ReturnT<LogResult>(ReturnT.FAIL_CODE, e.getMessage());
134
 		}
137
 		}
135
 	}
138
 	}
148
 		}
151
 		}
149
 
152
 
150
 		// request of kill
153
 		// request of kill
151
-		ExecutorBiz executorBiz = null;
154
+		ReturnT<String> runResult = null;
152
 		try {
155
 		try {
153
-			executorBiz = (ExecutorBiz) new NetComClientProxy(ExecutorBiz.class, log.getExecutorAddress()).getObject();
156
+			ExecutorBiz executorBiz = (ExecutorBiz) new NetComClientProxy(ExecutorBiz.class, log.getExecutorAddress()).getObject();
157
+			runResult = executorBiz.kill(jobInfo.getId());
154
 		} catch (Exception e) {
158
 		} catch (Exception e) {
155
-			e.printStackTrace();
156
-			return new ReturnT<String>(500, e.getMessage());
159
+			logger.error(e.getMessage(), e);
160
+			runResult = new ReturnT<String>(500, e.getMessage());
157
 		}
161
 		}
158
-		ReturnT<String> runResult = executorBiz.kill(jobInfo.getId());
159
 
162
 
160
 		if (ReturnT.SUCCESS_CODE == runResult.getCode()) {
163
 		if (ReturnT.SUCCESS_CODE == runResult.getCode()) {
161
 			log.setHandleCode(ReturnT.FAIL_CODE);
164
 			log.setHandleCode(ReturnT.FAIL_CODE);

+ 1 - 1
xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/ExecutorRouter.java Parādīt failu

36
             ExecutorBiz executorBiz = (ExecutorBiz) new NetComClientProxy(ExecutorBiz.class, address).getObject();
36
             ExecutorBiz executorBiz = (ExecutorBiz) new NetComClientProxy(ExecutorBiz.class, address).getObject();
37
             runResult = executorBiz.run(triggerParam);
37
             runResult = executorBiz.run(triggerParam);
38
         } catch (Exception e) {
38
         } catch (Exception e) {
39
-            logger.error("", e);
39
+            logger.error(e.getMessage(), e);
40
             runResult = new ReturnT<String>(ReturnT.FAIL_CODE, ""+e );
40
             runResult = new ReturnT<String>(ReturnT.FAIL_CODE, ""+e );
41
         }
41
         }
42
 
42
 

+ 31 - 0
xxl-job-admin/src/test/java/com/xxl/job/dao/impl/AdminBizTest.java Parādīt failu

1
+package com.xxl.job.dao.impl;
2
+
3
+import com.xxl.job.core.biz.AdminBiz;
4
+import com.xxl.job.core.biz.model.RegistryParam;
5
+import com.xxl.job.core.biz.model.ReturnT;
6
+import com.xxl.job.core.enums.RegistryConfig;
7
+import com.xxl.job.core.rpc.netcom.NetComClientProxy;
8
+import org.junit.Assert;
9
+import org.junit.Test;
10
+
11
+/**
12
+ * admin-api client, test
13
+ * @author xuxueli 2017-07-28 22:14:52
14
+ */
15
+public class AdminBizTest {
16
+
17
+    @Test
18
+    public void registryTest() throws Exception {
19
+
20
+        // admin-client
21
+        String addressUrl = "http://127.0.0.1:8080/xxl-job-admin".concat(AdminBiz.MAPPING);
22
+        AdminBiz adminBiz = (AdminBiz) new NetComClientProxy(AdminBiz.class, addressUrl).getObject();
23
+
24
+        // test executor registry
25
+        RegistryParam registryParam = new RegistryParam(RegistryConfig.RegistType.EXECUTOR.name(), "xxl-job-executor-example", "127.0.0.1:9999");
26
+        ReturnT<String> returnT = adminBiz.registry(registryParam);
27
+        Assert.assertTrue(returnT.getCode() == ReturnT.SUCCESS_CODE);
28
+
29
+    }
30
+
31
+}

+ 2 - 0
xxl-job-core/src/main/java/com/xxl/job/core/biz/AdminBiz.java Parādīt failu

11
  */
11
  */
12
 public interface AdminBiz {
12
 public interface AdminBiz {
13
 
13
 
14
+    public static final String MAPPING = "/api";
15
+
14
     /**
16
     /**
15
      * callback
17
      * callback
16
      *
18
      *

+ 1 - 1
xxl-job-core/src/main/java/com/xxl/job/core/executor/XxlJobExecutor.java Parādīt failu

58
         if (adminAddresses!=null && adminAddresses.trim().length()>0) {
58
         if (adminAddresses!=null && adminAddresses.trim().length()>0) {
59
             for (String address: adminAddresses.trim().split(",")) {
59
             for (String address: adminAddresses.trim().split(",")) {
60
                 if (address!=null && address.trim().length()>0) {
60
                 if (address!=null && address.trim().length()>0) {
61
-                    String addressUrl = address.concat("/api");
61
+                    String addressUrl = address.concat(AdminBiz.MAPPING);
62
                     AdminBiz adminBiz = (AdminBiz) new NetComClientProxy(AdminBiz.class, addressUrl).getObject();
62
                     AdminBiz adminBiz = (AdminBiz) new NetComClientProxy(AdminBiz.class, addressUrl).getObject();
63
                     if (adminBizList == null) {
63
                     if (adminBizList == null) {
64
                         adminBizList = new ArrayList<AdminBiz>();
64
                         adminBizList = new ArrayList<AdminBiz>();

+ 2 - 0
xxl-job-executor-example/src/test/java/com/xxl/executor/test/DemoJobHandlerTest.java Parādīt failu

8
 import com.xxl.job.core.rpc.netcom.NetComClientProxy;
8
 import com.xxl.job.core.rpc.netcom.NetComClientProxy;
9
 
9
 
10
 /**
10
 /**
11
+ * executor-api client, test
12
+ *
11
  * Created by xuxueli on 17/5/12.
13
  * Created by xuxueli on 17/5/12.
12
  */
14
  */
13
 public class DemoJobHandlerTest {
15
 public class DemoJobHandlerTest {