summaryrefslogtreecommitdiff
path: root/xxl-job-executor-samples/xxl-job-executor-sample-springboot
diff options
context:
space:
mode:
Diffstat (limited to 'xxl-job-executor-samples/xxl-job-executor-sample-springboot')
-rw-r--r--xxl-job-executor-samples/xxl-job-executor-sample-springboot/pom.xml74
-rw-r--r--xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/java/com/xxl/job/executor/XxlJobExecutorApplication.java16
-rw-r--r--xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/java/com/xxl/job/executor/core/config/XxlJobConfig.java74
-rw-r--r--xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/java/com/xxl/job/executor/mvc/controller/IndexController.java18
-rw-r--r--xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/java/com/xxl/job/executor/service/jobhandler/SampleXxlJob.java197
-rw-r--r--xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/resources/application.properties22
-rw-r--r--xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/resources/logback.xml29
-rw-r--r--xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/test/java/com/xxl/job/executor/test/XxlJobExecutorExampleBootApplicationTests.java17
-rw-r--r--xxl-job-executor-samples/xxl-job-executor-sample-springboot/target/classes/application.properties22
-rw-r--r--xxl-job-executor-samples/xxl-job-executor-sample-springboot/target/classes/com/xxl/job/executor/XxlJobExecutorApplication.classbin0 -> 742 bytes
-rw-r--r--xxl-job-executor-samples/xxl-job-executor-sample-springboot/target/classes/com/xxl/job/executor/core/config/XxlJobConfig.classbin0 -> 1932 bytes
-rw-r--r--xxl-job-executor-samples/xxl-job-executor-sample-springboot/target/classes/com/xxl/job/executor/service/jobhandler/SampleXxlJob.classbin0 -> 6160 bytes
-rw-r--r--xxl-job-executor-samples/xxl-job-executor-sample-springboot/target/classes/logback.xml29
-rw-r--r--xxl-job-executor-samples/xxl-job-executor-sample-springboot/target/test-classes/com/xxl/job/executor/test/XxlJobExecutorExampleBootApplicationTests.classbin0 -> 695 bytes
-rw-r--r--xxl-job-executor-samples/xxl-job-executor-sample-springboot/xxl-job-executor-sample-springboot.iml82
15 files changed, 580 insertions, 0 deletions
diff --git a/xxl-job-executor-samples/xxl-job-executor-sample-springboot/pom.xml b/xxl-job-executor-samples/xxl-job-executor-sample-springboot/pom.xml
new file mode 100644
index 0000000..e46f77e
--- /dev/null
+++ b/xxl-job-executor-samples/xxl-job-executor-sample-springboot/pom.xml
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>com.xuxueli</groupId>
+ <artifactId>xxl-job-executor-samples</artifactId>
+ <version>2.2.0-SNAPSHOT</version>
+ </parent>
+ <artifactId>xxl-job-executor-sample-springboot</artifactId>
+ <packaging>jar</packaging>
+
+ <name>${project.artifactId}</name>
+ <description>Example executor project for spring boot.</description>
+ <url>https://www.xuxueli.com/</url>
+
+ <properties>
+ </properties>
+
+ <dependencyManagement>
+ <dependencies>
+ <dependency>
+ <!-- Import dependency management from Spring Boot (依赖管理:继承一些默认的依赖,工程需要依赖的jar包的管理,申明其他dependency的时候就不需要version) -->
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-parent</artifactId>
+ <version>${spring-boot.version}</version>
+ <type>pom</type>
+ <scope>import</scope>
+ </dependency>
+ </dependencies>
+ </dependencyManagement>
+
+ <dependencies>
+ <!-- spring-boot-starter-web (spring-webmvc + tomcat) -->
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-web</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-test</artifactId>
+ <scope>test</scope>
+ </dependency>
+
+ <!-- xxl-job-core -->
+ <dependency>
+ <groupId>com.xuxueli</groupId>
+ <artifactId>xxl-job-core</artifactId>
+ <version>${project.parent.version}</version>
+ </dependency>
+
+ </dependencies>
+
+ <build>
+ <plugins>
+ <!-- spring-boot-maven-plugin (提供了直接运行项目的插件:如果是通过parent方式继承spring-boot-starter-parent则不用此插件) -->
+ <plugin>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-maven-plugin</artifactId>
+ <version>${spring-boot.version}</version>
+ <executions>
+ <execution>
+ <goals>
+ <goal>repackage</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+
+
+</project> \ No newline at end of file
diff --git a/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/java/com/xxl/job/executor/XxlJobExecutorApplication.java b/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/java/com/xxl/job/executor/XxlJobExecutorApplication.java
new file mode 100644
index 0000000..d427acc
--- /dev/null
+++ b/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/java/com/xxl/job/executor/XxlJobExecutorApplication.java
@@ -0,0 +1,16 @@
+package com.xxl.job.executor;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+/**
+ * @author xuxueli 2018-10-28 00:38:13
+ */
+@SpringBootApplication
+public class XxlJobExecutorApplication {
+
+ public static void main(String[] args) {
+ SpringApplication.run(XxlJobExecutorApplication.class, args);
+ }
+
+} \ No newline at end of file
diff --git a/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/java/com/xxl/job/executor/core/config/XxlJobConfig.java b/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/java/com/xxl/job/executor/core/config/XxlJobConfig.java
new file mode 100644
index 0000000..0ac3a3d
--- /dev/null
+++ b/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/java/com/xxl/job/executor/core/config/XxlJobConfig.java
@@ -0,0 +1,74 @@
+package com.xxl.job.executor.core.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.executor.appname}")
+ private String appName;
+
+ @Value("${xxl.job.executor.ip}")
+ private String ip;
+
+ @Value("${xxl.job.executor.port}")
+ private int port;
+
+ @Value("${xxl.job.accessToken}")
+ private String accessToken;
+
+ @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.setIp(ip);
+ xxlJobSpringExecutor.setPort(port);
+ xxlJobSpringExecutor.setAccessToken(accessToken);
+ xxlJobSpringExecutor.setLogPath(logPath);
+ xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);
+
+ return xxlJobSpringExecutor;
+ }
+
+ /**
+ * 针对多网卡、容器内部署等情况,可借助 "spring-cloud-commons" 提供的 "InetUtils" 组件灵活定制注册IP;
+ *
+ * 1、引入依赖:
+ * <dependency>
+ * <groupId>org.springframework.cloud</groupId>
+ * <artifactId>spring-cloud-commons</artifactId>
+ * <version>${version}</version>
+ * </dependency>
+ *
+ * 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/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/java/com/xxl/job/executor/mvc/controller/IndexController.java b/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/java/com/xxl/job/executor/mvc/controller/IndexController.java
new file mode 100644
index 0000000..37c9071
--- /dev/null
+++ b/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/java/com/xxl/job/executor/mvc/controller/IndexController.java
@@ -0,0 +1,18 @@
+//package com.xxl.job.executor.mvc.controller;
+//
+//import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
+//import org.springframework.stereotype.Controller;
+//import org.springframework.web.bind.annotation.RequestMapping;
+//import org.springframework.web.bind.annotation.ResponseBody;
+//
+//@Controller
+//@EnableAutoConfiguration
+//public class IndexController {
+//
+// @RequestMapping("/")
+// @ResponseBody
+// String index() {
+// return "xxl job executor running.";
+// }
+//
+//} \ No newline at end of file
diff --git a/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/java/com/xxl/job/executor/service/jobhandler/SampleXxlJob.java b/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/java/com/xxl/job/executor/service/jobhandler/SampleXxlJob.java
new file mode 100644
index 0000000..b895bcf
--- /dev/null
+++ b/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/java/com/xxl/job/executor/service/jobhandler/SampleXxlJob.java
@@ -0,0 +1,197 @@
+package com.xxl.job.executor.service.jobhandler;
+
+import com.xxl.job.core.biz.model.ReturnT;
+import com.xxl.job.core.handler.IJobHandler;
+import com.xxl.job.core.handler.annotation.XxlJob;
+import com.xxl.job.core.log.XxlJobLogger;
+import com.xxl.job.core.util.ShardingUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Component;
+
+import java.io.BufferedInputStream;
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * XxlJob开发示例(Bean模式)
+ *
+ * 开发步骤:
+ * 1、在Spring Bean实例中,开发Job方法,方式格式要求为 "public ReturnT<String> execute(String param)"
+ * 2、为Job方法添加注解 "@XxlJob(value="自定义jobhandler名称", init = "JobHandler初始化方法", destroy = "JobHandler销毁方法")",注解value值对应的是调度中心新建任务的JobHandler属性的值。
+ * 3、执行日志:需要通过 "XxlJobLogger.log" 打印执行日志;
+ *
+ * @author xuxueli 2019-12-11 21:52:51
+ */
+@Component
+public class SampleXxlJob {
+ private static Logger logger = LoggerFactory.getLogger(SampleXxlJob.class);
+
+
+ /**
+ * 1、简单任务示例(Bean模式)
+ */
+ @XxlJob("demoJobHandler")
+ public ReturnT<String> demoJobHandler(String param) throws Exception {
+ XxlJobLogger.log("XXL-JOB, Hello World.");
+
+ for (int i = 0; i < 5; i++) {
+ XxlJobLogger.log("beat at:" + i);
+ TimeUnit.SECONDS.sleep(2);
+ }
+ return ReturnT.SUCCESS;
+ }
+
+
+ /**
+ * 2、分片广播任务
+ */
+ @XxlJob("shardingJobHandler")
+ public ReturnT<String> shardingJobHandler(String param) throws Exception {
+
+ // 分片参数
+ ShardingUtil.ShardingVO shardingVO = ShardingUtil.getShardingVo();
+ XxlJobLogger.log("分片参数:当前分片序号 = {}, 总分片数 = {}", shardingVO.getIndex(), shardingVO.getTotal());
+
+ // 业务逻辑
+ for (int i = 0; i < shardingVO.getTotal(); i++) {
+ if (i == shardingVO.getIndex()) {
+ XxlJobLogger.log("第 {} 片, 命中分片开始处理", i);
+ } else {
+ XxlJobLogger.log("第 {} 片, 忽略", i);
+ }
+ }
+
+ return ReturnT.SUCCESS;
+ }
+
+
+ /**
+ * 3、命令行任务
+ */
+ @XxlJob("commandJobHandler")
+ public ReturnT<String> commandJobHandler(String param) throws Exception {
+ String command = param;
+ int exitValue = -1;
+
+ BufferedReader bufferedReader = null;
+ try {
+ // command process
+ Process process = Runtime.getRuntime().exec(command);
+ BufferedInputStream bufferedInputStream = new BufferedInputStream(process.getInputStream());
+ bufferedReader = new BufferedReader(new InputStreamReader(bufferedInputStream));
+
+ // command log
+ String line;
+ while ((line = bufferedReader.readLine()) != null) {
+ XxlJobLogger.log(line);
+ }
+
+ // command exit
+ process.waitFor();
+ exitValue = process.exitValue();
+ } catch (Exception e) {
+ XxlJobLogger.log(e);
+ } finally {
+ if (bufferedReader != null) {
+ bufferedReader.close();
+ }
+ }
+
+ if (exitValue == 0) {
+ return IJobHandler.SUCCESS;
+ } else {
+ return new ReturnT<String>(IJobHandler.FAIL.getCode(), "command exit value("+exitValue+") is failed");
+ }
+ }
+
+
+ /**
+ * 4、跨平台Http任务
+ */
+ @XxlJob("httpJobHandler")
+ public ReturnT<String> httpJobHandler(String param) throws Exception {
+
+ // request
+ HttpURLConnection connection = null;
+ BufferedReader bufferedReader = null;
+ try {
+ // connection
+ URL realUrl = new URL(param);
+ connection = (HttpURLConnection) realUrl.openConnection();
+
+ // connection setting
+ connection.setRequestMethod("GET");
+ connection.setDoOutput(true);
+ connection.setDoInput(true);
+ connection.setUseCaches(false);
+ connection.setReadTimeout(5 * 1000);
+ connection.setConnectTimeout(3 * 1000);
+ connection.setRequestProperty("connection", "Keep-Alive");
+ connection.setRequestProperty("Content-Type", "application/json;charset=UTF-8");
+ connection.setRequestProperty("Accept-Charset", "application/json;charset=UTF-8");
+
+ // do connection
+ connection.connect();
+
+ //Map<String, List<String>> map = connection.getHeaderFields();
+
+ // valid StatusCode
+ int statusCode = connection.getResponseCode();
+ if (statusCode != 200) {
+ throw new RuntimeException("Http Request StatusCode(" + statusCode + ") Invalid.");
+ }
+
+ // result
+ bufferedReader = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));
+ StringBuilder result = new StringBuilder();
+ String line;
+ while ((line = bufferedReader.readLine()) != null) {
+ result.append(line);
+ }
+ String responseMsg = result.toString();
+
+ XxlJobLogger.log(responseMsg);
+ return ReturnT.SUCCESS;
+ } catch (Exception e) {
+ XxlJobLogger.log(e);
+ return ReturnT.FAIL;
+ } finally {
+ try {
+ if (bufferedReader != null) {
+ bufferedReader.close();
+ }
+ if (connection != null) {
+ connection.disconnect();
+ }
+ } catch (Exception e2) {
+ XxlJobLogger.log(e2);
+ }
+ }
+
+ }
+
+ /**
+ * 5、生命周期任务示例:任务初始化与销毁时,支持自定义相关逻辑;
+ */
+ @XxlJob(value = "demoJobHandler2", init = "init", destroy = "destroy")
+ public ReturnT<String> demoJobHandler2(String param) throws Exception {
+ XxlJobLogger.log("XXL-JOB, Hello World.");
+ return ReturnT.SUCCESS;
+ }
+
+
+
+
+ public void init(){
+ logger.info("init");
+ }
+ public void destroy(){
+ logger.info("destory");
+ }
+
+
+}
diff --git a/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/resources/application.properties b/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/resources/application.properties
new file mode 100644
index 0000000..7b8865f
--- /dev/null
+++ b/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/resources/application.properties
@@ -0,0 +1,22 @@
+# web port
+server.port=8081
+
+# log config
+logging.config=classpath:logback.xml
+
+
+### xxl-job admin address list, such as "http://address" or "http://address01,http://address02"
+xxl.job.admin.addresses=http://127.0.0.1:8080/xxl-job-admin
+
+### xxl-job executor address
+xxl.job.executor.appname=xxl-job-executor-sample
+xxl.job.executor.ip=
+xxl.job.executor.port=9996
+
+### xxl-job, access token
+xxl.job.accessToken=
+
+### xxl-job log path
+xxl.job.executor.logpath=./data/applogs/xxl-job/jobhandler
+### xxl-job log retention days
+xxl.job.executor.logretentiondays=30
diff --git a/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/resources/logback.xml b/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/resources/logback.xml
new file mode 100644
index 0000000..66b325f
--- /dev/null
+++ b/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/resources/logback.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration debug="false" scan="true" scanPeriod="1 seconds">
+
+ <contextName>logback</contextName>
+ <property name="log.path" value="./data/applogs/xxl-job/xxl-job-executor-sample-springboot.log"/>
+
+ <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
+ <encoder>
+ <pattern>%d{HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n</pattern>
+ </encoder>
+ </appender>
+
+ <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${log.path}</file>
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${log.path}.%d{yyyy-MM-dd}.zip</fileNamePattern>
+ </rollingPolicy>
+ <encoder>
+ <pattern>%date %level [%thread] %logger{36} [%file : %line] %msg%n
+ </pattern>
+ </encoder>
+ </appender>
+
+ <root level="info">
+ <appender-ref ref="console"/>
+ <appender-ref ref="file"/>
+ </root>
+
+</configuration> \ No newline at end of file
diff --git a/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/test/java/com/xxl/job/executor/test/XxlJobExecutorExampleBootApplicationTests.java b/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/test/java/com/xxl/job/executor/test/XxlJobExecutorExampleBootApplicationTests.java
new file mode 100644
index 0000000..fdccb3b
--- /dev/null
+++ b/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/test/java/com/xxl/job/executor/test/XxlJobExecutorExampleBootApplicationTests.java
@@ -0,0 +1,17 @@
+package com.xxl.job.executor.test;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+@RunWith(SpringRunner.class)
+@SpringBootTest
+public class XxlJobExecutorExampleBootApplicationTests {
+
+ @Test
+ public void test() {
+
+ }
+
+} \ No newline at end of file
diff --git a/xxl-job-executor-samples/xxl-job-executor-sample-springboot/target/classes/application.properties b/xxl-job-executor-samples/xxl-job-executor-sample-springboot/target/classes/application.properties
new file mode 100644
index 0000000..7b8865f
--- /dev/null
+++ b/xxl-job-executor-samples/xxl-job-executor-sample-springboot/target/classes/application.properties
@@ -0,0 +1,22 @@
+# web port
+server.port=8081
+
+# log config
+logging.config=classpath:logback.xml
+
+
+### xxl-job admin address list, such as "http://address" or "http://address01,http://address02"
+xxl.job.admin.addresses=http://127.0.0.1:8080/xxl-job-admin
+
+### xxl-job executor address
+xxl.job.executor.appname=xxl-job-executor-sample
+xxl.job.executor.ip=
+xxl.job.executor.port=9996
+
+### xxl-job, access token
+xxl.job.accessToken=
+
+### xxl-job log path
+xxl.job.executor.logpath=./data/applogs/xxl-job/jobhandler
+### xxl-job log retention days
+xxl.job.executor.logretentiondays=30
diff --git a/xxl-job-executor-samples/xxl-job-executor-sample-springboot/target/classes/com/xxl/job/executor/XxlJobExecutorApplication.class b/xxl-job-executor-samples/xxl-job-executor-sample-springboot/target/classes/com/xxl/job/executor/XxlJobExecutorApplication.class
new file mode 100644
index 0000000..48038f7
--- /dev/null
+++ b/xxl-job-executor-samples/xxl-job-executor-sample-springboot/target/classes/com/xxl/job/executor/XxlJobExecutorApplication.class
Binary files differ
diff --git a/xxl-job-executor-samples/xxl-job-executor-sample-springboot/target/classes/com/xxl/job/executor/core/config/XxlJobConfig.class b/xxl-job-executor-samples/xxl-job-executor-sample-springboot/target/classes/com/xxl/job/executor/core/config/XxlJobConfig.class
new file mode 100644
index 0000000..69dc558
--- /dev/null
+++ b/xxl-job-executor-samples/xxl-job-executor-sample-springboot/target/classes/com/xxl/job/executor/core/config/XxlJobConfig.class
Binary files differ
diff --git a/xxl-job-executor-samples/xxl-job-executor-sample-springboot/target/classes/com/xxl/job/executor/service/jobhandler/SampleXxlJob.class b/xxl-job-executor-samples/xxl-job-executor-sample-springboot/target/classes/com/xxl/job/executor/service/jobhandler/SampleXxlJob.class
new file mode 100644
index 0000000..205995a
--- /dev/null
+++ b/xxl-job-executor-samples/xxl-job-executor-sample-springboot/target/classes/com/xxl/job/executor/service/jobhandler/SampleXxlJob.class
Binary files differ
diff --git a/xxl-job-executor-samples/xxl-job-executor-sample-springboot/target/classes/logback.xml b/xxl-job-executor-samples/xxl-job-executor-sample-springboot/target/classes/logback.xml
new file mode 100644
index 0000000..66b325f
--- /dev/null
+++ b/xxl-job-executor-samples/xxl-job-executor-sample-springboot/target/classes/logback.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration debug="false" scan="true" scanPeriod="1 seconds">
+
+ <contextName>logback</contextName>
+ <property name="log.path" value="./data/applogs/xxl-job/xxl-job-executor-sample-springboot.log"/>
+
+ <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
+ <encoder>
+ <pattern>%d{HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n</pattern>
+ </encoder>
+ </appender>
+
+ <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${log.path}</file>
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${log.path}.%d{yyyy-MM-dd}.zip</fileNamePattern>
+ </rollingPolicy>
+ <encoder>
+ <pattern>%date %level [%thread] %logger{36} [%file : %line] %msg%n
+ </pattern>
+ </encoder>
+ </appender>
+
+ <root level="info">
+ <appender-ref ref="console"/>
+ <appender-ref ref="file"/>
+ </root>
+
+</configuration> \ No newline at end of file
diff --git a/xxl-job-executor-samples/xxl-job-executor-sample-springboot/target/test-classes/com/xxl/job/executor/test/XxlJobExecutorExampleBootApplicationTests.class b/xxl-job-executor-samples/xxl-job-executor-sample-springboot/target/test-classes/com/xxl/job/executor/test/XxlJobExecutorExampleBootApplicationTests.class
new file mode 100644
index 0000000..e44388d
--- /dev/null
+++ b/xxl-job-executor-samples/xxl-job-executor-sample-springboot/target/test-classes/com/xxl/job/executor/test/XxlJobExecutorExampleBootApplicationTests.class
Binary files differ
diff --git a/xxl-job-executor-samples/xxl-job-executor-sample-springboot/xxl-job-executor-sample-springboot.iml b/xxl-job-executor-samples/xxl-job-executor-sample-springboot/xxl-job-executor-sample-springboot.iml
new file mode 100644
index 0000000..1474773
--- /dev/null
+++ b/xxl-job-executor-samples/xxl-job-executor-sample-springboot/xxl-job-executor-sample-springboot.iml
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
+ <component name="FacetManager">
+ <facet type="Spring" name="Spring">
+ <configuration />
+ </facet>
+ <facet type="web" name="Web">
+ <configuration>
+ <webroots />
+ <sourceRoots>
+ <root url="file://$MODULE_DIR$/src/main/java" />
+ <root url="file://$MODULE_DIR$/src/main/resources" />
+ </sourceRoots>
+ </configuration>
+ </facet>
+ </component>
+ <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_7">
+ <output url="file://$MODULE_DIR$/target/classes" />
+ <output-test url="file://$MODULE_DIR$/target/test-classes" />
+ <content url="file://$MODULE_DIR$">
+ <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
+ <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
+ <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
+ <excludeFolder url="file://$MODULE_DIR$/target" />
+ </content>
+ <orderEntry type="inheritedJdk" />
+ <orderEntry type="sourceFolder" forTests="false" />
+ <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:1.5.22.RELEASE" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:1.5.22.RELEASE" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:1.5.22.RELEASE" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:1.5.22.RELEASE" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-logging:1.5.22.RELEASE" level="project" />
+ <orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.1.11" level="project" />
+ <orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.1.11" level="project" />
+ <orderEntry type="library" name="Maven: org.slf4j:jcl-over-slf4j:1.7.26" level="project" />
+ <orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.26" level="project" />
+ <orderEntry type="library" name="Maven: org.slf4j:log4j-over-slf4j:1.7.26" level="project" />
+ <orderEntry type="library" scope="RUNTIME" name="Maven: org.yaml:snakeyaml:1.17" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-tomcat:1.5.22.RELEASE" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:8.5.43" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.tomcat:tomcat-annotations-api:8.5.43" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-el:8.5.43" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-websocket:8.5.43" level="project" />
+ <orderEntry type="library" name="Maven: org.hibernate:hibernate-validator:5.3.6.Final" level="project" />
+ <orderEntry type="library" name="Maven: javax.validation:validation-api:1.1.0.Final" level="project" />
+ <orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.3.2.Final" level="project" />
+ <orderEntry type="library" name="Maven: com.fasterxml:classmate:1.3.4" level="project" />
+ <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.8.11.3" level="project" />
+ <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.8.0" level="project" />
+ <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.8.11" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework:spring-web:4.3.25.RELEASE" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework:spring-aop:4.3.25.RELEASE" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework:spring-beans:4.3.25.RELEASE" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework:spring-context:4.3.25.RELEASE" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework:spring-webmvc:4.3.25.RELEASE" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework:spring-expression:4.3.25.RELEASE" level="project" />
+ <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-starter-test:1.5.22.RELEASE" level="project" />
+ <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test:1.5.22.RELEASE" level="project" />
+ <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test-autoconfigure:1.5.22.RELEASE" level="project" />
+ <orderEntry type="library" scope="TEST" name="Maven: com.jayway.jsonpath:json-path:2.2.0" level="project" />
+ <orderEntry type="library" scope="TEST" name="Maven: net.minidev:json-smart:2.2.1" level="project" />
+ <orderEntry type="library" scope="TEST" name="Maven: net.minidev:accessors-smart:1.1" level="project" />
+ <orderEntry type="library" scope="TEST" name="Maven: org.ow2.asm:asm:5.0.3" level="project" />
+ <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.26" level="project" />
+ <orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.12" level="project" />
+ <orderEntry type="library" scope="TEST" name="Maven: org.assertj:assertj-core:2.6.0" level="project" />
+ <orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-core:1.10.19" level="project" />
+ <orderEntry type="library" scope="TEST" name="Maven: org.objenesis:objenesis:2.1" level="project" />
+ <orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
+ <orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-library:1.3" level="project" />
+ <orderEntry type="library" scope="TEST" name="Maven: org.skyscreamer:jsonassert:1.4.0" level="project" />
+ <orderEntry type="library" scope="TEST" name="Maven: com.vaadin.external.google:android-json:0.0.20131108.vaadin1" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework:spring-core:4.3.25.RELEASE" level="project" />
+ <orderEntry type="library" scope="TEST" name="Maven: org.springframework:spring-test:4.3.25.RELEASE" level="project" />
+ <orderEntry type="module" module-name="xxl-job-core" />
+ <orderEntry type="library" name="Maven: com.xuxueli:xxl-rpc-core:1.5.0" level="project" />
+ <orderEntry type="library" name="Maven: io.netty:netty-all:4.1.43.Final" level="project" />
+ <orderEntry type="library" name="Maven: com.caucho:hessian:4.0.63" level="project" />
+ <orderEntry type="library" name="Maven: com.xuxueli:xxl-registry-client:1.1.0" level="project" />
+ <orderEntry type="library" name="Maven: org.codehaus.groovy:groovy:2.4.17" level="project" />
+ </component>
+</module> \ No newline at end of file