diff --git a/README.md b/README.md index d566ca0..cbb2450 100644 --- a/README.md +++ b/README.md @@ -702,6 +702,7 @@ #### 6.10 版本 V1.5.2 特性 - 1、IP工具类优化,IP静态缓存; +- 2、执行器、调度中心,支持自定义注册IP地址;解决机器多网卡时错误网卡注册的情况; #### 规划中 - 1、集群执行器选择规则自定义:单点=选择第一个,随机=随机选择一个; diff --git a/README.md b/README.md index d566ca0..cbb2450 100644 --- a/README.md +++ b/README.md @@ -702,6 +702,7 @@ #### 6.10 版本 V1.5.2 特性 - 1、IP工具类优化,IP静态缓存; +- 2、执行器、调度中心,支持自定义注册IP地址;解决机器多网卡时错误网卡注册的情况; #### 规划中 - 1、集群执行器选择规则自定义:单点=选择第一个,随机=随机选择一个; diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/callback/XxlJobLogCallbackServer.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/callback/XxlJobLogCallbackServer.java index 6d6452b..1f063ac 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/callback/XxlJobLogCallbackServer.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/callback/XxlJobLogCallbackServer.java @@ -9,25 +9,15 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.xxl.job.core.util.IpUtil; - /** * Created by xuxueli on 2016-5-22 11:15:42 */ public class XxlJobLogCallbackServer { private static final Logger logger = LoggerFactory.getLogger(XxlJobLogCallbackServer.class); - private static String trigger_log_address; - public static String getTrigger_log_address() { - return trigger_log_address; - } - Server server = null; public void start(int callBackPort) throws Exception { - // init address - trigger_log_address = IpUtil.getIpPort(callBackPort); - final int port = Integer.valueOf(callBackPort); new Thread(new Runnable() { @Override diff --git a/README.md b/README.md index d566ca0..cbb2450 100644 --- a/README.md +++ b/README.md @@ -702,6 +702,7 @@ #### 6.10 版本 V1.5.2 特性 - 1、IP工具类优化,IP静态缓存; +- 2、执行器、调度中心,支持自定义注册IP地址;解决机器多网卡时错误网卡注册的情况; #### 规划中 - 1、集群执行器选择规则自定义:单点=选择第一个,随机=随机选择一个; diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/callback/XxlJobLogCallbackServer.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/callback/XxlJobLogCallbackServer.java index 6d6452b..1f063ac 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/callback/XxlJobLogCallbackServer.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/callback/XxlJobLogCallbackServer.java @@ -9,25 +9,15 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.xxl.job.core.util.IpUtil; - /** * Created by xuxueli on 2016-5-22 11:15:42 */ public class XxlJobLogCallbackServer { private static final Logger logger = LoggerFactory.getLogger(XxlJobLogCallbackServer.class); - private static String trigger_log_address; - public static String getTrigger_log_address() { - return trigger_log_address; - } - Server server = null; public void start(int callBackPort) throws Exception { - // init address - trigger_log_address = IpUtil.getIpPort(callBackPort); - final int port = Integer.valueOf(callBackPort); new Thread(new Runnable() { @Override diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/jobbean/RemoteHttpJobBean.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/jobbean/RemoteHttpJobBean.java index a632de9..18e7437 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/jobbean/RemoteHttpJobBean.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/jobbean/RemoteHttpJobBean.java @@ -1,6 +1,5 @@ package com.xxl.job.admin.core.jobbean; -import com.xxl.job.admin.core.callback.XxlJobLogCallbackServer; import com.xxl.job.admin.core.model.XxlJobGroup; import com.xxl.job.admin.core.model.XxlJobInfo; import com.xxl.job.admin.core.model.XxlJobLog; @@ -51,7 +50,7 @@ if (adminAddressList!=null) { adminAddressSet.addAll(adminAddressList); } - adminAddressSet.add(XxlJobLogCallbackServer.getTrigger_log_address()); + adminAddressSet.add(DynamicSchedulerUtil.getCallbackAddress()); // trigger request RequestModel requestModel = new RequestModel(); diff --git a/README.md b/README.md index d566ca0..cbb2450 100644 --- a/README.md +++ b/README.md @@ -702,6 +702,7 @@ #### 6.10 版本 V1.5.2 特性 - 1、IP工具类优化,IP静态缓存; +- 2、执行器、调度中心,支持自定义注册IP地址;解决机器多网卡时错误网卡注册的情况; #### 规划中 - 1、集群执行器选择规则自定义:单点=选择第一个,随机=随机选择一个; diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/callback/XxlJobLogCallbackServer.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/callback/XxlJobLogCallbackServer.java index 6d6452b..1f063ac 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/callback/XxlJobLogCallbackServer.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/callback/XxlJobLogCallbackServer.java @@ -9,25 +9,15 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.xxl.job.core.util.IpUtil; - /** * Created by xuxueli on 2016-5-22 11:15:42 */ public class XxlJobLogCallbackServer { private static final Logger logger = LoggerFactory.getLogger(XxlJobLogCallbackServer.class); - private static String trigger_log_address; - public static String getTrigger_log_address() { - return trigger_log_address; - } - Server server = null; public void start(int callBackPort) throws Exception { - // init address - trigger_log_address = IpUtil.getIpPort(callBackPort); - final int port = Integer.valueOf(callBackPort); new Thread(new Runnable() { @Override diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/jobbean/RemoteHttpJobBean.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/jobbean/RemoteHttpJobBean.java index a632de9..18e7437 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/jobbean/RemoteHttpJobBean.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/jobbean/RemoteHttpJobBean.java @@ -1,6 +1,5 @@ package com.xxl.job.admin.core.jobbean; -import com.xxl.job.admin.core.callback.XxlJobLogCallbackServer; import com.xxl.job.admin.core.model.XxlJobGroup; import com.xxl.job.admin.core.model.XxlJobInfo; import com.xxl.job.admin.core.model.XxlJobLog; @@ -51,7 +50,7 @@ if (adminAddressList!=null) { adminAddressSet.addAll(adminAddressList); } - adminAddressSet.add(XxlJobLogCallbackServer.getTrigger_log_address()); + adminAddressSet.add(DynamicSchedulerUtil.getCallbackAddress()); // trigger request RequestModel requestModel = new RequestModel(); diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobRegistryHelper.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobRegistryHelper.java index 20f694f..61a84d7 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobRegistryHelper.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobRegistryHelper.java @@ -1,6 +1,5 @@ package com.xxl.job.admin.core.thread; -import com.xxl.job.admin.core.callback.XxlJobLogCallbackServer; import com.xxl.job.admin.core.model.XxlJobRegistry; import com.xxl.job.admin.core.util.DynamicSchedulerUtil; import com.xxl.job.core.registry.RegistHelper; @@ -29,9 +28,9 @@ while (true) { try { // registry admin - int ret = DynamicSchedulerUtil.xxlJobRegistryDao.registryUpdate(RegistHelper.RegistType.ADMIN.name(), RegistHelper.RegistType.ADMIN.name(), XxlJobLogCallbackServer.getTrigger_log_address()); + int ret = DynamicSchedulerUtil.xxlJobRegistryDao.registryUpdate(RegistHelper.RegistType.ADMIN.name(), RegistHelper.RegistType.ADMIN.name(), DynamicSchedulerUtil.getCallbackAddress()); if (ret < 1) { - DynamicSchedulerUtil.xxlJobRegistryDao.registrySave(RegistHelper.RegistType.ADMIN.name(), RegistHelper.RegistType.ADMIN.name(), XxlJobLogCallbackServer.getTrigger_log_address()); + DynamicSchedulerUtil.xxlJobRegistryDao.registrySave(RegistHelper.RegistType.ADMIN.name(), RegistHelper.RegistType.ADMIN.name(), DynamicSchedulerUtil.getCallbackAddress()); } // fresh registry map diff --git a/README.md b/README.md index d566ca0..cbb2450 100644 --- a/README.md +++ b/README.md @@ -702,6 +702,7 @@ #### 6.10 版本 V1.5.2 特性 - 1、IP工具类优化,IP静态缓存; +- 2、执行器、调度中心,支持自定义注册IP地址;解决机器多网卡时错误网卡注册的情况; #### 规划中 - 1、集群执行器选择规则自定义:单点=选择第一个,随机=随机选择一个; diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/callback/XxlJobLogCallbackServer.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/callback/XxlJobLogCallbackServer.java index 6d6452b..1f063ac 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/callback/XxlJobLogCallbackServer.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/callback/XxlJobLogCallbackServer.java @@ -9,25 +9,15 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.xxl.job.core.util.IpUtil; - /** * Created by xuxueli on 2016-5-22 11:15:42 */ public class XxlJobLogCallbackServer { private static final Logger logger = LoggerFactory.getLogger(XxlJobLogCallbackServer.class); - private static String trigger_log_address; - public static String getTrigger_log_address() { - return trigger_log_address; - } - Server server = null; public void start(int callBackPort) throws Exception { - // init address - trigger_log_address = IpUtil.getIpPort(callBackPort); - final int port = Integer.valueOf(callBackPort); new Thread(new Runnable() { @Override diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/jobbean/RemoteHttpJobBean.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/jobbean/RemoteHttpJobBean.java index a632de9..18e7437 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/jobbean/RemoteHttpJobBean.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/jobbean/RemoteHttpJobBean.java @@ -1,6 +1,5 @@ package com.xxl.job.admin.core.jobbean; -import com.xxl.job.admin.core.callback.XxlJobLogCallbackServer; import com.xxl.job.admin.core.model.XxlJobGroup; import com.xxl.job.admin.core.model.XxlJobInfo; import com.xxl.job.admin.core.model.XxlJobLog; @@ -51,7 +50,7 @@ if (adminAddressList!=null) { adminAddressSet.addAll(adminAddressList); } - adminAddressSet.add(XxlJobLogCallbackServer.getTrigger_log_address()); + adminAddressSet.add(DynamicSchedulerUtil.getCallbackAddress()); // trigger request RequestModel requestModel = new RequestModel(); diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobRegistryHelper.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobRegistryHelper.java index 20f694f..61a84d7 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobRegistryHelper.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobRegistryHelper.java @@ -1,6 +1,5 @@ package com.xxl.job.admin.core.thread; -import com.xxl.job.admin.core.callback.XxlJobLogCallbackServer; import com.xxl.job.admin.core.model.XxlJobRegistry; import com.xxl.job.admin.core.util.DynamicSchedulerUtil; import com.xxl.job.core.registry.RegistHelper; @@ -29,9 +28,9 @@ while (true) { try { // registry admin - int ret = DynamicSchedulerUtil.xxlJobRegistryDao.registryUpdate(RegistHelper.RegistType.ADMIN.name(), RegistHelper.RegistType.ADMIN.name(), XxlJobLogCallbackServer.getTrigger_log_address()); + int ret = DynamicSchedulerUtil.xxlJobRegistryDao.registryUpdate(RegistHelper.RegistType.ADMIN.name(), RegistHelper.RegistType.ADMIN.name(), DynamicSchedulerUtil.getCallbackAddress()); if (ret < 1) { - DynamicSchedulerUtil.xxlJobRegistryDao.registrySave(RegistHelper.RegistType.ADMIN.name(), RegistHelper.RegistType.ADMIN.name(), XxlJobLogCallbackServer.getTrigger_log_address()); + DynamicSchedulerUtil.xxlJobRegistryDao.registrySave(RegistHelper.RegistType.ADMIN.name(), RegistHelper.RegistType.ADMIN.name(), DynamicSchedulerUtil.getCallbackAddress()); } // fresh registry map diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/util/DynamicSchedulerUtil.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/util/DynamicSchedulerUtil.java index 1c3c5bb..3e865b8 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/util/DynamicSchedulerUtil.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/util/DynamicSchedulerUtil.java @@ -8,6 +8,7 @@ import com.xxl.job.admin.dao.IXxlJobInfoDao; import com.xxl.job.admin.dao.IXxlJobLogDao; import com.xxl.job.admin.dao.IXxlJobRegistryDao; +import com.xxl.job.core.util.IpUtil; import org.quartz.*; import org.quartz.Trigger.TriggerState; import org.quartz.impl.matchers.GroupMatcher; @@ -35,12 +36,21 @@ DynamicSchedulerUtil.scheduler = scheduler; } - // trigger callback port + // trigger callback address + private String callBackIp; private int callBackPort = 8888; + private static String callbackAddress; + + public void setCallBackIp(String callBackIp) { + this.callBackIp = callBackIp; + } public void setCallBackPort(int callBackPort) { this.callBackPort = callBackPort; } - + public static String getCallbackAddress(){ + return callbackAddress; + } + // init XxlJobLogCallbackServer xxlJobLogCallbackServer = null; public void init(){ @@ -52,6 +62,13 @@ e.printStackTrace(); } + // init callbackAddress + if (callBackIp!=null && callBackIp.trim().length()>0) { + callbackAddress = callBackIp.trim().concat(":").concat(String.valueOf(callBackPort)); + } else { + callbackAddress = IpUtil.getIpPort(callBackPort);; + } + // init JobRegistryHelper JobRegistryHelper.discover("g", "k"); } diff --git a/README.md b/README.md index d566ca0..cbb2450 100644 --- a/README.md +++ b/README.md @@ -702,6 +702,7 @@ #### 6.10 版本 V1.5.2 特性 - 1、IP工具类优化,IP静态缓存; +- 2、执行器、调度中心,支持自定义注册IP地址;解决机器多网卡时错误网卡注册的情况; #### 规划中 - 1、集群执行器选择规则自定义:单点=选择第一个,随机=随机选择一个; diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/callback/XxlJobLogCallbackServer.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/callback/XxlJobLogCallbackServer.java index 6d6452b..1f063ac 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/callback/XxlJobLogCallbackServer.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/callback/XxlJobLogCallbackServer.java @@ -9,25 +9,15 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.xxl.job.core.util.IpUtil; - /** * Created by xuxueli on 2016-5-22 11:15:42 */ public class XxlJobLogCallbackServer { private static final Logger logger = LoggerFactory.getLogger(XxlJobLogCallbackServer.class); - private static String trigger_log_address; - public static String getTrigger_log_address() { - return trigger_log_address; - } - Server server = null; public void start(int callBackPort) throws Exception { - // init address - trigger_log_address = IpUtil.getIpPort(callBackPort); - final int port = Integer.valueOf(callBackPort); new Thread(new Runnable() { @Override diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/jobbean/RemoteHttpJobBean.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/jobbean/RemoteHttpJobBean.java index a632de9..18e7437 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/jobbean/RemoteHttpJobBean.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/jobbean/RemoteHttpJobBean.java @@ -1,6 +1,5 @@ package com.xxl.job.admin.core.jobbean; -import com.xxl.job.admin.core.callback.XxlJobLogCallbackServer; import com.xxl.job.admin.core.model.XxlJobGroup; import com.xxl.job.admin.core.model.XxlJobInfo; import com.xxl.job.admin.core.model.XxlJobLog; @@ -51,7 +50,7 @@ if (adminAddressList!=null) { adminAddressSet.addAll(adminAddressList); } - adminAddressSet.add(XxlJobLogCallbackServer.getTrigger_log_address()); + adminAddressSet.add(DynamicSchedulerUtil.getCallbackAddress()); // trigger request RequestModel requestModel = new RequestModel(); diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobRegistryHelper.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobRegistryHelper.java index 20f694f..61a84d7 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobRegistryHelper.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobRegistryHelper.java @@ -1,6 +1,5 @@ package com.xxl.job.admin.core.thread; -import com.xxl.job.admin.core.callback.XxlJobLogCallbackServer; import com.xxl.job.admin.core.model.XxlJobRegistry; import com.xxl.job.admin.core.util.DynamicSchedulerUtil; import com.xxl.job.core.registry.RegistHelper; @@ -29,9 +28,9 @@ while (true) { try { // registry admin - int ret = DynamicSchedulerUtil.xxlJobRegistryDao.registryUpdate(RegistHelper.RegistType.ADMIN.name(), RegistHelper.RegistType.ADMIN.name(), XxlJobLogCallbackServer.getTrigger_log_address()); + int ret = DynamicSchedulerUtil.xxlJobRegistryDao.registryUpdate(RegistHelper.RegistType.ADMIN.name(), RegistHelper.RegistType.ADMIN.name(), DynamicSchedulerUtil.getCallbackAddress()); if (ret < 1) { - DynamicSchedulerUtil.xxlJobRegistryDao.registrySave(RegistHelper.RegistType.ADMIN.name(), RegistHelper.RegistType.ADMIN.name(), XxlJobLogCallbackServer.getTrigger_log_address()); + DynamicSchedulerUtil.xxlJobRegistryDao.registrySave(RegistHelper.RegistType.ADMIN.name(), RegistHelper.RegistType.ADMIN.name(), DynamicSchedulerUtil.getCallbackAddress()); } // fresh registry map diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/util/DynamicSchedulerUtil.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/util/DynamicSchedulerUtil.java index 1c3c5bb..3e865b8 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/util/DynamicSchedulerUtil.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/util/DynamicSchedulerUtil.java @@ -8,6 +8,7 @@ import com.xxl.job.admin.dao.IXxlJobInfoDao; import com.xxl.job.admin.dao.IXxlJobLogDao; import com.xxl.job.admin.dao.IXxlJobRegistryDao; +import com.xxl.job.core.util.IpUtil; import org.quartz.*; import org.quartz.Trigger.TriggerState; import org.quartz.impl.matchers.GroupMatcher; @@ -35,12 +36,21 @@ DynamicSchedulerUtil.scheduler = scheduler; } - // trigger callback port + // trigger callback address + private String callBackIp; private int callBackPort = 8888; + private static String callbackAddress; + + public void setCallBackIp(String callBackIp) { + this.callBackIp = callBackIp; + } public void setCallBackPort(int callBackPort) { this.callBackPort = callBackPort; } - + public static String getCallbackAddress(){ + return callbackAddress; + } + // init XxlJobLogCallbackServer xxlJobLogCallbackServer = null; public void init(){ @@ -52,6 +62,13 @@ e.printStackTrace(); } + // init callbackAddress + if (callBackIp!=null && callBackIp.trim().length()>0) { + callbackAddress = callBackIp.trim().concat(":").concat(String.valueOf(callBackPort)); + } else { + callbackAddress = IpUtil.getIpPort(callBackPort);; + } + // init JobRegistryHelper JobRegistryHelper.discover("g", "k"); } diff --git a/xxl-job-admin/src/main/resources/applicationcontext-xxl-job.xml b/xxl-job-admin/src/main/resources/applicationcontext-xxl-job.xml index 7fcf3b1..d38abe9 100644 --- a/xxl-job-admin/src/main/resources/applicationcontext-xxl-job.xml +++ b/xxl-job-admin/src/main/resources/applicationcontext-xxl-job.xml @@ -4,6 +4,7 @@ xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> + @@ -16,6 +17,9 @@ + + + diff --git a/README.md b/README.md index d566ca0..cbb2450 100644 --- a/README.md +++ b/README.md @@ -702,6 +702,7 @@ #### 6.10 版本 V1.5.2 特性 - 1、IP工具类优化,IP静态缓存; +- 2、执行器、调度中心,支持自定义注册IP地址;解决机器多网卡时错误网卡注册的情况; #### 规划中 - 1、集群执行器选择规则自定义:单点=选择第一个,随机=随机选择一个; diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/callback/XxlJobLogCallbackServer.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/callback/XxlJobLogCallbackServer.java index 6d6452b..1f063ac 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/callback/XxlJobLogCallbackServer.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/callback/XxlJobLogCallbackServer.java @@ -9,25 +9,15 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.xxl.job.core.util.IpUtil; - /** * Created by xuxueli on 2016-5-22 11:15:42 */ public class XxlJobLogCallbackServer { private static final Logger logger = LoggerFactory.getLogger(XxlJobLogCallbackServer.class); - private static String trigger_log_address; - public static String getTrigger_log_address() { - return trigger_log_address; - } - Server server = null; public void start(int callBackPort) throws Exception { - // init address - trigger_log_address = IpUtil.getIpPort(callBackPort); - final int port = Integer.valueOf(callBackPort); new Thread(new Runnable() { @Override diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/jobbean/RemoteHttpJobBean.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/jobbean/RemoteHttpJobBean.java index a632de9..18e7437 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/jobbean/RemoteHttpJobBean.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/jobbean/RemoteHttpJobBean.java @@ -1,6 +1,5 @@ package com.xxl.job.admin.core.jobbean; -import com.xxl.job.admin.core.callback.XxlJobLogCallbackServer; import com.xxl.job.admin.core.model.XxlJobGroup; import com.xxl.job.admin.core.model.XxlJobInfo; import com.xxl.job.admin.core.model.XxlJobLog; @@ -51,7 +50,7 @@ if (adminAddressList!=null) { adminAddressSet.addAll(adminAddressList); } - adminAddressSet.add(XxlJobLogCallbackServer.getTrigger_log_address()); + adminAddressSet.add(DynamicSchedulerUtil.getCallbackAddress()); // trigger request RequestModel requestModel = new RequestModel(); diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobRegistryHelper.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobRegistryHelper.java index 20f694f..61a84d7 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobRegistryHelper.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobRegistryHelper.java @@ -1,6 +1,5 @@ package com.xxl.job.admin.core.thread; -import com.xxl.job.admin.core.callback.XxlJobLogCallbackServer; import com.xxl.job.admin.core.model.XxlJobRegistry; import com.xxl.job.admin.core.util.DynamicSchedulerUtil; import com.xxl.job.core.registry.RegistHelper; @@ -29,9 +28,9 @@ while (true) { try { // registry admin - int ret = DynamicSchedulerUtil.xxlJobRegistryDao.registryUpdate(RegistHelper.RegistType.ADMIN.name(), RegistHelper.RegistType.ADMIN.name(), XxlJobLogCallbackServer.getTrigger_log_address()); + int ret = DynamicSchedulerUtil.xxlJobRegistryDao.registryUpdate(RegistHelper.RegistType.ADMIN.name(), RegistHelper.RegistType.ADMIN.name(), DynamicSchedulerUtil.getCallbackAddress()); if (ret < 1) { - DynamicSchedulerUtil.xxlJobRegistryDao.registrySave(RegistHelper.RegistType.ADMIN.name(), RegistHelper.RegistType.ADMIN.name(), XxlJobLogCallbackServer.getTrigger_log_address()); + DynamicSchedulerUtil.xxlJobRegistryDao.registrySave(RegistHelper.RegistType.ADMIN.name(), RegistHelper.RegistType.ADMIN.name(), DynamicSchedulerUtil.getCallbackAddress()); } // fresh registry map diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/util/DynamicSchedulerUtil.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/util/DynamicSchedulerUtil.java index 1c3c5bb..3e865b8 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/util/DynamicSchedulerUtil.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/util/DynamicSchedulerUtil.java @@ -8,6 +8,7 @@ import com.xxl.job.admin.dao.IXxlJobInfoDao; import com.xxl.job.admin.dao.IXxlJobLogDao; import com.xxl.job.admin.dao.IXxlJobRegistryDao; +import com.xxl.job.core.util.IpUtil; import org.quartz.*; import org.quartz.Trigger.TriggerState; import org.quartz.impl.matchers.GroupMatcher; @@ -35,12 +36,21 @@ DynamicSchedulerUtil.scheduler = scheduler; } - // trigger callback port + // trigger callback address + private String callBackIp; private int callBackPort = 8888; + private static String callbackAddress; + + public void setCallBackIp(String callBackIp) { + this.callBackIp = callBackIp; + } public void setCallBackPort(int callBackPort) { this.callBackPort = callBackPort; } - + public static String getCallbackAddress(){ + return callbackAddress; + } + // init XxlJobLogCallbackServer xxlJobLogCallbackServer = null; public void init(){ @@ -52,6 +62,13 @@ e.printStackTrace(); } + // init callbackAddress + if (callBackIp!=null && callBackIp.trim().length()>0) { + callbackAddress = callBackIp.trim().concat(":").concat(String.valueOf(callBackPort)); + } else { + callbackAddress = IpUtil.getIpPort(callBackPort);; + } + // init JobRegistryHelper JobRegistryHelper.discover("g", "k"); } diff --git a/xxl-job-admin/src/main/resources/applicationcontext-xxl-job.xml b/xxl-job-admin/src/main/resources/applicationcontext-xxl-job.xml index 7fcf3b1..d38abe9 100644 --- a/xxl-job-admin/src/main/resources/applicationcontext-xxl-job.xml +++ b/xxl-job-admin/src/main/resources/applicationcontext-xxl-job.xml @@ -4,6 +4,7 @@ xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> + @@ -16,6 +17,9 @@ + + + diff --git a/xxl-job-core/src/main/java/com/xxl/job/core/executor/jetty/XxlJobExecutor.java b/xxl-job-core/src/main/java/com/xxl/job/core/executor/jetty/XxlJobExecutor.java index e27120f..5ba7387 100644 --- a/xxl-job-core/src/main/java/com/xxl/job/core/executor/jetty/XxlJobExecutor.java +++ b/xxl-job-core/src/main/java/com/xxl/job/core/executor/jetty/XxlJobExecutor.java @@ -26,9 +26,14 @@ public class XxlJobExecutor implements ApplicationContextAware { private static final Logger logger = LoggerFactory.getLogger(XxlJobExecutor.class); + private String ip; private int port = 9999; private String appName; private RegistHelper registHelper; + + public void setIp(String ip) { + this.ip = ip; + } public void setPort(int port) { this.port = port; } @@ -94,7 +99,15 @@ public void run() { while (true) { try { - String address = IpUtil.getIpPort(port); + + // generate addredd = ip:port + String address = null; + if (ip != null && ip.trim().length()>0) { + address = ip.trim().concat(":").concat(String.valueOf(port)); + } else { + address = IpUtil.getIpPort(port); + } + registHelper.registry(RegistHelper.RegistType.EXECUTOR.name(), appName, address); TimeUnit.SECONDS.sleep(RegistHelper.TIMEOUT); } catch (Exception e) { diff --git a/README.md b/README.md index d566ca0..cbb2450 100644 --- a/README.md +++ b/README.md @@ -702,6 +702,7 @@ #### 6.10 版本 V1.5.2 特性 - 1、IP工具类优化,IP静态缓存; +- 2、执行器、调度中心,支持自定义注册IP地址;解决机器多网卡时错误网卡注册的情况; #### 规划中 - 1、集群执行器选择规则自定义:单点=选择第一个,随机=随机选择一个; diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/callback/XxlJobLogCallbackServer.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/callback/XxlJobLogCallbackServer.java index 6d6452b..1f063ac 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/callback/XxlJobLogCallbackServer.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/callback/XxlJobLogCallbackServer.java @@ -9,25 +9,15 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.xxl.job.core.util.IpUtil; - /** * Created by xuxueli on 2016-5-22 11:15:42 */ public class XxlJobLogCallbackServer { private static final Logger logger = LoggerFactory.getLogger(XxlJobLogCallbackServer.class); - private static String trigger_log_address; - public static String getTrigger_log_address() { - return trigger_log_address; - } - Server server = null; public void start(int callBackPort) throws Exception { - // init address - trigger_log_address = IpUtil.getIpPort(callBackPort); - final int port = Integer.valueOf(callBackPort); new Thread(new Runnable() { @Override diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/jobbean/RemoteHttpJobBean.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/jobbean/RemoteHttpJobBean.java index a632de9..18e7437 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/jobbean/RemoteHttpJobBean.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/jobbean/RemoteHttpJobBean.java @@ -1,6 +1,5 @@ package com.xxl.job.admin.core.jobbean; -import com.xxl.job.admin.core.callback.XxlJobLogCallbackServer; import com.xxl.job.admin.core.model.XxlJobGroup; import com.xxl.job.admin.core.model.XxlJobInfo; import com.xxl.job.admin.core.model.XxlJobLog; @@ -51,7 +50,7 @@ if (adminAddressList!=null) { adminAddressSet.addAll(adminAddressList); } - adminAddressSet.add(XxlJobLogCallbackServer.getTrigger_log_address()); + adminAddressSet.add(DynamicSchedulerUtil.getCallbackAddress()); // trigger request RequestModel requestModel = new RequestModel(); diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobRegistryHelper.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobRegistryHelper.java index 20f694f..61a84d7 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobRegistryHelper.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobRegistryHelper.java @@ -1,6 +1,5 @@ package com.xxl.job.admin.core.thread; -import com.xxl.job.admin.core.callback.XxlJobLogCallbackServer; import com.xxl.job.admin.core.model.XxlJobRegistry; import com.xxl.job.admin.core.util.DynamicSchedulerUtil; import com.xxl.job.core.registry.RegistHelper; @@ -29,9 +28,9 @@ while (true) { try { // registry admin - int ret = DynamicSchedulerUtil.xxlJobRegistryDao.registryUpdate(RegistHelper.RegistType.ADMIN.name(), RegistHelper.RegistType.ADMIN.name(), XxlJobLogCallbackServer.getTrigger_log_address()); + int ret = DynamicSchedulerUtil.xxlJobRegistryDao.registryUpdate(RegistHelper.RegistType.ADMIN.name(), RegistHelper.RegistType.ADMIN.name(), DynamicSchedulerUtil.getCallbackAddress()); if (ret < 1) { - DynamicSchedulerUtil.xxlJobRegistryDao.registrySave(RegistHelper.RegistType.ADMIN.name(), RegistHelper.RegistType.ADMIN.name(), XxlJobLogCallbackServer.getTrigger_log_address()); + DynamicSchedulerUtil.xxlJobRegistryDao.registrySave(RegistHelper.RegistType.ADMIN.name(), RegistHelper.RegistType.ADMIN.name(), DynamicSchedulerUtil.getCallbackAddress()); } // fresh registry map diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/util/DynamicSchedulerUtil.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/util/DynamicSchedulerUtil.java index 1c3c5bb..3e865b8 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/util/DynamicSchedulerUtil.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/util/DynamicSchedulerUtil.java @@ -8,6 +8,7 @@ import com.xxl.job.admin.dao.IXxlJobInfoDao; import com.xxl.job.admin.dao.IXxlJobLogDao; import com.xxl.job.admin.dao.IXxlJobRegistryDao; +import com.xxl.job.core.util.IpUtil; import org.quartz.*; import org.quartz.Trigger.TriggerState; import org.quartz.impl.matchers.GroupMatcher; @@ -35,12 +36,21 @@ DynamicSchedulerUtil.scheduler = scheduler; } - // trigger callback port + // trigger callback address + private String callBackIp; private int callBackPort = 8888; + private static String callbackAddress; + + public void setCallBackIp(String callBackIp) { + this.callBackIp = callBackIp; + } public void setCallBackPort(int callBackPort) { this.callBackPort = callBackPort; } - + public static String getCallbackAddress(){ + return callbackAddress; + } + // init XxlJobLogCallbackServer xxlJobLogCallbackServer = null; public void init(){ @@ -52,6 +62,13 @@ e.printStackTrace(); } + // init callbackAddress + if (callBackIp!=null && callBackIp.trim().length()>0) { + callbackAddress = callBackIp.trim().concat(":").concat(String.valueOf(callBackPort)); + } else { + callbackAddress = IpUtil.getIpPort(callBackPort);; + } + // init JobRegistryHelper JobRegistryHelper.discover("g", "k"); } diff --git a/xxl-job-admin/src/main/resources/applicationcontext-xxl-job.xml b/xxl-job-admin/src/main/resources/applicationcontext-xxl-job.xml index 7fcf3b1..d38abe9 100644 --- a/xxl-job-admin/src/main/resources/applicationcontext-xxl-job.xml +++ b/xxl-job-admin/src/main/resources/applicationcontext-xxl-job.xml @@ -4,6 +4,7 @@ xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> + @@ -16,6 +17,9 @@ + + + diff --git a/xxl-job-core/src/main/java/com/xxl/job/core/executor/jetty/XxlJobExecutor.java b/xxl-job-core/src/main/java/com/xxl/job/core/executor/jetty/XxlJobExecutor.java index e27120f..5ba7387 100644 --- a/xxl-job-core/src/main/java/com/xxl/job/core/executor/jetty/XxlJobExecutor.java +++ b/xxl-job-core/src/main/java/com/xxl/job/core/executor/jetty/XxlJobExecutor.java @@ -26,9 +26,14 @@ public class XxlJobExecutor implements ApplicationContextAware { private static final Logger logger = LoggerFactory.getLogger(XxlJobExecutor.class); + private String ip; private int port = 9999; private String appName; private RegistHelper registHelper; + + public void setIp(String ip) { + this.ip = ip; + } public void setPort(int port) { this.port = port; } @@ -94,7 +99,15 @@ public void run() { while (true) { try { - String address = IpUtil.getIpPort(port); + + // generate addredd = ip:port + String address = null; + if (ip != null && ip.trim().length()>0) { + address = ip.trim().concat(":").concat(String.valueOf(port)); + } else { + address = IpUtil.getIpPort(port); + } + registHelper.registry(RegistHelper.RegistType.EXECUTOR.name(), appName, address); TimeUnit.SECONDS.sleep(RegistHelper.TIMEOUT); } catch (Exception e) { diff --git a/xxl-job-executor-example/src/main/resources/applicationcontext-xxl-job.xml b/xxl-job-executor-example/src/main/resources/applicationcontext-xxl-job.xml index c297885..4c37cd5 100644 --- a/xxl-job-executor-example/src/main/resources/applicationcontext-xxl-job.xml +++ b/xxl-job-executor-example/src/main/resources/applicationcontext-xxl-job.xml @@ -14,6 +14,8 @@ + +