定时任务
2025年2月23日大约 2 分钟开发指南定时任务xxl-job
简介
本节主要介绍如何配置和使用 XXL-JOB。如果您尚未安装 XXL-JOB,或者需要从零开始了解安装过程,请参考这篇文章:Spring Boot 3 整合 XXL-JOB 实现分布式定时任务调度。
XXL-JOB 包含两个主要角色:调度器 和 执行器。调度器是服务端,用于管理任务调度;执行器是应用端,用于执行任务的具体逻辑。
XXL-JOB
控制台地址: http://localhost:8080/xxl-job-admin- 用户名/密码: admin/123456
修改配置
XXL-JOB 的定时任务默认是关闭的。请根据下图修改配置:
- 将
xxl.job.enabled
设置为true
。 - 调整调度中心地址为实际安装地址,其它配置可保持默认。
添加执行器
在 application-dev.yml
中,执行器的应用名称 (xxl.job.executor.appname
) 默认配置为: xxl-job-executor-${spring.application.name}
,其中 ${spring.application.name}
会解析为当前应用名称。例如,在 youlai-boot
项目中,appname
将解析为 xxl-job-executor-youlai-boot
。
操作步骤:
在 XXL-JOB 控制台中,添加执行器,
appname
配置为xxl-job-executor-youlai-boot
。因为采用的是自动注册方式,重启
youlai-boot
应用后,再刷新执行器列表,可以看到机器已成功注册。
添加任务
在 youlai-boot
应用中,添加任务执行逻辑。以下是示例代码:
package com.youlai.boot.system.handler;
/**
* xxl-job 测试示例(Bean模式)
*/
@Component
@Slf4j
public class XxlJobSampleHandler {
@XxlJob("demoJobHandler")
public void demoJobHandler() {
log.info("XXL-JOB, Hello World.");
}
}
配置任务:
- 在 XXL-JOB 控制台中,进入“任务管理”页面,选择新增任务。
- 选择刚刚创建的
youlai-boot
应用对应的执行器。 - 配置 Cron 表达式来设定任务执行时间和频率。
- 设置任务模式为 Bean 模式,调用 Spring 容器中的 Bean,其中 Bean 名称为
@XxlJob("demoJobHandler")
中定义的demoJobHandler
。
定时任务测试
任务创建完成后,可以在“操作”列中选择启动进行测试。
注意事项: 调度器和执行器需要在网络上互通。如果调度器部署在云服务器上,而执行器运行在本地,则无法正常运行。建议将应用也部署到云服务器。
启动任务后,可以查看应用控制台日志,验证任务是否正确执行。