|
@@ -1,12 +1,17 @@
|
|
|
package com.persagy.dmp.job.config;
|
|
|
|
|
|
+import cn.hutool.core.util.NumberUtil;
|
|
|
+import cn.hutool.core.util.ObjectUtil;
|
|
|
+import cn.hutool.core.util.StrUtil;
|
|
|
import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.context.annotation.Bean;
|
|
|
import org.springframework.context.annotation.Configuration;
|
|
|
+import org.springframework.core.env.Environment;
|
|
|
|
|
|
/**
|
|
|
* xxl-job config
|
|
@@ -26,14 +31,14 @@ public class XxlJobConfig {
|
|
|
@Value("${xxl.job.executor.appname:${spring.application.name}-job-executor}")
|
|
|
private String appname;
|
|
|
|
|
|
- @Value("${xxl.job.executor.address:http://${spring.application.name}:${server.port}}")
|
|
|
+ @Value("${xxl.job.executor.address:}")
|
|
|
private String address;
|
|
|
|
|
|
- @Value("${xxl.job.executor.ip:${spring.application.name}}")
|
|
|
+ @Value("${xxl.job.executor.ip:}")
|
|
|
private String ip;
|
|
|
|
|
|
- @Value("${xxl.job.executor.port:${server.port}}")
|
|
|
- private int port;
|
|
|
+ @Value("${xxl.job.executor.port:}")
|
|
|
+ private Integer port;
|
|
|
|
|
|
@Value("${xxl.job.executor.logpath:./logs/job-executor/application/jobHandler}")
|
|
|
private String logPath;
|
|
@@ -41,11 +46,35 @@ public class XxlJobConfig {
|
|
|
@Value("${xxl.job.executor.logretentiondays:7}")
|
|
|
private int logRetentionDays;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private Environment environment;
|
|
|
+
|
|
|
+ /**应用名称key*/
|
|
|
+ private final static String APPLICATION_NAME="spring.application.name";
|
|
|
+ /**http协议头*/
|
|
|
+ private final static String HTTP_HEAD="http://";
|
|
|
+ /**应用端口*/
|
|
|
+ private final static String SERVER_PORT="server.port";
|
|
|
+
|
|
|
|
|
|
@Bean
|
|
|
public XxlJobSpringExecutor xxlJobExecutor() {
|
|
|
log.info(">>>>>>>>>>> xxl-job config init.");
|
|
|
XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
|
|
|
+ if (StrUtil.isNotBlank(environment.getProperty(APPLICATION_NAME))
|
|
|
+ && StrUtil.isNotBlank(environment.getProperty(SERVER_PORT))
|
|
|
+ && NumberUtil.isNumber(environment.getProperty(SERVER_PORT))){
|
|
|
+ if (StrUtil.isBlank(address)){
|
|
|
+ address=HTTP_HEAD+environment.getProperty(APPLICATION_NAME)
|
|
|
+ +StrUtil.COLON+(NumberUtil.parseInt(environment.getProperty(SERVER_PORT))+1);
|
|
|
+ }
|
|
|
+ if (StrUtil.isBlank(ip)){
|
|
|
+ ip=environment.getProperty(APPLICATION_NAME);
|
|
|
+ }
|
|
|
+ if (ObjectUtil.isNull(port)){
|
|
|
+ port=NumberUtil.parseInt(environment.getProperty(SERVER_PORT))+1;
|
|
|
+ }
|
|
|
+ }
|
|
|
xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
|
|
|
xxlJobSpringExecutor.setAppname(appname);
|
|
|
xxlJobSpringExecutor.setAddress(address);
|