推荐使用xxl2.2.0版本
参考地址: 分布式任务调度平台XXL-JOB
xxl-job安装到本地打开项目工程对yml配置文件进行修改
主要修改数据库地址和告警邮件地址
将服务注册到xxl-job
-如果在xxl里配置了accessToken 服务里就需要使用同样的Token
注册到xxl-job-admin之后打开xxl可视化界面新增执行器可使用自动注册或手动注册
添加任务
@XxlJob("xx")public ReturnT<String> xx(String param) {XxlJobLogger.log("处理器开始执行...");return ReturnT.SUCCESS;}
注解的地方就是处理器的名称对应下面的JobHandler
- 执行器 选择执行器
- 任务描述: 填写改项任务的作用
- 负责人、报警邮件:填写维护人的姓名以及邮件
- Corn表达式:定时时间格式:参照【转】cron表达式详解 - 我只吃大碗 - 博客园
- 运行模式:参照运行模式梳理
- JobHandler:如果选择运行模式位Bean,则需选择要执行的控制器
- 任务参数:执行改方法所需的参数
- 任务超时时间、失败重试次数:按照项目实际需求进行调整
- 路由策略: 参照下面路由策略梳理
- 调度过期策略: 参照下面调度过期策略
- 阻塞处理策略: 参照下面阻塞处理策略
路由策略
* FIRST(第一个):固定选择第一个机器 * LAST(最后一个):固定选择最后一个机器 * ROUND(轮询) * RANDOM(随机):随机选择在线的机器 * CONSISTENT_HASH(一致性HASH):每个任务按照Hash算法固定选择某一台机器,且所有任务均匀散列在不同机器上 * LEAST_FREQUENTLY_USED(最不经常使用):使用频率最低的机器优先被选举 * LEAST_RECENTLY_USED(最近最久未使用):最久未使用的机器优先被选举 * FAILOVER(故障转移):按照顺序依次进行心跳检测,第一个心跳检测成功的机器选定为目标执行器并发起调度 * BUSYOVER(忙碌转移):按照顺序依次进行空闲检测,第一个空闲检测成功的机器选定为目标执行器并发起调度 * SHARDING_BROADCAST(分片广播):广播触发对应集群中所有机器执行一次任务,同时系统自动传递分片参数;可根据分片参数开发分片任务
调度过期策略
* 忽略:调度过期后,忽略过期的任务,从当前时间开始重新计算下次触发时间 * 立即执行一次:调度过期后,立即执行一次,并从当前时间开始重新计算下次触发时间
阻塞处理策略
* 单机串行(默认):调度请求进入单机执行器后,调度请求进入FIFO队列并以串行方式运行 * 丢弃后续调度:调度请求进入单机执行器后,发现执行器存在运行的调度任务,本次请求将会被丢弃并标记为失败 * 覆盖之前调度:调度请求进入单机执行器后,发现执行器存在运行的调度任务,将会终止运行中的调度任务并清空队列,然后运行本地调度任务