diff --git a/elastic-job-springboot-core/pom.xml b/elastic-job-springboot-core/pom.xml
new file mode 100644
index 0000000..6fa84a8
--- /dev/null
+++ b/elastic-job-springboot-core/pom.xml
@@ -0,0 +1,19 @@
+
+
+
+ elastic-job-springboot
+ com.example
+ 3.0-SNAPSHOT
+
+ 4.0.0
+
+ elastic-job-springboot-core
+
+
+ 8
+ 8
+
+
+
\ No newline at end of file
diff --git a/src/main/java/com/example/autoconfig/DataflowJobAutoConfig.java b/elastic-job-springboot-core/src/main/java/com/example/config/DataflowJobAutoConfig.java
similarity index 97%
rename from src/main/java/com/example/autoconfig/DataflowJobAutoConfig.java
rename to elastic-job-springboot-core/src/main/java/com/example/config/DataflowJobAutoConfig.java
index eb87ce6..54e74f5 100644
--- a/src/main/java/com/example/autoconfig/DataflowJobAutoConfig.java
+++ b/elastic-job-springboot-core/src/main/java/com/example/config/DataflowJobAutoConfig.java
@@ -1,4 +1,4 @@
-package com.example.autoconfig;
+package com.example.config;
import com.dangdang.ddframe.job.api.dataflow.DataflowJob;
import com.dangdang.ddframe.job.config.JobCoreConfiguration;
@@ -7,6 +7,7 @@ import com.dangdang.ddframe.job.lite.api.JobScheduler;
import com.dangdang.ddframe.job.lite.api.listener.ElasticJobListener;
import com.dangdang.ddframe.job.lite.config.LiteJobConfiguration;
import com.dangdang.ddframe.job.reg.base.CoordinatorRegistryCenter;
+import com.example.jobInstance.ElasticDataflowJob;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
diff --git a/src/main/java/com/example/autoconfig/SimpleJobAutoConfig.java b/elastic-job-springboot-core/src/main/java/com/example/config/SimpleJobAutoConfig.java
similarity index 97%
rename from src/main/java/com/example/autoconfig/SimpleJobAutoConfig.java
rename to elastic-job-springboot-core/src/main/java/com/example/config/SimpleJobAutoConfig.java
index 545557a..94d6deb 100644
--- a/src/main/java/com/example/autoconfig/SimpleJobAutoConfig.java
+++ b/elastic-job-springboot-core/src/main/java/com/example/config/SimpleJobAutoConfig.java
@@ -1,4 +1,4 @@
-package com.example.autoconfig;
+package com.example.config;
import com.dangdang.ddframe.job.api.simple.SimpleJob;
import com.dangdang.ddframe.job.config.JobCoreConfiguration;
@@ -7,6 +7,7 @@ import com.dangdang.ddframe.job.lite.api.JobScheduler;
import com.dangdang.ddframe.job.lite.api.listener.ElasticJobListener;
import com.dangdang.ddframe.job.lite.config.LiteJobConfiguration;
import com.dangdang.ddframe.job.reg.base.CoordinatorRegistryCenter;
+import com.example.jobInstance.ElasticSimpleJob;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
@@ -15,7 +16,6 @@ import org.springframework.context.annotation.Configuration;
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
-import javax.sql.DataSource;
import java.util.Map;
/**
diff --git a/src/main/java/com/example/autoconfig/ZookeeperAutoConfig.java b/elastic-job-springboot-core/src/main/java/com/example/config/ZookeeperAutoConfig.java
similarity index 94%
rename from src/main/java/com/example/autoconfig/ZookeeperAutoConfig.java
rename to elastic-job-springboot-core/src/main/java/com/example/config/ZookeeperAutoConfig.java
index 73330af..1080e6e 100644
--- a/src/main/java/com/example/autoconfig/ZookeeperAutoConfig.java
+++ b/elastic-job-springboot-core/src/main/java/com/example/config/ZookeeperAutoConfig.java
@@ -1,8 +1,9 @@
-package com.example.autoconfig;
+package com.example.config;
import com.dangdang.ddframe.job.reg.base.CoordinatorRegistryCenter;
import com.dangdang.ddframe.job.reg.zookeeper.ZookeeperConfiguration;
import com.dangdang.ddframe.job.reg.zookeeper.ZookeeperRegistryCenter;
+import com.example.config.ZookeeperProperties;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
diff --git a/src/main/java/com/example/autoconfig/ZookeeperProperties.java b/elastic-job-springboot-core/src/main/java/com/example/config/ZookeeperProperties.java
similarity index 93%
rename from src/main/java/com/example/autoconfig/ZookeeperProperties.java
rename to elastic-job-springboot-core/src/main/java/com/example/config/ZookeeperProperties.java
index 0b5dee9..164b5ca 100644
--- a/src/main/java/com/example/autoconfig/ZookeeperProperties.java
+++ b/elastic-job-springboot-core/src/main/java/com/example/config/ZookeeperProperties.java
@@ -1,4 +1,4 @@
-package com.example.autoconfig;
+package com.example.config;
import lombok.Getter;
import lombok.Setter;
diff --git a/src/main/java/com/example/autoconfig/ElasticDataflowJob.java b/elastic-job-springboot-core/src/main/java/com/example/jobInstance/ElasticDataflowJob.java
similarity index 97%
rename from src/main/java/com/example/autoconfig/ElasticDataflowJob.java
rename to elastic-job-springboot-core/src/main/java/com/example/jobInstance/ElasticDataflowJob.java
index 15eb464..180b0c9 100644
--- a/src/main/java/com/example/autoconfig/ElasticDataflowJob.java
+++ b/elastic-job-springboot-core/src/main/java/com/example/jobInstance/ElasticDataflowJob.java
@@ -1,4 +1,4 @@
-package com.example.autoconfig;
+package com.example.jobInstance;
import com.dangdang.ddframe.job.lite.api.listener.ElasticJobListener;
import com.dangdang.ddframe.job.lite.api.strategy.impl.AverageAllocationJobShardingStrategy;
diff --git a/src/main/java/com/example/autoconfig/ElasticSimpleJob.java b/elastic-job-springboot-core/src/main/java/com/example/jobInstance/ElasticSimpleJob.java
similarity index 97%
rename from src/main/java/com/example/autoconfig/ElasticSimpleJob.java
rename to elastic-job-springboot-core/src/main/java/com/example/jobInstance/ElasticSimpleJob.java
index b69a2c7..f34cac5 100644
--- a/src/main/java/com/example/autoconfig/ElasticSimpleJob.java
+++ b/elastic-job-springboot-core/src/main/java/com/example/jobInstance/ElasticSimpleJob.java
@@ -1,4 +1,4 @@
-package com.example.autoconfig;
+package com.example.jobInstance;
import com.dangdang.ddframe.job.lite.api.listener.ElasticJobListener;
import com.dangdang.ddframe.job.lite.api.strategy.impl.AverageAllocationJobShardingStrategy;
diff --git a/src/main/java/com/example/application/job/listener/MyNormalListener.java b/elastic-job-springboot-core/src/main/java/com/example/listener/MyNormalListener.java
similarity index 79%
rename from src/main/java/com/example/application/job/listener/MyNormalListener.java
rename to elastic-job-springboot-core/src/main/java/com/example/listener/MyNormalListener.java
index e464896..8cc9409 100644
--- a/src/main/java/com/example/application/job/listener/MyNormalListener.java
+++ b/elastic-job-springboot-core/src/main/java/com/example/listener/MyNormalListener.java
@@ -1,10 +1,11 @@
-package com.example.application.job.listener;
+package com.example.listener;
-import cn.hutool.core.date.DateUtil;
import com.dangdang.ddframe.job.executor.ShardingContexts;
import com.dangdang.ddframe.job.lite.api.listener.ElasticJobListener;
import lombok.extern.slf4j.Slf4j;
+import java.time.LocalDateTime;
+
/**
* @author q
@@ -19,11 +20,11 @@ public class MyNormalListener implements ElasticJobListener {
*/
@Override
public void beforeJobExecuted(ShardingContexts shardingContexts) {
- log.info("我是 : {} 作业, {}开始执行!", shardingContexts.getJobName(), DateUtil.now());
+ log.info("我是 : {} 作业, {}开始执行!", shardingContexts.getJobName(), LocalDateTime.now());
}
@Override
public void afterJobExecuted(ShardingContexts shardingContexts) {
- log.info("我是 : {} 作业, {}结束执行!", shardingContexts.getJobName(), DateUtil.now());
+ log.info("我是 : {} 作业, {}结束执行!", shardingContexts.getJobName(), LocalDateTime.now());
}
}
diff --git a/src/main/resources/META-INF/spring-configuration-metadata.json b/elastic-job-springboot-core/src/main/resources/META-INF/spring-configuration-metadata.json
similarity index 70%
rename from src/main/resources/META-INF/spring-configuration-metadata.json
rename to elastic-job-springboot-core/src/main/resources/META-INF/spring-configuration-metadata.json
index 91e7898..c369fc3 100644
--- a/src/main/resources/META-INF/spring-configuration-metadata.json
+++ b/elastic-job-springboot-core/src/main/resources/META-INF/spring-configuration-metadata.json
@@ -4,13 +4,13 @@
"name": "elasticjob.zookeeper.namespace",
"type": "java.lang.String",
"description": "Zookeeper 命名空间",
- "sourceType": "com.example.autoconfig.ZookeeperProperties"
+ "sourceType": "com.example.config.ZookeeperProperties"
},
{
"name": "elasticjob.zookeeper.server-list",
"type": "java.lang.String",
"description": "Zookeeper 服务列表",
- "sourceType": "com.example.autoconfig.ZookeeperProperties"
+ "sourceType": "com.example.config.ZookeeperProperties"
}
]
}
\ No newline at end of file
diff --git a/elastic-job-springboot-core/src/main/resources/META-INF/spring.factories b/elastic-job-springboot-core/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..0a42e20
--- /dev/null
+++ b/elastic-job-springboot-core/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,4 @@
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+ com.example.config.ZookeeperAutoConfig,\
+ com.example.config.DataflowJobAutoConfig,\
+ com.example.config.SimpleJobAutoConfig
diff --git a/src/main/resources/application.yml b/elastic-job-springboot-core/src/main/resources/application.yml
similarity index 100%
rename from src/main/resources/application.yml
rename to elastic-job-springboot-core/src/main/resources/application.yml
diff --git a/elastic-job-springboot-test/pom.xml b/elastic-job-springboot-test/pom.xml
new file mode 100644
index 0000000..3f4083c
--- /dev/null
+++ b/elastic-job-springboot-test/pom.xml
@@ -0,0 +1,25 @@
+
+
+
+ elastic-job-springboot
+ com.example
+ 3.0-SNAPSHOT
+
+ 4.0.0
+
+ elastic-job-springboot-test
+
+
+ 8
+ 8
+
+
+
+ com.example
+ elastic-job-springboot-core
+ 2.0-SNAPSHOT
+
+
+
\ No newline at end of file
diff --git a/elastic-job-springboot-test/src/main/java/com/example/DemoJob.java b/elastic-job-springboot-test/src/main/java/com/example/DemoJob.java
new file mode 100644
index 0000000..b1fa6d3
--- /dev/null
+++ b/elastic-job-springboot-test/src/main/java/com/example/DemoJob.java
@@ -0,0 +1,26 @@
+package com.example;
+
+import com.dangdang.ddframe.job.api.ShardingContext;
+import com.dangdang.ddframe.job.api.simple.SimpleJob;
+import com.example.jobInstance.ElasticSimpleJob;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+
+/**
+ * @author wujingtao
+ * @date 2021/11/15
+ */
+@Slf4j
+@ElasticSimpleJob(
+ jobName = "DemoJob", cron = "0 0/1 * * * ?", shardingTotalCount = 1, overwrite = true, jobEvent = false)
+@Component
+public class DemoJob implements SimpleJob {
+ @Override
+ public void execute(ShardingContext shardingContext) {
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+ log.info("定时任务 :{} 启动,{}", "DemoJob", formatter.format(LocalDateTime.now()));
+ }
+}
diff --git a/src/main/java/com/example/application/SpringBootElasticJobApplication.java b/elastic-job-springboot-test/src/main/java/com/example/ElasticJobTestApplication.java
similarity index 53%
rename from src/main/java/com/example/application/SpringBootElasticJobApplication.java
rename to elastic-job-springboot-test/src/main/java/com/example/ElasticJobTestApplication.java
index af2bba7..324a05e 100644
--- a/src/main/java/com/example/application/SpringBootElasticJobApplication.java
+++ b/elastic-job-springboot-test/src/main/java/com/example/ElasticJobTestApplication.java
@@ -1,15 +1,15 @@
-package com.example.application;
+package com.example;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
- * @author q
+ * @author wujingtao
+ * @date 2021/11/15
*/
@SpringBootApplication
-public class SpringBootElasticJobApplication {
-
+public class ElasticJobTestApplication {
public static void main(String[] args) {
- SpringApplication.run(SpringBootElasticJobApplication.class, args);
+ SpringApplication.run(ElasticJobTestApplication.class, args);
}
-}
\ No newline at end of file
+}
diff --git a/pom.xml b/pom.xml
index b565c12..9662969 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,12 @@
com.example
elastic-job-springboot
- 2.0-SNAPSHOT
+ pom
+ 3.0-SNAPSHOT
+
+ elastic-job-springboot-core
+ elastic-job-springboot-test
+
8
@@ -19,11 +24,11 @@
spring-boot-starter-web
2.3.2.RELEASE
-
- org.springframework.boot
- spring-boot-starter-test
- 2.3.2.RELEASE
-
+
+
+
+
+
org.springframework.boot
spring-boot-configuration-processor
@@ -40,16 +45,11 @@
elastic-job-lite-core
2.1.5
-
- com.dangdang
- elastic-job-lite-spring
- 2.1.5
-
-
- cn.hutool
- hutool-all
- 5.4.0
-
+
+
+
+
+
${project.name}
diff --git a/src/main/java/com/example/autoconfig/sharding/MyshardingStrategy.java b/src/main/java/com/example/autoconfig/sharding/MyshardingStrategy.java
deleted file mode 100644
index eabfbad..0000000
--- a/src/main/java/com/example/autoconfig/sharding/MyshardingStrategy.java
+++ /dev/null
@@ -1,56 +0,0 @@
-package com.example.autoconfig.sharding;
-
-import com.dangdang.ddframe.job.lite.api.strategy.JobInstance;
-import com.dangdang.ddframe.job.lite.api.strategy.JobShardingStrategy;
-import org.springframework.util.CollectionUtils;
-
-import java.util.*;
-
-/**
- * 自定义分片策略 - 实现全轮询算法
- *
- * @author q
- */
-public class MyshardingStrategy implements JobShardingStrategy {
-
-
- /**
- * @param jobInstances 所有有效的服务
- * @param jobName 作业名称
- * @param shardingTotalCount 分片总数
- * @return 实例 所获取的分片项
- */
- @Override
- public Map> sharding(List jobInstances, String jobName, int shardingTotalCount) {
-
- // 创建返回值容器
- Map> rtnMap = new HashMap<>(10);
-
- // 创建队列模型
- // fixme 这个队列可以自行进行选择
- ArrayDeque queue = new ArrayDeque<>(shardingTotalCount);
-
- for (int i = 0; i < shardingTotalCount; i++) {
- queue.add(i);
- }
-
- // 轮询
- while (queue.size() > 0) {
- for (JobInstance jobInstance : jobInstances) {
- if (queue.size() > 0){
- Integer shardingItem = queue.pop();
- List shardingItemList = rtnMap.get(jobInstance);
- if (CollectionUtils.isEmpty(shardingItemList)){
- ArrayList list = new ArrayList<>(100);
- list.add(shardingItem);
- rtnMap.put(jobInstance, shardingItemList);
- }else {
- shardingItemList.add(shardingItem);
- }
- }
- }
- }
-
- return rtnMap;
- }
-}
diff --git a/src/main/resources/META-INF/spring.factories b/src/main/resources/META-INF/spring.factories
deleted file mode 100644
index 0d6988f..0000000
--- a/src/main/resources/META-INF/spring.factories
+++ /dev/null
@@ -1,4 +0,0 @@
-org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
- com.example.autoconfig.ZookeeperAutoConfig,\
- com.example.autoconfig.DataflowJobAutoConfig,\
- com.example.autoconfig.SimpleJobAutoConfig