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

xxl-job配置相同,执行顺序

两个任务,同一个执行执行器,相同时间,路由策略第一个,阻塞策略,单机串行,先执行哪个,按任务ID排序吗,先创建的任务先执行

在 XXL-JOB 或其他类似分布式任务调度系统中,如果配置以下条件:

  • 同一个执行器

  • 相同的 Cron 触发时间

  • 路由策略为第一个(如 FIRST

  • 阻塞策略为单机串行(SERIAL_EXECUTION

任务的执行顺序规则如下:


1. 执行顺序判定

(1) 默认情况:按任务 ID 升序执行
  • 系统会从数据库查询 相同 Cron 时间 的任务列表,默认按任务 ID 排序(升序,即先创建的任务 ID 通常更小)。

  • 先创建的任务(ID 较小)会优先被选中执行

(2) 路由策略 FIRST 的作用
  • 路由策略 FIRST 表示选择 第一个可用的执行器,但若所有任务都在同一个执行器上,则对顺序无影响。

  • 阻塞策略 SERIAL_EXECUTION 会强制同一执行器上的任务串行执行(前一个任务完成后,再执行下一个)。


2. 示例场景

假设有两个任务:

  • 任务A:ID=100(先创建)

  • 任务B:ID=101(后创建)

当它们的 Cron 时间同时到达时:

  1. 系统按任务 ID 排序,得到顺序 [任务A, 任务B]

  2. 任务A 被优先执行,任务B 进入等待队列。

  3. 任务A 完成后,任务B 才开始执行。


3. 关键结论

  • 顺序依赖任务 ID:先创建的任务 ID 通常更小,会优先执行。

  • 单机串行保证:即使任务触发时间相同,也不会并发执行,而是严格串行。

  • 路由策略影响有限FIRST 在单执行器场景下不改变顺序。


4. 注意事项

  • 数据库查询顺序:部分系统可能支持自定义排序(如按优先级字段),但默认按任务 ID。

  • 任务 ID 生成方式:如果是自增 ID,则先创建的任务 ID 更小;若为分布式 ID(如雪花算法),需检查生成规则。

如果需要明确控制顺序,建议:

  1. 通过 任务优先级 字段(如果调度系统支持)。

  2. 错开 Cron 时间(如 0 0 * * * ? 和 1 0 * * * ?)。

  3. 使用 任务依赖 功能(如 XXL-JOB 的父子任务)。

http://www.dtcms.com/a/315616.html

相关文章:

  • Android WiFi图标显示感叹号解决方法
  • Linux 线程同步与互斥
  • 链表之leetcode19:删除链表的倒数第N个结点
  • LeetCode 71~90题解
  • 危化品运输误检率↓83%!陌讯多模态融合算法在油罐车识别的工程实践
  • 机器学习③【模型训练、K近邻算法(KNN)、贝叶斯算法(Navie Bayes)、模型调优】
  • 基于 Ubuntu 的 Linux 系统中 Vivado 2020.1 下载安装教程
  • Linux操作系统从入门到实战(十三)版本控制器Git基础概念讲解
  • Qwen Image:开源中文渲染SOTA,重塑文生图技术边界
  • Spring Boot 整合 Web 开发全攻略
  • 机器学习Adaboost算法----SAMME算法和SAMME.R算法
  • AI+OA原生应用 麦当秀AIPPT
  • Day34 GPU训练及类的call方法
  • 【ESP32学习笔记】环境搭建和HelloEsp32
  • GPS信号捕获尝试
  • C++ - 基于多设计模式下的同步异步日志系统(11w字)
  • 深入 Java 性能调优:一场没有枪声的实战旅程
  • 自然语言处理×第三卷:文本数据分析——她不再只是贴着你听,而开始学会分析你语言的结构
  • css3属性总结和浏览器私有属性
  • GPT-5的诞生之痛:AI帝国的现实危机
  • Dubbo-Go调Bug记录-泛化调用调不通
  • 软件测试中,pytest 框架如何运行上传失败的测试用例?
  • AWS EKS节点扩容时NLB与Ingress的故障处理与优化方案
  • Linux 系统启动原理2
  • 基于Hadoop的成都市二手房数据分析与房价预测系统的设计与实现
  • C++(线程)
  • 小米最新ASR音频大模型MiDashengLM
  • WPF 与 Winform :Windows 桌面开发该用谁?
  • linux查看kafka的消费组里是否有积压
  • 电路基础相关知识