史上最简单的elastic-job整合教程

由于官方没有提供Elastic-Job的Spring Boot Starter,于是我抽时间写了一个Starter,目的当然是使用注解简化XML的配置,下面我们就来看看怎么使用吧:

1.增加elastic-job-spring-boot-starter的Maven依赖

由于目前刚开发完成,也不知道会有多少人需要使用这个Starter,Jar包暂时不传到Maven中央仓库,需要体验的同学直接下载源码编译即可依赖,等后面Star的数量多了起来之后,有比较多的人关注了这个Starter,后面我会传到Maven中央仓库供大家更方便的使用。

1
2
3
4
5
<dependency>
<groupId>com.cxytiandi</groupId>
<artifactId>elastic-job-spring-boot-starter</artifactId>
<version>1.0.0</version>
</dependency>

2.增加Zookeeper注册中心的配置

1
2
elasticJob.zk.serverLists=192.168.10.47:2181
elasticJob.zk.namespace=cxytiandi_job2

Zookeeper配置的前缀是elasticJob.zk

3.开启Elastic-Job自动配置

开启自动配置只需要在Spring Boot的启动类上增加@EnableElasticJob注解

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import java.util.concurrent.CountDownLatch;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import com.cxytiandi.elasticjob.annotation.EnableElasticJob;

/**
* ElasticJob Spring Boot集成案例
*
* @author yinjihuan
*
* @about http://cxytiandi.com/about
*
*/
@SpringBootApplication
@EnableElasticJob
public class JobApplication {

public static void main(String[] args) {
new SpringApplicationBuilder().sources(JobApplication.class).web(false).run(args);
try {
new CountDownLatch(1).await();
} catch (InterruptedException e) {
}
}

}

4.配置任务

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
@ElasticJobConf(name = "MySimpleJob", cron = "0/10 * * * * ?", 
shardingItemParameters = "0=0,1=1", description = "简单任务")
public class MySimpleJob implements SimpleJob {

public void execute(ShardingContext context) {
System.out.println(2/0);
String shardParamter = context.getShardingParameter();
System.out.println("分片参数:"+shardParamter);
int value = Integer.parseInt(shardParamter);
for (int i = 0; i < 1000000; i++) {
if (i % 2 == value) {
String time = new SimpleDateFormat("HH:mm:ss").format(new Date());
System.out.println(time + ":开始执行简单任务" + i);
}
}
}

}

任务的配置只需要在任务类上增加一个ElasticJobConf注解,注解中有很多属性,这些属性都是任务的配置。

到此为止,我们就快速的使用注解发布了一个任务,DataflowJob和ScriptJob的使用方式一样。

参考地址:
https://www.jianshu.com/p/dd3c5b7d7694

更多内容敬请关注:“林老师带你学编程

林老师带你学编程 wechat
欢迎您扫一扫上面的微信公众号,订阅我的博客!