天下之事常成于困约,而败于奢靡。这篇文章主要讲述#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.289INFO 15872 --- [-sharding-job-2] com.cxh.elasticjob.job.MyShardingJob: 分片2:执行任务
2021-12-29 14:42:55.289INFO 15872 --- [-sharding-job-1] com.cxh.elasticjob.job.MyShardingJob: 分片1:执行任务
2021-12-29 14:42:55.289INFO 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.086INFO 7856 --- [-sharding-job-1] com.cxh.elasticjob.job.MyShardingJob: 分片1:执行任务
2021-12-29 14:44:00.086INFO 7856 --- [-sharding-job-2] com.cxh.elasticjob.job.MyShardingJob: 分片3:执行任务
2021-12-29 14:44:05.065INFO 7856 --- [-sharding-job-3] com.cxh.elasticjob.job.MyShardingJob: 分片1:执行任务
2021-12-29 14:44:05.067INFO 7856 --- [-sharding-job-4] com.cxh.elasticjob.job.MyShardingJob: 分片3:执行任务
项目1负责1个分片任务
2021-12-29 14:45:45.033INFO 15872 --- [ng-job_Worker-1] com.cxh.elasticjob.job.MyShardingJob: 分片2:执行任务
2021-12-29 14:45:50.039INFO 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实现分片配置定时任务】
推荐阅读
- Uva699 The Falling Leaves
- Uva122 Trees on the level
- Java 将PPT转为OFD
- 向自定义WordPress主题添加菜单支持
- 将jquery和自定义脚本添加到WordPress主题
- 将额外字段添加到WordPress用户配置文件
- 在WordPress子主题中添加自定义脚本
- 在wordpress中为ul添加类
- 将类添加到menu_class到wp_nav_menu中,将类添加到div而不是ul