【springboot】集成xxl-job(分布式任务调度平台)
xxl-job
xxl-job: 是一个分布式任务调度平台,核心设计目标是开发迅速、学习简单、轻量级、易扩展。
项目地址:https://gitcode.com/gh_mirrors/xx/xxl-job
免费下载资源
·
XXL-JOB是一个分布式任务调度平台,具有丰富的功能和良好的扩展性。
-
架构设计:
- 调度中心:作为整个系统的控制中心,负责任务的分发、执行监控以及结果收集等功能。它可以通过HTTP方式向执行器发送调度请求,也可以接收执行器主动推送的任务执行结果。
- 执行器:部署在各个业务服务节点上,负责接收调度中心的任务调度指令并执行相应的任务逻辑。每个执行器可以独立运行,它们之间互不影响,能够灵活地进行扩容和缩容。
-
任务类型:
- 一次性任务:只执行一次的任务,比如初始化数据导入。
- 定时任务:基于Cron表达式定期执行的任务。
- 手动执行任务:支持用户手动触发执行的任务。
-
核心功能:
- 分布式调度:支持跨机器、跨数据中心部署执行器,调度中心可以根据执行器的负载情况进行智能调度。
- 弹性伸缩:执行器可以动态上下线,上线后自动加载任务,下线后自动转移任务至其他执行器。
- 任务执行跟踪与日志:对每个任务执行过程进行详细的记录,包括开始时间、结束时间、耗时、状态(成功、失败)、错误信息、执行日志等。
- 失败重试与报警:任务执行失败后支持重试,且有完善的报警机制,如邮件通知、企业微信、钉钉等。
- 任务阻塞处理策略:对于执行超时或者业务异常导致的任务长时间阻塞,可以设置超时后杀死任务进程,防止故障蔓延。
-
使用方法:
- 在Spring Boot项目中集成XXL-JOB,首先需要引入相关依赖并配置执行器基本信息,如执行器地址、AppName等。
- 创建任务处理器(IJobHandler的实现类),并在其中编写具体业务逻辑。
- 登录XXL-JOB的调度中心Web界面,添加新的任务并关联已定义好的任务处理器,设置好任务类型、执行参数、触发规则等属性。
总之,XXL-JOB提供了一种简单而强大的分布式任务调度解决方案,广泛应用于数据同步、定时统计、定时邮件发送等各种定时任务场景。
SpringBoot集成XXL-JOB分布式任务调度平台,主要包括以下步骤:
- 添加依赖
在SpringBoot项目的pom.xml文件中添加XXL-JOB的starter依赖:
<dependency>
<groupId>com.xuxueli</groupId>
<artifactId>xxl-job-core</artifactId>
<version>{latest-version}</version>
</dependency>
请将{latest-version}
替换为XXL-JOB的最新版本号。
- 配置XXL-JOB
在application.yml或application.properties中配置XXL-JOB的相关信息,例如:
# application.yml
xxl:
job:
admin:
addresses: http://localhost:8080/xxl-job-admin # 调度中心部署跟地址
executor:
appname: demoApp # 执行器AppName
address: localhost:9999 # 执行器注册地址
ip: localhost # 执行器IP
port: 9999 # 执行器端口
logpath: /data/applogs/xxl-job/jobhandler # 执行器日志路径
logretentiondays: 30 # 日志保留天数
- 创建执行器
创建一个继承自com.xxl.job.core.executor.XxlJobExecutor
的类,并在Spring Boot的主类中通过@Bean注解注入到Spring容器中:
import com.xxl.job.core.executor.impl.XxlJobExecutor;
@Configuration
public class XxlJobConfig {
@Bean
public XxlJobExecutor xxlJobExecutor() {
XxlJobExecutor xxlJobExecutor = new XxlJobExecutor();
xxlJobExecutor.setAdminAddresses("http://localhost:8080/xxl-job-admin");
xxlJobExecutor.setAppname("demoApp");
// 其他配置项...
return xxlJobExecutor;
}
}
- 创建任务处理器
实现com.xxl.job.core.handler.IJobHandler
接口,编写具体的业务逻辑:
import com.xxl.job.core.biz.model.ReturnT;
import com.xxl.job.core.handler.IJobHandler;
public class DemoJobHandler implements IJobHandler {
@Override
public ReturnT<String> execute(String param) throws Exception {
System.out.println("XXL-JOB, Hello World.");
// 在这里编写你的任务处理逻辑
return ReturnT.SUCCESS;
}
// 注意:BeanName需要与xxl_job_registry中的jobHandler一致
@Override
public String toString() {
return "DemoJobHandler";
}
}
- 注册任务到调度中心
登录XXL-JOB管理后台,新建任务并选择刚刚创建的任务处理器。
以上就是在SpringBoot项目中集成XXL-JOB的基本步骤,具体根据实际需求可能还需要进行更细致的配置和优化。
GitHub 加速计划 / xx / xxl-job
27.15 K
10.79 K
下载
xxl-job: 是一个分布式任务调度平台,核心设计目标是开发迅速、学习简单、轻量级、易扩展。
最近提交(Master分支:3 个月前 )
e5d26ba2 - 3 个月前
977ad87b - 3 个月前
更多推荐
已为社区贡献1条内容
所有评论(0)