1 xml配置
1.1 整合步骤
- 新建一个web项目
- 导入jar包
- spring5相关的,elastic-job,lombok等
- web.xml配置listener,监听Spring容器
- 在xml中配置zk注册中心,配置simple作业
1. 2 开始整合
新建一个web模块:spring-elatic-job
web.xml: 配置spring上下文监听器
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<display-name>spring-elastic-job</display-name>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:spring-config.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
</web-app>
引入依赖
<properties>
<spring.version>5.1.5.RELEASE</spring.version>
<elastic.job.version>2.1.5</elastic.job.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>com.dangdang</groupId>
<artifactId>elastic-job-lite-core</artifactId>
<version>${elastic.job.version}</version>
</dependency>
<dependency>
<groupId>com.dangdang</groupId>
<artifactId>elastic-job-lite-spring</artifactId>
<version>${elastic.job.version}</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.10</version>
<scope>provided</scope>
</dependency>
实现一个简单的job
package study.wyy.elastic.job.spring;
import com.dangdang.ddframe.job.api.ShardingContext;
import com.dangdang.ddframe.job.api.simple.SimpleJob;
import lombok.extern.slf4j.Slf4j;
/**
* @author by wyaoyao
* @Description
* @Date 2020/11/10 9:46 下午
*/
@Slf4j
public class SpringSimpleJob implements SimpleJob {
public void execute(ShardingContext shardingContext) {
System.out.println("分片总数是: [{"+shardingContext.getShardingTotalCount()+"}]; 当前分片项是: [{"+shardingContext.getShardingItem()+"}]");
}
}
配置job
在spring的配置文件中配置
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:reg="http://www.dangdang.com/schema/ddframe/reg"
xmlns:job="http://www.dangdang.com/schema/ddframe/job"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.dangdang.com/schema/ddframe/reg
http://www.dangdang.com/schema/ddframe/reg/reg.xsd
http://www.dangdang.com/schema/ddframe/job
http://www.dangdang.com/schema/ddframe/job/job.xsd
">
<!--注册中心配置-->
<reg:zookeeper server-lists="localhost:2181" namespace="spring-elastic-job" id="zkCenter"/>
<!--job配置-->
<job:simple id="springElasticJob" registry-center-ref="zkCenter" cron="0/5 * * * * ?" sharding-total-count="2"
class="study.wyy.elastic.job.spring.SpringSimpleJob" overwrite="true"/>
</beans>
配置一个maven tomcat 插件
<build>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<executions>
<execution>
<id>tomcat-run</id>
<goals>
<goal>exec-war-only</goal>
</goals>
<phase>package</phase>
<configuration>
<path>/</path>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
运行
分片总数是: [{2}]; 当前分片项是: [{1}]
分片总数是: [{2}]; 当前分片项是: [{0}]
分片总数是: [{2}]; 当前分片项是: [{1}]
分片总数是: [{2}]; 当前分片项是: [{0}]
分片总数是: [{2}]; 当前分片项是: [{1}]