Преглед изворни кода

Merge #22 into master from pingkang

不在ip范围内跳过初始化xxl

* pingkang: (1 commits)
  不在ip范围内跳过初始化xxl

Signed-off-by: 1129979389@qq.com <accounts_6361eaad7b63b44dd7833e63@mail.teambition.com>
Merged-by: 1129979389@qq.com <accounts_6361eaad7b63b44dd7833e63@mail.teambition.com>

CR-link: https://codeup.aliyun.com/60c06368dbbed34fe0f0c263/job/hr_job-adq/change/22
huangpingkang пре 9 месеци
родитељ
комит
8e2c909514

+ 4 - 0
job-adq/src/main/java/cn/com/ctop/job/adq/config/XxlJobConfig.java

@@ -21,6 +21,9 @@ public class XxlJobConfig {
   @Value("${xxl.job.executor.ip}")
   private String ip;
 
+  @Value("${xxl.job.executor.includeIpPrefix}")
+  private String includeIpPrefix;
+
   @Value("${xxl.job.executor.port}")
   private int port;
 
@@ -39,6 +42,7 @@ public class XxlJobConfig {
     xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
     xxlJobSpringExecutor.setAppname(appName);
     xxlJobSpringExecutor.setIp(ip);
+    xxlJobSpringExecutor.setIncludeIpPrefix(includeIpPrefix);
     xxlJobSpringExecutor.setPort(port);
     xxlJobSpringExecutor.setAccessToken(accessToken);
     xxlJobSpringExecutor.setLogPath(logPath);

+ 1 - 0
job-adq/src/main/resources/application.yml

@@ -172,6 +172,7 @@ xxl:
       #      appname: module-job-test
       port: 9007
       ip:
+      includeIpPrefix: 172
       logpath: /data/webapp/hr_job-adq/log
       logretentiondays: 3
     admin:

+ 8 - 0
xxl-job-core/src/main/java/com/xxl/job/core/executor/XxlJobExecutor.java

@@ -34,6 +34,7 @@ public class XxlJobExecutor  {
     private String appname;
     private String address;
     private String ip;
+    private String includeIpPrefix;
     private int port;
     private String logPath;
     private int logRetentionDays;
@@ -53,6 +54,9 @@ public class XxlJobExecutor  {
     public void setIp(String ip) {
         this.ip = ip;
     }
+    public void setIncludeIpPrefix(String includeIpPrefix) {
+        this.includeIpPrefix = includeIpPrefix;
+    }
     public void setPort(int port) {
         this.port = port;
     }
@@ -83,6 +87,10 @@ public class XxlJobExecutor  {
         // init executor-server
         initEmbedServer(address, ip, port, appname, accessToken);
     }
+    public boolean checkIncludeIpPrefix() {
+        String realIp = (ip != null && !ip.trim().isEmpty()) ? ip : IpUtil.getIp();
+        return includeIpPrefix == null || includeIpPrefix.trim().isEmpty() || includeIpPrefix.contains(realIp.split("\\.")[0]);
+    }
     public void destroy(){
         // destroy executor-server
         stopEmbedServer();

+ 4 - 0
xxl-job-core/src/main/java/com/xxl/job/core/executor/impl/XxlJobSpringExecutor.java

@@ -30,6 +30,10 @@ public class XxlJobSpringExecutor extends XxlJobExecutor implements ApplicationC
     // start
     @Override
     public void afterSingletonsInstantiated() {
+        if (!super.checkIncludeIpPrefix()){
+            logger.info("本机ip不在指定ip范围内, 跳过初始化xxl!!");
+            return;
+        }
 
         // init JobHandler Repository
         /*initJobHandlerRepository(applicationContext);*/