#yyds干货盘点# springboot整合Elastic Job实现分片配置定时任务
Posted 灰太狼_cxh
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了#yyds干货盘点# springboot整合Elastic Job实现分片配置定时任务相关的知识,希望对你有一定的参考价值。
springboot整合Elastic Job实现分片配置定时任务
1.代码实现:
在#yyds干货盘点# springboot整合Elastic Job实现定时任务基础代码上进行修改
创建一个分片执行的定时任务
@Slf4j
@Service
public class MyShardingJob implements SimpleJob
@Override
public void execute(ShardingContext context)
switch (context.getShardingItem())
case 0:
log.info("分片1:执行任务");
break;
case 1:
log.info("分片2:执行任务");
break;
case 2:
log.info("分片3:执行任务");
break;
yml配置
elasticjob:
reg-center:
server-lists: localhost:2181
namespace: cxh
jobs:
#单个
# my-simple-job:
# elastic-job-class: com.cxh.elasticjob.job.MySimpleJob
# cron: 0/5 * * * * ?
# sharding-total-count: 1
#分片
my-sharding-job:
elastic-job-class: com.cxh.elasticjob.job.MyShardingJob
cron: 0/5 * * * * ?
sharding-total-count: 3
server:
port: 8001
2.实现效果:
运行项目1,端口为8001,此时项目1负责3个分片任务
2021-12-29 14:42:55.289 INFO 15872 --- [-sharding-job-2] com.cxh.elasticjob.job.MyShardingJob : 分片2:执行任务
2021-12-29 14:42:55.289 INFO 15872 --- [-sharding-job-1] com.cxh.elasticjob.job.MyShardingJob : 分片1:执行任务
2021-12-29 14:42:55.289 INFO 15872 --- [-sharding-job-3] com.cxh.elasticjob.job.MyShardingJob : 分片3:执行任务
运行项目2,端口改为8002
java -jar elastic-job-0.0.1-SNAPSHOT.jar --server.port=8002
此时项目2负责2个分片任务
2021-12-29 14:44:00.086 INFO 7856 --- [-sharding-job-1] com.cxh.elasticjob.job.MyShardingJob : 分片1:执行任务
2021-12-29 14:44:00.086 INFO 7856 --- [-sharding-job-2] com.cxh.elasticjob.job.MyShardingJob : 分片3:执行任务
2021-12-29 14:44:05.065 INFO 7856 --- [-sharding-job-3] com.cxh.elasticjob.job.MyShardingJob : 分片1:执行任务
2021-12-29 14:44:05.067 INFO 7856 --- [-sharding-job-4] com.cxh.elasticjob.job.MyShardingJob : 分片3:执行任务
项目1负责1个分片任务
2021-12-29 14:45:45.033 INFO 15872 --- [ng-job_Worker-1] com.cxh.elasticjob.job.MyShardingJob : 分片2:执行任务
2021-12-29 14:45:50.039 INFO 15872 --- [ng-job_Worker-1] com.cxh.elasticjob.job.MyShardingJob : 分片2:执行任务
运行项目3,端口改为8003
java -jar elastic-job-0.0.1-SNAPSHOT.jar --server.port=8003
此时3个项目各自负责一个分片任务
运行项目4, 端口改为8004
因为值设置了3个分片任务,所以项目4不负责分片任务。
总结:随着实例数量的增加,可以看到分片的分配发生了变化。这也就意味着,当一个任务开始执行的时候,两个任务执行实例都被利用了起来,这样我们的任务执行和资源利用的效率就可以得到优化。
以上是关于#yyds干货盘点# springboot整合Elastic Job实现分片配置定时任务的主要内容,如果未能解决你的问题,请参考以下文章
#yyds干货盘点# redis | 十四springboot整合redis
#yyds干货盘点# springboot整合JPA访问Mysql
SpringBoot+SpringSecurity系列八:整合JWT #yyds干货盘点#
#yyds干货盘点#jackson学习之九:springboot整合(配置文件)