Browse Source

Merge branch 'master' of https://github.com/xuxueli/xxl-job

xuxueli 2 years ago
parent
commit
a4db25db61

+ 9 - 9
doc/XXL-JOB官方文档.md

@@ -776,7 +776,7 @@ docker run -e PARAMS="--spring.datasource.url=jdbc:mysql://127.0.0.1:3306/xxl_jo
 
 执行器配置,配置内容说明:
 
-    ### 调度中心部署地址 [选填]:如调度中心集群部署存在多个地址则用逗号分隔。执行器将会使用该地址进行"执行器心跳注册"和"任务结果回调";为空则关闭自动注册;
+    ### 调度中心部署地址 [选填]:如调度中心集群部署存在多个地址则用逗号分隔。执行器将会使用该地址进行"执行器心跳注册"和"任务结果回调";为空则关闭自动注册;
     xxl.job.admin.addresses=http://127.0.0.1:8080/xxl-job-admin
     
     ### 执行器通讯TOKEN [选填]:非空时启用;
@@ -1514,7 +1514,7 @@ API服务请求参考代码:com.xxl.job.adminbiz.AdminBizTest
 
 ------
 
-地址格式:{调度中心跟地址}/callback
+地址格式:{调度中心根地址}/api/callback
 
 Header:
     XXL-JOB-ACCESS-TOKEN : {请求令牌}
@@ -1542,7 +1542,7 @@ Header:
 
 ------
 
-地址格式:{调度中心跟地址}/registry
+地址格式:{调度中心根地址}/api/registry
 
 Header:
     XXL-JOB-ACCESS-TOKEN : {请求令牌}
@@ -1567,7 +1567,7 @@ Header:
 
 ------
 
-地址格式:{调度中心跟地址}/registryRemove
+地址格式:{调度中心根地址}/api/registryRemove
 
 Header:
     XXL-JOB-ACCESS-TOKEN : {请求令牌}
@@ -1597,7 +1597,7 @@ API服务请求参考代码:com.xxl.job.executorbiz.ExecutorBizTest
 
 ------
 
-地址格式:{执行器内嵌服务地址}/beat
+地址格式:{执行器内嵌服务地址}/beat
 
 Header:
     XXL-JOB-ACCESS-TOKEN : {请求令牌}
@@ -1617,7 +1617,7 @@ Header:
 
 ------
 
-地址格式:{执行器内嵌服务地址}/idleBeat
+地址格式:{执行器内嵌服务地址}/idleBeat
 
 Header:
     XXL-JOB-ACCESS-TOKEN : {请求令牌}
@@ -1640,7 +1640,7 @@ Header:
 
 ------
 
-地址格式:{执行器内嵌服务地址}/run
+地址格式:{执行器内嵌服务地址}/run
 
 Header:
     XXL-JOB-ACCESS-TOKEN : {请求令牌}
@@ -1674,7 +1674,7 @@ Header:
 
 ------
 
-地址格式:{执行器内嵌服务地址}/kill
+地址格式:{执行器内嵌服务地址}/kill
 
 Header:
     XXL-JOB-ACCESS-TOKEN : {请求令牌}
@@ -1698,7 +1698,7 @@ Header:
 
 ------
 
-地址格式:{执行器内嵌服务地址}/log
+地址格式:{执行器内嵌服务地址}/log
 
 Header:
     XXL-JOB-ACCESS-TOKEN : {请求令牌}

+ 5 - 3
xxl-job-core/src/main/java/com/xxl/job/core/executor/XxlJobExecutor.java

@@ -83,6 +83,7 @@ public class XxlJobExecutor  {
         // init executor-server
         initEmbedServer(address, ip, port, appname, accessToken);
     }
+
     public void destroy(){
         // destroy executor-server
         stopEmbedServer();
@@ -131,6 +132,7 @@ public class XxlJobExecutor  {
             }
         }
     }
+
     public static List<AdminBiz> getAdminBizList(){
         return adminBizList;
     }
@@ -251,6 +253,7 @@ public class XxlJobExecutor  {
 
         return newJobThread;
     }
+
     public static JobThread removeJobThread(int jobId, String removeOldReason){
         JobThread oldJobThread = jobThreadRepository.remove(jobId);
         if (oldJobThread != null) {
@@ -261,9 +264,8 @@ public class XxlJobExecutor  {
         }
         return null;
     }
+
     public static JobThread loadJobThread(int jobId){
-        JobThread jobThread = jobThreadRepository.get(jobId);
-        return jobThread;
+        return jobThreadRepository.get(jobId);
     }
-
 }

+ 27 - 37
xxl-job-core/src/main/java/com/xxl/job/core/server/EmbedServer.java

@@ -36,10 +36,8 @@ public class EmbedServer {
     public void start(final String address, final int port, final String appname, final String accessToken) {
         executorBiz = new ExecutorBizImpl();
         thread = new Thread(new Runnable() {
-
             @Override
             public void run() {
-
                 // param
                 EventLoopGroup bossGroup = new NioEventLoopGroup();
                 EventLoopGroup workerGroup = new NioEventLoopGroup();
@@ -61,8 +59,6 @@ public class EmbedServer {
                                 throw new RuntimeException("xxl-job, EmbedServer bizThreadPool is EXHAUSTED!");
                             }
                         });
-
-
                 try {
                     // start server
                     ServerBootstrap bootstrap = new ServerBootstrap();
@@ -92,11 +88,9 @@ public class EmbedServer {
                     future.channel().closeFuture().sync();
 
                 } catch (InterruptedException e) {
-                    if (e instanceof InterruptedException) {
-                        logger.info(">>>>>>>>>>> xxl-job remoting server stop.");
-                    } else {
-                        logger.error(">>>>>>>>>>> xxl-job remoting server error.", e);
-                    }
+                    logger.info(">>>>>>>>>>> xxl-job remoting server stop.");
+                } catch (Exception e) {
+                    logger.error(">>>>>>>>>>> xxl-job remoting server error.", e);
                 } finally {
                     // stop
                     try {
@@ -106,17 +100,15 @@ public class EmbedServer {
                         logger.error(e.getMessage(), e);
                     }
                 }
-
             }
-
         });
-        thread.setDaemon(true);	// daemon, service jvm, user thread leave >>> daemon leave >>> jvm leave
+        thread.setDaemon(true);    // daemon, service jvm, user thread leave >>> daemon leave >>> jvm leave
         thread.start();
     }
 
     public void stop() throws Exception {
         // destroy server thread
-        if (thread!=null && thread.isAlive()) {
+        if (thread != null && thread.isAlive()) {
             thread.interrupt();
         }
 
@@ -130,7 +122,7 @@ public class EmbedServer {
 
     /**
      * netty_http
-     *
+     * <p>
      * Copy from : https://github.com/xuxueli/xxl-rpc
      *
      * @author xuxueli 2015-11-24 22:25:15
@@ -141,6 +133,7 @@ public class EmbedServer {
         private ExecutorBiz executorBiz;
         private String accessToken;
         private ThreadPoolExecutor bizThreadPool;
+
         public EmbedHttpServerHandler(ExecutorBiz executorBiz, String accessToken, ThreadPoolExecutor bizThreadPool) {
             this.executorBiz = executorBiz;
             this.accessToken = accessToken;
@@ -149,7 +142,6 @@ public class EmbedServer {
 
         @Override
         protected void channelRead0(final ChannelHandlerContext ctx, FullHttpRequest msg) throws Exception {
-
             // request parse
             //final byte[] requestBytes = ByteBufUtil.getBytes(msg.content());    // byteBuf.toString(io.netty.util.CharsetUtil.UTF_8);
             String requestData = msg.content().toString(CharsetUtil.UTF_8);
@@ -175,38 +167,38 @@ public class EmbedServer {
         }
 
         private Object process(HttpMethod httpMethod, String uri, String requestData, String accessTokenReq) {
-
             // valid
             if (HttpMethod.POST != httpMethod) {
                 return new ReturnT<String>(ReturnT.FAIL_CODE, "invalid request, HttpMethod not support.");
             }
-            if (uri==null || uri.trim().length()==0) {
+            if (uri == null || uri.trim().length() == 0) {
                 return new ReturnT<String>(ReturnT.FAIL_CODE, "invalid request, uri-mapping empty.");
             }
-            if (accessToken!=null
-                    && accessToken.trim().length()>0
+            if (accessToken != null
+                    && accessToken.trim().length() > 0
                     && !accessToken.equals(accessTokenReq)) {
                 return new ReturnT<String>(ReturnT.FAIL_CODE, "The access token is wrong.");
             }
 
             // services mapping
             try {
-                if ("/beat".equals(uri)) {
-                    return executorBiz.beat();
-                } else if ("/idleBeat".equals(uri)) {
-                    IdleBeatParam idleBeatParam = GsonTool.fromJson(requestData, IdleBeatParam.class);
-                    return executorBiz.idleBeat(idleBeatParam);
-                } else if ("/run".equals(uri)) {
-                    TriggerParam triggerParam = GsonTool.fromJson(requestData, TriggerParam.class);
-                    return executorBiz.run(triggerParam);
-                } else if ("/kill".equals(uri)) {
-                    KillParam killParam = GsonTool.fromJson(requestData, KillParam.class);
-                    return executorBiz.kill(killParam);
-                } else if ("/log".equals(uri)) {
-                    LogParam logParam = GsonTool.fromJson(requestData, LogParam.class);
-                    return executorBiz.log(logParam);
-                } else {
-                    return new ReturnT<String>(ReturnT.FAIL_CODE, "invalid request, uri-mapping("+ uri +") not found.");
+                switch (uri) {
+                    case "/beat":
+                        return executorBiz.beat();
+                    case "/idleBeat":
+                        IdleBeatParam idleBeatParam = GsonTool.fromJson(requestData, IdleBeatParam.class);
+                        return executorBiz.idleBeat(idleBeatParam);
+                    case "/run":
+                        TriggerParam triggerParam = GsonTool.fromJson(requestData, TriggerParam.class);
+                        return executorBiz.run(triggerParam);
+                    case "/kill":
+                        KillParam killParam = GsonTool.fromJson(requestData, KillParam.class);
+                        return executorBiz.kill(killParam);
+                    case "/log":
+                        LogParam logParam = GsonTool.fromJson(requestData, LogParam.class);
+                        return executorBiz.log(logParam);
+                    default:
+                        return new ReturnT<String>(ReturnT.FAIL_CODE, "invalid request, uri-mapping(" + uri + ") not found.");
                 }
             } catch (Exception e) {
                 logger.error(e.getMessage(), e);
@@ -261,6 +253,4 @@ public class EmbedServer {
         // stop registry
         ExecutorRegistryThread.getInstance().toStop();
     }
-
-
 }