XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。
本文基于Spring Boot
整合XXL-JOB
,实现简单的任务执行
。
搭建任务调度中心
这里有两种方式运行。
- 下载官方代码,运行: https://github.com/xuxueli/xxl-job
- 通过docker直接启动
这里我就通过docker直接启动了。
编写docker-compose编排文件
docker-compose-xxl-job.yml
1 | # 参考文档: https://www.xuxueli.com/xxl-job |
挂载好mysql配置文件
./xxl/mysql/my.cnf
1 | # 服务端参数配置 |
运行
1 | # 运行 |
进入mysql的xxl-job数据库,初始化库表
1 | # |
重启
1 | # 运行 |
访问地址:http://ip地址:9003//xxl-job-admin
默认登录账号密码:admin/123456
SpringBoot整合XXL-JOB
在任务调度中心新建执行器
pom依赖
1 | <!-- xxl-job --> |
服务配置
1 | server: |
相关配置类
1 | package com.itjing.xxl.job.config; |
任务开发示例(Bean模式)
开发步骤:
- 任务开发:在Spring Bean实例中,开发Job方法;
- 注解配置:为Job方法添加注解 “@XxlJob(value=“自定义jobhandler名称”, init = “JobHandler初始化方法”, destroy = “JobHandler销毁方法”)”,注解value值对应的是调度中心新建任务的JobHandler属性的值。
- 执行日志:需要通过”XxlJobHelper.log” 打印执行日志;
- 任务结果:默认任务结果为 “成功” 状态,不需要主动设置;如有诉求,比如设置任务结果为失败,可以通过”XxlJobHelper.handleFail/handleSuccess” 自主设置任务结果;
1 | package com.itjing.xxl.job.job; |
这里我直接执行一次
查看调度日志
查看执行日志
其他更多用法自己去尝试,这里只介绍简单使用。