diff --git a/pom.xml b/pom.xml
index 72b7250..ec267a2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -73,6 +73,13 @@
+
+
+ com.xuxueli
+ xxl-job-core
+ 2.4.2
+
+
diff --git a/src/main/java/com/example/demo/config/XxlJobConfig.java b/src/main/java/com/example/demo/config/XxlJobConfig.java
new file mode 100644
index 0000000..16d6372
--- /dev/null
+++ b/src/main/java/com/example/demo/config/XxlJobConfig.java
@@ -0,0 +1,78 @@
+package com.example.demo.config;
+
+import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * xxl-job config
+ *
+ * @author xuxueli 2017-04-28
+ */
+@Configuration
+public class XxlJobConfig {
+ private Logger logger = LoggerFactory.getLogger(XxlJobConfig.class);
+
+ @Value("${xxl.job.admin.addresses}")
+ private String adminAddresses;
+
+ @Value("${xxl.job.accessToken}")
+ private String accessToken;
+
+ @Value("${xxl.job.executor.appname}")
+ private String appname;
+
+ @Value("${xxl.job.executor.address}")
+ private String address;
+
+ @Value("${xxl.job.executor.ip}")
+ private String ip;
+
+ @Value("${xxl.job.executor.port}")
+ private int port;
+
+ @Value("${xxl.job.executor.logpath}")
+ private String logPath;
+
+ @Value("${xxl.job.executor.logretentiondays}")
+ private int logRetentionDays;
+
+
+ @Bean
+ public XxlJobSpringExecutor xxlJobExecutor() {
+ logger.info(">>>>>>>>>>> xxl-job config init.");
+ XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
+ xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
+ xxlJobSpringExecutor.setAppname(appname);
+ xxlJobSpringExecutor.setAddress(address);
+ xxlJobSpringExecutor.setIp(ip);
+ xxlJobSpringExecutor.setPort(port);
+ xxlJobSpringExecutor.setAccessToken(accessToken);
+ xxlJobSpringExecutor.setLogPath(logPath);
+ xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);
+
+ return xxlJobSpringExecutor;
+ }
+
+ /**
+ * 针对多网卡、容器内部署等情况,可借助 "spring-cloud-commons" 提供的 "InetUtils" 组件灵活定制注册IP;
+ *
+ * 1、引入依赖:
+ *
+ * org.springframework.cloud
+ * spring-cloud-commons
+ * ${version}
+ *
+ *
+ * 2、配置文件,或者容器启动变量
+ * spring.cloud.inetutils.preferred-networks: 'xxx.xxx.xxx.'
+ *
+ * 3、获取IP
+ * String ip_ = inetUtils.findFirstNonLoopbackHostInfo().getIpAddress();
+ */
+
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/example/demo/job/DemoJob.java b/src/main/java/com/example/demo/job/DemoJob.java
new file mode 100644
index 0000000..743de9a
--- /dev/null
+++ b/src/main/java/com/example/demo/job/DemoJob.java
@@ -0,0 +1,13 @@
+package com.example.demo.job;
+
+import com.xxl.job.core.handler.annotation.XxlJob;
+import org.springframework.stereotype.Service;
+
+@Service
+public class DemoJob {
+
+ @XxlJob("demoJobHandler")
+ public void demoJobHandler() throws Exception {
+ System.out.println("I'm job handler, I'm running...");
+ }
+}
diff --git a/src/main/resources/application.yaml b/src/main/resources/application.yaml
index c226a2c..bf83bae 100644
--- a/src/main/resources/application.yaml
+++ b/src/main/resources/application.yaml
@@ -1,3 +1,15 @@
spring:
application:
name: demo
+xxl:
+ job:
+ accessToken: default_token
+ admin:
+ addresses: https://zfmc.petrochina-nk.com.cn/xxl-job-admin
+ executor:
+ appname: nksy-task-demo
+ address:
+ ip:
+ port: 9998
+ logpath: /data/applogs/xxl-job/jobhandler
+ logretentiondays: 3