Spring-boot整合elastic-job分布式调度解决方案

本文介绍了如何将Spring-boot与elastic-job结合,实现分布式调度解决方案,包括添加依赖、配置、创建定时任务以及动态添加任务。同时指出动态添加的任务仅在添加机器上运行的问题。
摘要由CSDN通过智能技术生成

Spring-boot整合elastic-job分布式调度解决方案

文档地址:http://elasticjob.io/docs/elastic-job-lite/00-overview/intro/

源码地址:https://github.com/elasticjob

源码解析:https://blog.csdn.net/spy19881201/article/details/61631799

一、Spring boot 整合

1. 添加依赖【在此只列出额外需要添加的elastic-job依赖的jar】
<!-- ElasticJobAutoConfiguration自动配置类作用-->
<dependency>
    <groupId>com.github.kuhn-he</groupId>
    <artifactId>elastic-job-lite-spring-boot-starter</artifactId>  
    <version>2.1.5</version>
</dependency>
2. 添加相应配置项
elaticjob.zookeeper.server-lists=10.140.6.18:2181,10.140.6.19:2181
elaticjob.zookeeper.namespace=my-project
3. 创建定时任务
import com.dangdang.elasticjob.lite.annotation.ElasticSimpleJob;
import org.springframework.stereotype.Component;
import com.dangdang.ddframe.job.api.ShardingContext;
​
@ElasticSimpleJob(cron = "* * * * * ?", jobName = "test123", shardingTotalCount = 2, jobParameter = "测试参数", shardingItemParameters = "0=A,1=B")
@Component
public class MySimpleJob implements com.dangdang.ddframe.job.api.simple.SimpleJob {
 
​
    @Override
    public void execute(ShardingContext shardingContext) {
 
        System.out.println(String.format("------Thread ID: %s, 任务总片数: %s, " +
                        "当前分片项: %s.当前参数: %s," +
                        "当前任务名称: %s.当前任务参数: %s"
                ,
                Thread.currentThread().getId(),
                shardingContext.getShardingTotalCount(),
                shardingContext.getShardingItem(),
                shardingContext.getShardingParameter(),
                shardingContext.getJobName(),
                shardingContext.getJobParameter()
​
        ));
​
    }
}
4. 启动2个不同端口,查看执行结果

执行: java -jar xxx.jar --server.port=8081

------Thread ID: 83, 任务总片数: 2, 当前分片项: 0.当前参数: A,当前任务名称: com.willow.elasticJob.MySimpleJob.当前任务参数: 
------Thread ID: 84, 任务总片数: 2, 当前分片项: 1.当前参数: B,当前任务名称: com.willow.elasticJob.MySimpleJob.当前任务参数: 
------Thread ID: 89, 任务总片数: 2, 当前分片项: 0.当前参数: A,当前任务名称: com.willow.elasticJob.MySimpleJob.当前任务参数: 
------Thread ID: 90, 任务总片数: 2, 当前分片项: 1.当前参数: B,当前任务名称: com.willow.elasticJob.MySimpleJob.当前任务参数: 

1.2动态添加elastic-job任务

在Spring Boot项目的pom.xml文件中,parent依赖项用于指定项目的父级依赖。引用中提到的spring-boot-starter-parent是Spring Boot官方提供的一个父级依赖,它包含了许多默认的配置和插件,可以方便地创建和构建Spring Boot项目。这个父级依赖主要用于简化项目配置和提供一致性的构建环境。 而spring-boot-parent是Spring Boot老版本中使用的父级依赖,不过在当前的Spring Boot版本中已经不再推荐使用。所以,spring-boot-starter-parent是更常用和推荐的选择,它提供了更多的功能和更新的版本。 总的来说,spring-boot-starter-parent是官方推荐和常用的Spring Boot父级依赖,而spring-boot-parent是老版本中的父级依赖。因此,如果你正在使用较新的Spring Boot版本,建议使用spring-boot-starter-parent来构建你的项目。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [spring-boot-starter-parent-1.5.13.RELEASE.zip](https://download.csdn.net/download/a1135318908/12292638)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [elasticjob-spring-boot-starter:elasticjob-spring-boot-starter](https://download.csdn.net/download/weixin_42120563/16210105)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [IDEA创建springboot项目spring-boot-starter-parent、spring-boot-starter-web爆红「简单」](https://blog.csdn.net/m0_62600503/article/details/127854979)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值