【xxl-job调度器的源码分析】

调度器的介绍

调度中心(Admin)
负责任务调度、任务管理、任务日志查看、失败重试等控制逻辑;
通常是一个 Web 控制台 + 后台定时调度器;
将调度任务通过网络调用(如 HTTP)推送给执行器。

调度器的核心功能

  1. 定时调度任务
    基于 Cron 表达式周期性触发;
    支持一次性任务、延时任务等;
    依赖数据库的定时扫描任务。
  2. 分片广播
    多执行器分片执行任务(如多机器并行处理);
    调度中心会根据任务配置进行广播或分片。
  3. 超时控制 + 失败重试
    调度中心可以配置超时时间;
    执行失败支持多次重试;
    失败记录日志并可人工手动重试。
  4. 子任务链路
    支持任务完成后触发子任务(依赖调度器完成的回调链)。

调度器的执行流程

整体的执行流程:
在这里插入图片描述
查询定时任务的线程的执行流程:
在这里插入图片描述

  1. 任务扫描线程
    每隔 5s 毫秒扫描一次数据库,查找待执行的任务。
  2. 任务触发器
    将任务分发给具体的执行器节点(可能是多个,取决于策略)。
  3. 注册 & 心跳
    执行器定期向调度中心注册自己的信息:
    调度中心会将一定时间无心跳的节点移除(默认 90 秒无心跳)。
  4. 失败重试
    执行器执行失败后,会将失败日志插入日志,如果此时设置了失败重试次数failRetryCount 调度器就会执行失败重试,因此我们在这里需要考虑业务的幂等性,因为如果我们调度器正常调度,执行器返回的时候掉单,调度器会将任务置为失败,会失败重试,重复执行。
  5. 将执行时间超过10min的任务置为失败
    考虑到会有任务的状态一直在持续执行中,admin会有专门的线程将执行时间超过10min的任务置为失败。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值