总结了一下xxl的关键技术点,以及与spring boot的集成应用,形成一个总结报告,一个是为了指导新手从哪些方面入手,另外是技术人员熟悉关键技术点,用来巩固加深印象。希望能给大家带来帮助。
XXL-JOB 是一个轻量级分布式任务调度平台,支持动态任务管理、分片执行、故障转移和可视化监控,核心特性包括:
@Scheduled
,实现分布式调度。
下载并启动 XXL-JOB 调度中心(源码或 Docker 部署):
docker run -d -p 8080:8080 -e PARAMS="--spring.datasource.url=jdbc:mysql://localhost:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8" xuxueli/xxl-job-admin:2.4.0
访问 http://localhost:8080/xxl-job-admin
,默认账号:admin/123456。
添加依赖:
<dependency>
<groupId>com.xuxueli</groupId>
<artifactId>xxl-job-core</artifactId>
<version>2.4.0</version>
</dependency>
配置执行器参数:
xxl:
job:
admin:
addresses: http://localhost:8080/xxl-job-admin # 调度中心地址
executor:
appname: xxl-job-demo-executor # 执行器名称
address: # 自动注册时可为空
ip: 127.0.0.1
port: 9999 # 执行器端口
logpath: /data/applogs/xxl-job
logretentiondays: 30
配置 XxlJobSpringExecutor Bean:
@Bean
public XxlJobSpringExecutor xxlJobExecutor() {
XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
xxlJobSpringExecutor.setAdminAddresses(xxlJobProperties.getAdmin().getAddresses());
xxlJobSpringExecutor.setAppname(xxlJobProperties.getExecutor().getAppname());
xxlJobSpringExecutor.setPort(xxlJobProperties.getExecutor().getPort());
return xxlJobSpringExecutor;
}
使用 @XxlJob
注解声明任务方法:
@Component
public class DemoJobHandler {
@XxlJob("demoJobHandler")
public void execute() {
// 任务逻辑(支持分片参数)
ShardingUtil.ShardingVO shardingVO = ShardingUtil.getShardingVo();
log.info("分片参数:当前分片={}, 总分片数={}", shardingVO.getIndex(), shardingVO.getTotal());
}
}
分片任务示例:
@XxlJob("shardingJob")
public void shardingJob() {
int shardIndex = ShardingUtil.getShardingVo().getIndex();
int shardTotal = ShardingUtil.getShardingVo().getTotal();
// 根据分片参数处理数据(如按 ID 取模分片)
List<Long> dataIds = fetchDataIds();
for (Long id : dataIds) {
if (id % shardTotal == shardIndex) {
processData(id);
}
}
}
父子任务依赖:
@XxlJob("parentJob")
public void parentJob() {
// 父任务完成后触发子任务
XxlJobHelper.log("Parent job completed.");
XxlJobTrigger.trigger(15); // 子任务 ID=15
}
appname
是否一致。
XXL-JOB 作为分布式任务调度的核心组件,与 Spring Boot 集成可快速实现高可用、可扩展的任务调度系统。开发者需重点关注:
通过实际项目中的分片处理、任务依赖等场景实践,可深入掌握 XXL-JOB 的核心技术点。建议定期备份调度中心数据库,并关注社区版本更新(如 XXL-JOB 3.0 对云原生的支持)。
本篇的分享就到这里了,感谢观看,如果对你有帮助,别忘了点赞+收藏+关注。