当前位置: 首页 > news >正文

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

文章目录

  • 调度器的介绍
  • 调度器的核心功能
  • 调度器的执行流程

调度器的介绍

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

调度器的核心功能

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

调度器的执行流程

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

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

相关文章:

  • 结构化数据处理
  • GPU服务器集群部署
  • 【越狱检测】HSF: Defending against Jailbreak Attacks with Hidden State Filtering
  • c语言第一个小游戏:贪吃蛇小游戏06
  • 逃离 AI 困境:保障 “说不” 的权利,守护数字自由
  • Selenium自动化测试
  • git cherry-pick和git stash命令详解
  • Python爬虫如何应对网站的反爬加密策略?
  • 第九届御网杯网络安全大赛初赛WP
  • 多线程与并发之进程
  • Focal Loss 原理详解及 PyTorch 代码实现
  • 运行Spark程序-在shell中运行
  • 思路解析:第一性原理解 SQL
  • 2025.5.13山东大学软件学院计算机图形学期末考试回忆版本
  • msyql8.0.xx忘记密码解决方法
  • 2025.05.11阿里云机考真题算法岗-第二题
  • 重置集群(有异常时)
  • Spring 集成 SM4(国密对称加密)
  • Springboot | 如何上传文件
  • ros2-node
  • SpringBoot--springboot简述及快速入门
  • 2025年全国青少年信息素养大赛初赛模拟测试网站崩了的原因及应对比赛流程
  • SparkSQL操作Mysql
  • 1995-2022年各省能源消费总量数据(万吨标煤)
  • UDS诊断----------$11诊断服务
  • 【YOLO模型】参数全面解读
  • JavaWeb 前端开发
  • 优化的代价(AI编码带来的反思)-来自Grok
  • 基于TouchSocket实现WebSocket自定义OpCode扩展协议
  • day19-线性表(顺序表)(链表I)