xxl-job 数据库表详解

news/2025/10/24 10:37:39/文章来源:https://www.cnblogs.com/hanease/p/19162574

--------------------------------------------------------------------------

XXL-JOB 的数据库表设计围绕分布式任务调度的核心功能展开,主要包括任务配置、执行器管理、日志记录、状态监控等模块。以下是核心表的详细解析(基于 2.4.0+ 版本):

一、核心配置表

1. xxl_job_group - 执行器分组表

  • 作用:管理任务执行器(Executor)的分组信息,支持按业务维度隔离任务。
  • 关键字段:
    字段名类型说明
    id int(11) 主键 ID
    app_name varchar(64) 执行器的应用名称(用于自动注册时的分组标识)
    title varchar(64) 执行器的显示名称(控制台展示)
    address_type int(4) 执行器地址类型:
     
    0 - 自动注册(执行器主动上报地址)
     
    1 - 手动录入地址列表
    address_list varchar(512) 执行器地址列表(手动录入时使用,格式:IP1:PORT,IP2:PORT
  • 关联关系:xxl_job_info 通过 job_group 字段关联执行器分组。

2. xxl_job_info - 任务信息表

  • 作用:存储所有任务的元数据配置,包括调度策略、执行逻辑、报警规则等。
  • 关键字段:
    字段名类型说明
    id int(11) 任务 ID
    job_group int(11) 执行器分组 ID(关联 xxl_job_group
    schedule_type varchar(50) 调度类型:
     
    CRON - Cron 表达式
     
    FIX_RATE - 固定频率(毫秒)
     
    FIX_DELAY - 固定延迟(毫秒)
    schedule_conf varchar(128) 调度配置:
     
    对 CRON 是 Cron 表达式,对 FIX_RATE 是间隔时间
    executor_route_strategy varchar(50) 执行器路由策略:
     
    FIRST - 第一个存活实例
     
    ROUND - 轮询
     
    RANDOM - 随机
    executor_handler varchar(255) 执行器任务处理器名称(对应 @XxlJob 注解的 value)
    glue_type varchar(50) 任务类型:
     
    BEAN - Java 方法
     
    GLUE_GROOVY - Groovy 脚本
    trigger_status tinyint(4) 任务状态:
     
    0 - 停止
     
    1 - 运行
    trigger_last_time bigint(13) 上次触发时间(时间戳,毫秒)
    trigger_next_time bigint(13) 下次触发时间(时间戳,毫秒)
  • 示例 SQL:
    sql
     
     
    CREATE TABLE `xxl_job_info` (`id` int(11) NOT NULL AUTO_INCREMENT,`job_group` int(11) NOT NULL,`schedule_type` varchar(50) NOT NULL DEFAULT 'CRON',`schedule_conf` varchar(128) DEFAULT NULL,`executor_route_strategy` varchar(50) DEFAULT NULL,`executor_handler` varchar(255) DEFAULT NULL,`glue_type` varchar(50) NOT NULL,`trigger_status` tinyint(4) NOT NULL DEFAULT '0',PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
    
     
     

二、任务执行与日志表

3. xxl_job_log - 任务日志表

  • 作用:记录任务执行的详细日志,包括触发结果、执行耗时、异常信息等。
  • 关键字段:
    字段名类型说明
    id bigint(20) 日志 ID
    job_id int(11) 关联的任务 ID(对应 xxl_job_info.id
    trigger_time datetime 任务触发时间
    trigger_code int(11) 触发状态码:
     
    200 - 成功
     
    500 - 失败
    handle_time datetime 任务开始执行时间
    handle_code int(11) 执行状态码:
     
    200 - 成功
     
    500 - 失败
     
    0 - 执行中
    alarm_status tinyint(4) 告警状态:
     
    0 - 未告警
     
    1 - 无需告警
     
    2 - 告警成功
     
    3 - 告警失败
  • 关联关系:通过 job_id 关联 xxl_job_info,通过 executor_address 关联执行器实例。

4. xxl_job_log_report - 日志报表表

  • 作用:按天统计任务执行情况,用于控制台报表展示。
  • 关键字段:
    字段名类型说明
    id int(11) 报表 ID
    trigger_day datetime 统计日期(精确到天)
    suc_count int(11) 当天成功任务数
    fail_count int(11) 当天失败任务数
  • 数据更新:调度中心每分钟自动统计前一天的日志数据。

三、动态注册与锁表

5. xxl_job_registry - 执行器注册表

  • 作用:存储执行器和调度中心的动态注册信息,实现执行器地址的自动发现。
  • 关键字段:
    字段名类型说明
    registry_group varchar(50) 注册类型:
     
    EXECUTOR - 执行器
     
    ADMIN - 调度中心
    registry_key varchar(255) 注册键(对 EXECUTOR 是 app_name,对 ADMIN 是调度中心地址)
    registry_value varchar(255) 注册值(执行器的地址或调度中心的地址)
  • 机制:
    • 执行器启动后向调度中心注册地址,调度中心每 30 秒清理超时 90 秒未心跳的执行器。
    • 调度中心根据 registry_value 动态维护可用执行器列表。

6. xxl_job_lock - 任务锁表

  • 作用:通过数据库行锁实现分布式任务调度的并发控制。
  • 关键字段:
    字段名类型说明
    lock_name varchar(50) 锁名称:
     
    schedule_lock - 全局调度锁
     
    state_access - 任务状态锁
  • 示例:
    • 调度中心触发任务时,通过 state_access 锁确保同一任务不会被多个线程重复触发。
    • 执行器回调更新任务状态时,需获取 state_access 锁保证原子性。

四、系统与扩展表

7. xxl_job_user - 用户表

  • 作用:存储平台用户信息,支持权限管理。
  • 关键字段:
    字段名类型说明
    username varchar(50) 用户名(唯一)
    password varchar(50) 密码(MD5 加密)
    role tinyint(4) 角色:
     
    0 - 普通用户
     
    1 - 管理员
    permission varchar(255) 权限(执行器 ID 列表,逗号分隔)

8. xxl_job_logglue - GLUE 日志表

  • 作用:存储 GLUE 脚本的历史版本,支持版本回溯。
  • 关键字段:
    字段名类型说明
    job_id int(11) 关联的任务 ID
    glue_source mediumtext GLUE 脚本内容
    glue_updatetime datetime 脚本更新时间

五、表间关系与核心流程

  1. 任务注册:
    • 用户在控制台创建任务,数据写入 xxl_job_info,关联 xxl_job_group 中的执行器分组。
    • 执行器启动后向 xxl_job_registry 表注册地址,调度中心自动发现可用执行器。
  2. 任务触发:
    • 调度中心扫描 xxl_job_info 中 trigger_next_time <= 当前时间 的任务。
    • 获取 xxl_job_lock 锁后,更新任务状态并记录日志到 xxl_job_log
  3. 任务执行:
    • 调度中心通过 xxl_job_registry 获取执行器地址,调用执行器接口。
    • 执行器执行任务后,回调调度中心更新 xxl_job_log 中的 handle_code 和 handle_msg
  4. 日志与监控:
    • xxl_job_log 记录每次执行的详细信息,xxl_job_log_report 按天统计执行结果。
    • 控制台通过查询这些表展示任务状态、执行趋势等信息。

六、注意事项

  1. 版本差异:
    • 2.3.0 及之前版本包含 xxl_job_qrtz_xxx 表(基于 Quartz 调度),2.4.0+ 版本已将其功能整合到 xxl_job_info 表。
  2. 性能优化:
    • xxl_job_log 表数据量可能快速增长,建议定期清理历史日志(通过配置 xxl.job.logretentiondays 自动清理)。
  3. 分布式锁机制:
    • xxl_job_lock 表依赖数据库行锁,在高并发场景下可能成为性能瓶颈,需根据实际情况评估是否替换为 Redis 等分布式锁。
通过以上表结构,可深入理解 XXL-JOB 的任务调度、执行、监控等核心功能,为系统运维和二次开发提供数据层面的支持。

--------------------------------------------------------------------------

XXL-JOB 各版本在功能、架构和稳定性上持续迭代,以下是核心版本的关键区别:

一、2.3.0 版本(2022 年)

核心改进:
  1. 调度过期策略
     
    新增「忽略」或「立即补偿触发一次」策略,解决调度中心因延迟导致的任务漏触发问题。
  2. 触发方式扩展
     
    除 Cron 外,新增「固定间隔触发」和实验性「固定延时触发」,支持更灵活的任务调度场景。
  3. 任务辅助工具
     
    引入 XxlJobHelper,统一提供任务参数获取、日志输出、分片参数解析等能力,简化开发流程。
  4. 执行器注册优化
     
    注册逻辑改为异步方式,提升高并发场景下的注册性能;新增 accessToken 校验,增强安全性。
  5. Cron 编辑器增强
     
    支持实时预览最近运行时间,修复小概率字段重置问题,提升配置体验。
  6. 数据库适配
     
    优化 Oracle 数据库兼容性,调整 SQL 语法和分页查询逻辑。

二、2.4.0 版本(2023 年)

架构与功能重大升级:
  1. 移除 Quartz 依赖
     
    彻底废弃 Quartz 调度引擎,自研轻量级调度模块,大幅简化数据库表结构(移除 xxl_job_qrtz_xxx 表),提升调度性能和稳定性。
  2. 任务分片与广播
     
    支持分布式任务分片(Sharding),可将大数据量任务拆分为多个子任务并行执行;新增「广播任务」模式,所有执行器同时执行同一任务。
  3. GLUE 脚本增强
     
    支持 Java、Shell、Python、PHP、NodeJS 等多语言脚本,任务逻辑可直接在控制台编辑并动态生效,无需重启应用。
  4. 执行器注册机制
     
    执行器通过 HTTP 接口自动注册到调度中心,支持动态扩缩容和故障转移,替代传统数据库表注册方式。
  5. 权限控制优化
     
    新增用户角色管理(管理员、普通用户),支持按执行器分组配置权限,实现精细化操作控制。
  6. 高可用与安全
     
    调度中心集群部署支持自动选举主节点;修复 SSRF、XSS 等安全漏洞,但早期版本(如 2.4.0)仍存在权限绕过风险,需及时升级至 2.4.1+。

三、2.5.0 版本(2025 年)

性能与稳定性优化:
  1. 线程池与队列优化
     
    调整快慢线程池拒绝策略,避免任务积压导致的结果丢失;优化队列长度,提升突发流量处理能力。
  2. 日志表索引优化
     
    对 xxl_job_log 表添加复合索引,显著提升大日志量场景下的查询和清理速度。
  3. 执行器注册重构
     
    降低多调度中心地址时的并发注册冲突,新增唯一索引防止冗余数据。
  4. 依赖升级
     
    更新 Netty、Slf4j 等基础组件至最新稳定版本,提升框架兼容性和安全性。
  5. 长期维护支持
     
    作为 JDK 8 最后一个大版本,提供长期漏洞修复和性能优化。

四、各版本核心功能对比表

功能特性2.3.0 及以下2.4.0+2.5.0+
调度引擎 Quartz 自研 自研
任务分片与广播
GLUE 多语言支持 有限(Java)
执行器自动注册 数据库表 HTTP HTTP
权限控制 基础 角色管理 角色管理
日志表索引优化
高可用机制 数据库锁 集群选举 集群选举
安全漏洞修复 部分 持续 持续

五、升级建议

  1. 2.3.x → 2.4.x
    • 需手动迁移数据库表结构(移除 Quartz 相关表,新增 xxl_job_log 分片字段)。
    • 执行器配置需调整注册方式(HTTP 接口替代数据库表)。
    • 建议直接升级至 2.4.1+ 以规避 SSRF 等安全风险。
  2. 2.4.x → 2.5.x
    • 数据模型和通讯协议兼容,可无缝升级。
    • 建议同步优化 xxl_job_log 表索引以提升性能。
  3. 长期维护选择
    • 优先使用 2.5.x 版本,享受 JDK 8 长期支持和最新安全修复。
    • 计划迁移至 JDK 11+ 的用户可关注 3.0+ 版本(规划中)。
通过以上版本对比,可根据业务需求和技术栈选择最适合的版本,重点关注架构升级、功能扩展和安全性修复。

--------------------------------------------------------------------------

xxl-job 下载地址
 

一、如何将 XXL-JOB 从 Quartz 切换到自研调度引擎

XXL-JOB 在 2.4.0 版本及以上 彻底移除了 Quartz 依赖,改用自研调度引擎。因此,“从 Quartz 切换到自研引擎” 本质上是将 XXL-JOB 升级到 2.4.0 及以上版本。以下是详细步骤:

1. 确认当前版本

  • 若当前版本为 2.3.x 及以下:依赖 Quartz 调度引擎,需升级到 2.4.0 + 版本以切换到自研引擎。
  • 若已为 2.4.0+:默认使用自研引擎,无需额外操作。

2. 升级前准备

  • 备份数据:备份现有 XXL-JOB 数据库(尤其是xxl_job_infoxxl_job_log等核心表),避免升级过程中数据丢失。
  • 查看官方升级文档:参考对应版本的 Release Notes(如2.4.0 Release),确认兼容性注意事项。

3. 数据库表结构迁移(核心步骤)

2.4.0 + 版本移除了 Quartz 相关表(如xxl_job_qrtz_triggerxxl_job_qrtz_cron_triggers等),并调整了部分核心表结构。需执行官方提供的升级脚本:
  • 脚本位置:从 XXL-JOB 源码的doc/db目录中获取对应版本的升级脚本(如xxl_job_upgrade.sql),或直接参考官方文档中的 SQL 语句。
  • 核心变更:
    • 删除所有xxl_job_qrtz_*前缀的 Quartz 表;
    • xxl_job_info表新增字段(如executor_block_strategy用于任务阻塞策略);
    • 调整xxl_job_log表索引,优化查询性能。

4. 调度中心升级

  • 替换源码 / 依赖:
    • 若使用源码部署:下载 2.4.0 + 版本源码,替换原调度中心(xxl-job-admin)代码,重新编译打包。
    • 若使用 Maven 依赖:在pom.xml中升级xxl-job-core版本(如2.4.0):
      xml
       
       
      <dependency><groupId>com.xuxueli</groupId><artifactId>xxl-job-core</artifactId><version>2.4.0</version> <!-- 或更高版本 -->
      </dependency>
      
       
       
  • 调整配置文件:
    • 2.4.0 + 版本移除了 Quartz 相关配置(如quartz前缀的配置),无需保留;
    • 确保数据库连接配置正确(指向升级后的数据库)。

5. 执行器升级

  • 依赖升级:同调度中心,将执行器项目的xxl-job-core依赖升级到 2.4.0 + 版本。
  • 适配注册机制:
     
    2.4.0 + 版本执行器注册方式从 “数据库表注册” 改为 “HTTP 主动注册”,需调整执行器配置:
    properties
     
     
    # 执行器配置(application.properties)
    xxl.job.admin.addresses=http://127.0.0.1:8080/xxl-job-admin  # 调度中心地址(必填)
    xxl.job.executor.appname=your-executor-appname  # 执行器应用名(需与调度中心配置一致)
    xxl.job.executor.port=9999  # 执行器端口(可选,默认自动分配)
    
     
     
  • 代码兼容性:
    • 2.4.0 + 版本的@XxlJob注解用法不变,无需修改任务代码;
    • 若使用了 Quartz 相关 API(如XxlJobQuartz),需移除并替换为自研引擎的 API(参考官方示例)。

6. 验证升级结果

  • 启动调度中心和执行器,确认无报错;
  • 在调度中心控制台查看任务列表,确认历史任务配置已迁移;
  • 手动触发一个任务,检查xxl_job_log表是否正常记录日志,验证调度引擎工作正常。

二、XXL-JOB 下载地址

XXL-JOB 的官方下载渠道为 GitHub,支持源码下载和 RELEASE 包下载:
  1. 官方仓库:https://github.com/xuxueli/xxl-job
  2. RELEASE 包下载:进入 GitHub Releases 页面,选择对应版本(2.4.0 + 版本为自研引擎):https://github.com/xuxueli/xxl-job/releases
    • 推荐下载 xxl-job-admin-${version}.jar(调度中心可直接运行的 JAR 包);
    • 源码包(Source code)包含完整项目代码和数据库脚本。

注意事项

  • 升级后首次启动调度中心时,会自动初始化自研引擎的元数据,无需额外操作;
  • 若升级后任务调度异常,优先检查数据库表结构是否正确迁移(尤其是索引和新增字段);
  • 生产环境建议先在测试环境验证升级,确认兼容性后再迁移至生产。

--------------------------------------------------------------------------

--------------------------------------------------------------------------

--------------------------------------------------------------------------

--------------------------------------------------------------------------

--------------------------------------------------------------------------

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/945009.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025 电动缸源头厂家最新推荐榜:剖析专精特新企业成本优势与技术实力的权威选购指南

引言 工业 4.0 深化推进下,电动缸作为自动化产线核心执行部件,市场需求年增速超 20%,但行业乱象却让采购决策陷入困境。部分厂家缺乏核心技术,依赖外购关键部件导致兼容性差、故障率居高不下;另有企业以次充好,通…

实用指南:技术博客 SEO 优化指南:从流量洼地到精准获客的实战路径

实用指南:技术博客 SEO 优化指南:从流量洼地到精准获客的实战路径pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: &quo…

2025年评价高的浙江摩托车链条,浙江起重链条,特殊非标链条,浙江传动链条厂家推荐及选择建议

2025年评价高的浙江摩托车链条,浙江起重链条,特殊非标链条,浙江传动链条厂家推荐及选择建议浙江链条行业概述浙江省作为中国制造业的重要基地,在链条生产领域拥有众多优秀企业。经过多年发展,浙江链条产业已形成完整…

2025 年最新罗茨风机厂家推荐排行榜重磅发布!深度解析优质厂商,助力企业精准选设备

引言 当前工业领域中,罗茨风机作为关键气体输送设备,在污水处理、化工、电力等众多行业发挥着不可替代的作用。但随着市场需求增长,行业乱象愈发明显:大量中小品牌涌入,产品质量参差不齐,部分厂商为压缩成本简化…

2D-3D投影变换(PnP算法)

PnP算法详解 概述 PnP(Perspective-n-Point)算法的核心目标是通过已知3D点和对应的2D图像点,计算相机的旋转矩阵(R)和平移向量(t),从而确定相机相对于3D点的位姿。 基本概念旋转矩阵(R):描述相机的姿态,33…

2025年知名的煤气加压风机,稀释风机实力源头

2025年知名的煤气加压风机与稀释风机实力源头企业推荐 在工业领域,煤气加压风机和稀释风机是关键的设备,广泛应用于化工、石油、冶金、电力等行业。随着技术的进步,风机行业涌现出一批技术领先、品质过硬的企业。本…

linux流量检测

在工作,会遇到需要排查当前的网络流量,排查当前哪些服务进程比较耗流量,这里就介绍几个参考工具 iftop - 实时流量监控神器 安装 apt install iftop # Ubuntu/Debian yum install iftop # CentOS/RHEL使用方式 # …

2025/10/24

2025/10/24学习算法

[AT_nikkei2019_2_final_h] 逆にする関数 题解

神秘题观察函数,发现 \(f(1) = a_n, f(n) = a_1, ......\) 其实描述了一种对应关系,如果一个对应矛盾则该序列不合法。 考虑 \(O(n^2)\) 的暴力怎么写,枚举区间的中点,向左右拓展维护是否合法,和已知的对应关系。…

一文剖析 丨什么是多模态大模型?

从 “纸上谈兵” 到 “融会贯通”,多模态大模型正在赋予人工智能感知和理解复杂现实世界的能力。在人工智能发展历程中,我们曾见证过只懂文本的 “书生”、只识图像的 “画师”,以及只辨语音的 “听者”。这些单模态…

【linux内核】super_lock

struct super_block {struct list_head s_list; /* Keep this first */dev_t s_dev; /* search index; _not_ kdev_t */unsigned char s_blocksize_bits;unsigned long s_blocksize;loff_t s_maxbytes; /* Max…

OPPO手机“绿线”障碍争议,高价等于高端,何以分食iPhone市场?

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

k8s中nginx和headless服务搭配使用引发的小问题

某天收到一个奇怪的问题,这个故障感觉还挺好玩,所以分享出来。 背景 某个生产业务部署在k8s中,业务的nginx和服务a(2个副本 下面称为pod-a-1,pod-a-2 ),全部运行在同一个ns下面,同时为pod-a创建一个headless服…

2025 年家用电梯厂家最新推荐榜单:实力厂商安全性能与定制优势深度解析,助别墅 / 自建房用户精准选购适配产品

引言 当前国内别墅、自建楼等住宅数量持续增长,家用电梯需求随之大幅攀升,但市场乱象却让消费者选购陷入困境。众多厂商资质良莠不齐,部分小型企业缺乏核心技术支撑,产品安全性能无法保障,且安装流程不规范、售后…

SpringBoot整合SpringDoc

SpringBoot整合SpringDoc 一、SpringDoc 是什么? SpringDoc 是一个基于 OpenAPI 3.0 规范的开源 API 文档生成工具,专为 Spring Boot 应用设计。它能自动扫描项目中的 REST 接口,生成标准化的 API 文档,并提供交互…

GEO靠谱推荐:GEO技术开启精准农业与资源管理新纪元 - 勤懒调和者

在保障粮食安全和实现资源可持续利用的全球议题下,GEO技术正以其宏观、精准、高效的特点,为农业与资源管理领域带来革命性变革。通过整合遥感监测、地理信息系统和全球定位技术,GEO为实现精准化、智能化的农业生产和…

下一代 AI Agent 的基石:Real-Time AI 新基建丨Convo AIRTE2025

超低延迟的实时 AI 是实现人机交互无缝融入日常生活的关键。从推理加速、流式模型设计,到高并发调度,都对底层设施提出了极限挑战。由 硅基流动 和 TEN Framework 联合出品的 「Real-Time AI Infra 专场」 将剖析实时…

2025 年水性透水地坪专用漆制造商最新推荐榜:聚焦企业专利技术、品质管控及知名客户合作案例的权威解析

随着生态城市建设和海绵城市政策的推进,水性透水地坪专用漆作为环保铺装材料的关键组成部分,其市场需求持续增长。该产品不仅需要具备优异的透水性能和耐磨性,还需符合严格的环保标准。本文基于行业调研数据和技术参…

区间摩尔投票 - 教程

区间摩尔投票 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "…

一张图讲清楚企业微信的好友和群

适用企业微信版本:2025年10月24日前后。企业微信一直在改版,官方文档大部分滞后,参考性不强,主要还得靠自己试。