From 5aa673d7146434249d0b2d44996d4d390fc5243e Mon Sep 17 00:00:00 2001
From: xuxueli <931591021@qq.com>
Date: Fri, 19 Jun 2026 17:25:51 +0800
Subject: [PATCH] =?UTF-8?q?docs(xxj-job):=20=E6=9B=B4=E6=96=B0=E5=AE=98?=
=?UTF-8?q?=E6=96=B9=E6=96=87=E6=A1=A3=E5=B9=B6=E5=8F=91=E5=B8=83=203.4.2?=
=?UTF-8?q?=20=E7=89=88=E6=9C=AC?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
doc/XXL-JOB官方文档.md | 197 ++++++++++--------
pom.xml | 2 +-
xxl-job-admin/pom.xml | 2 +-
.../main/resources/i18n/message_en.properties | 2 +-
.../resources/i18n/message_zh_CN.properties | 2 +-
.../resources/i18n/message_zh_TC.properties | 2 +-
xxl-job-core/pom.xml | 2 +-
xxl-job-executor-samples/pom.xml | 2 +-
.../xxl-job-executor-sample-frameless/pom.xml | 2 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
11 files changed, 125 insertions(+), 92 deletions(-)
diff --git a/doc/XXL-JOB官方文档.md b/doc/XXL-JOB官方文档.md
index 5e8b29c9..1cd068df 100644
--- a/doc/XXL-JOB官方文档.md
+++ b/doc/XXL-JOB官方文档.md
@@ -839,12 +839,11 @@ XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅
#### 源码仓库地址
-源码仓库地址 | Release Download
---- | ---
-[https://github.com/xuxueli/xxl-job](https://github.com/xuxueli/xxl-job) | [Download](https://github.com/xuxueli/xxl-job/releases)
-[http://gitee.com/xuxueli0323/xxl-job](http://gitee.com/xuxueli0323/xxl-job) | [Download](http://gitee.com/xuxueli0323/xxl-job/releases)
-[https://gitcode.com/xuxueli/xxl-job](https://gitcode.com/xuxueli/xxl-job) | [Download](https://gitcode.com/xuxueli/xxl-job/tags)
-
+| 源码仓库地址 | Release Download |
+|------------------------------------------------------------------------------|-----------------------------------------------------------|
+| [https://github.com/xuxueli/xxl-job](https://github.com/xuxueli/xxl-job) | [Download](https://github.com/xuxueli/xxl-job/releases) |
+| [http://gitee.com/xuxueli0323/xxl-job](http://gitee.com/xuxueli0323/xxl-job) | [Download](http://gitee.com/xuxueli0323/xxl-job/releases) |
+| [https://gitcode.com/xuxueli/xxl-job](https://gitcode.com/xuxueli/xxl-job) | [Download](https://gitcode.com/xuxueli/xxl-job/tags) |
#### 中央仓库地址
@@ -871,7 +870,9 @@ XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅
"调度数据库初始化SQL脚本" 位置为:
- /xxl-job/doc/db/tables_xxl_job.sql
+```
+/xxl-job/doc/db/tables_xxl_job.sql
+```
调度中心支持集群部署,集群情况下各节点务必连接同一个mysql实例;
@@ -880,17 +881,20 @@ XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅
### 2.2 编译源码
解压源码,按照maven格式将源码导入IDE, 使用maven进行编译即可,源码结构如下:
- xxl-job-admin:调度中心
- xxl-job-core:公共依赖
- xxl-job-executor-samples:执行器Sample示例(选择合适的版本执行器,可直接使用,也可以参考其并将现有项目改造成执行器)
- :xxl-job-executor-sample-springboot:Springboot版本,通过Springboot管理执行器,推荐这种方式;
- :xxl-job-executor-sample-frameless:无框架版本;
-
+```
+xxl-job-admin:调度中心
+xxl-job-core:公共依赖
+xxl-job-executor-samples:执行器Sample示例(选择合适的版本执行器,可直接使用,也可以参考其并将现有项目改造成执行器)
+ :xxl-job-executor-sample-springboot:Springboot版本,通过Springboot管理执行器,推荐这种方式;
+ :xxl-job-executor-sample-frameless:无框架版本;
+```
### 2.3 配置部署“调度中心”
- 调度中心项目:xxl-job-admin
- 作用:统一管理任务调度平台上调度任务,负责触发调度执行,并且提供任务管理平台。
+```
+调度中心项目:xxl-job-admin
+作用:统一管理任务调度平台上调度任务,负责触发调度执行,并且提供任务管理平台。
+```
#### 步骤一:调度中心配置:
调度中心配置文件地址:
@@ -992,8 +996,10 @@ xuxueli/xxl-job-admin:{指定版本}
### 2.4 配置部署“执行器项目”
- “执行器”项目:xxl-job-executor-sample-springboot (提供多种版本执行器供选择,现以 springboot 版本为例,可直接使用,也可以参考其并将现有项目改造成执行器)
- 作用:负责接收“调度中心”的调度并执行;可直接部署执行器,也可以将执行器集成到现有业务项目中。
+```
+“执行器”项目:xxl-job-executor-sample-springboot (提供多种版本执行器供选择,现以 springboot 版本为例,可直接使用,也可以参考其并将现有项目改造成执行器)
+作用:负责接收“调度中心”的调度并执行;可直接部署执行器,也可以将执行器集成到现有业务项目中。
+```
#### 步骤一:maven依赖
确认pom文件中引入了 "xxl-job-core" 的maven依赖;
@@ -1037,7 +1043,9 @@ xxl.job.executor.excludedpackage=org.springframework,spring
执行器组件,配置文件地址:
- /xxl-job/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/java/com/xxl/job/executor/core/config/XxlJobConfig.java
+```
+/xxl-job/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/java/com/xxl/job/executor/core/config/XxlJobConfig.java
+```
执行器组件,配置内容说明:
@@ -1061,9 +1069,10 @@ public XxlJobSpringExecutor xxlJobExecutor() {
#### 步骤四:部署执行器项目:
如果已经正确进行上述配置,可将执行器项目编译打包部署,系统提供多种执行器Sample示例项目,选择其中一个即可,各自的部署方式如下。
- xxl-job-executor-sample-springboot:项目编译打包成springboot类型的可执行JAR包,命令启动即可;
- xxl-job-executor-sample-frameless:项目编译打包成JAR包,命令启动即可;
-
+```
+xxl-job-executor-sample-springboot:项目编译打包成springboot类型的可执行JAR包,命令启动即可;
+xxl-job-executor-sample-frameless:项目编译打包成JAR包,命令启动即可;
+```
至此“执行器”项目已经部署结束。
@@ -1115,6 +1124,7 @@ public XxlJobSpringExecutor xxlJobExecutor() {
### 配置属性详细说明:
+```
基础配置:
- 执行器:任务的绑定的执行器,任务触发调度时将会自动发现注册成功的执行器, 实现任务自动发现功能; 另一方面也可以方便的进行任务分组。每个任务必须绑定一个执行器, 可在 "执行器管理" 进行设置;
- 任务描述:任务的描述信息,便于任务管理;
@@ -1139,7 +1149,7 @@ public XxlJobSpringExecutor xxlJobExecutor() {
GLUE模式(Python):任务以源码方式维护在调度中心;该模式的任务实际上是一段 "python" 脚本;
GLUE模式(PHP):任务以源码方式维护在调度中心;该模式的任务实际上是一段 "php" 脚本;
GLUE模式(NodeJS):任务以源码方式维护在调度中心;该模式的任务实际上是一段 "nodejs" 脚本;
- GLUE模式(PowerShell):任务以源码方式维护在调度中心;该模式的任务实际上是一段 "PowerShell" 脚本;
+ GLUE模式(PowerShell):任务以源码方式维护在调度中心;该模式的任务实际上是一段 "powershell" 脚本;
- JobHandler:运行模式为 "BEAN模式" 时生效,对应执行器中新开发的JobHandler类“@XxlJob”注解自定义的value值;
- 执行参数:任务执行所需的参数;
@@ -1165,10 +1175,7 @@ public XxlJobSpringExecutor xxlJobExecutor() {
覆盖之前调度:调度请求进入单机执行器后,发现执行器存在运行的调度任务,将会终止运行中的调度任务并清空队列,然后运行本地调度任务;
- 任务超时时间:支持自定义任务超时时间,任务运行超时将会主动中断任务;
- 失败重试次数;支持自定义任务失败重试次数,当任务失败时将会按照预设的失败重试次数主动进行重试;
-
-
-
-
+```
### 3.1 BEAN模式(类形式)
@@ -1181,11 +1188,12 @@ Bean模式任务,支持基于类的开发方式,每个任务对应一个Java
#### 步骤一:执行器项目中,开发Job类:
- 1、开发一个继承自"com.xxl.job.core.handler.IJobHandler"的JobHandler类,实现其中任务方法。
- 2、手动通过如下方式注入到执行器容器。
- ```
- XxlJobExecutor.registJobHandler("demoJobHandler", new DemoJobHandler());
- ```
+```
+1、开发一个继承自"com.xxl.job.core.handler.IJobHandler"的JobHandler类,实现其中任务方法。
+2、手动通过如下方式注入到执行器容器。
+
+XxlJobExecutor.registJobHandler("demoJobHandler", new DemoJobHandler());
+```
#### 步骤二:调度中心,新建调度任务
后续步骤和 "3.2 BEAN模式(方法形式)"一致,可以前往参考。
@@ -1204,10 +1212,13 @@ Bean模式任务,支持基于方法的开发方式,每个任务对应一个
#### 步骤一:执行器项目中,开发Job方法:
- 1、任务开发:在Spring Bean实例中,开发Job方法;
- 2、注解配置:为Job方法添加注解 "@XxlJob(value="自定义jobhandler名称", init = "JobHandler初始化方法", destroy = "JobHandler销毁方法")",注解value值对应的是调度中心新建任务的JobHandler属性的值。
- 3、执行日志:需要通过 "XxlJobHelper.log" 打印执行日志;
- 4、任务结果:默认任务结果为 "成功" 状态,不需要主动设置;如有诉求,比如设置任务结果为失败,可以通过 "XxlJobHelper.handleFail/handleSuccess" 自主设置任务结果;
+```
+步骤:
+1、任务开发:在Spring Bean实例中,开发Job方法;
+2、注解配置:为Job方法添加注解 "@XxlJob(value="自定义jobhandler名称", init = "JobHandler初始化方法", destroy = "JobHandler销毁方法")",注解value值对应的是调度中心新建任务的JobHandler属性的值。
+3、执行日志:需要通过 "XxlJobHelper.log" 打印执行日志;
+4、任务结果:默认任务结果为 "成功" 状态,不需要主动设置;如有诉求,比如设置任务结果为失败,可以通过 "XxlJobHelper.handleFail/handleSuccess" 自主设置任务结果;
+```
```
// 可参考Sample示例执行器中的 "com.xxl.job.executor.jobhandler.SampleXxlJob" ,如下:
@@ -1320,10 +1331,8 @@ spring.ai.ollama.chat.options.temperature=0.8
dify.base-url=http://localhost/v1
// dify api-key;选择相关 workflow 应用并进入 “访问API” 页面,右上角 “API 密钥” 入口获取 api-key。
dify.api-key={自行获取并修改}
-
```
-
### 3.3 GLUE模式(Java)
任务以源码方式维护在调度中心,支持通过Web IDE在线更新,实时编译和生效,因此不需要指定JobHandler。开发流程如下:
@@ -1387,8 +1396,10 @@ dify.api-key={自行获取并修改}
点击进入"执行器管理"界面, 如下图:

- 1、"调度中心OnLine:"右侧显示在线的"调度中心"列表, 任务执行结束后, 将会以failover的模式进行回调调度中心通知执行结果, 避免回调的单点风险;
- 2、"执行器列表" 中显示在线的执行器列表, 可通过"OnLine 机器"查看对应执行器的集群机器。
+```
+1、"调度中心OnLine:"右侧显示在线的"调度中心"列表, 任务执行结束后, 将会以failover的模式进行回调调度中心通知执行结果, 避免回调的单点风险;
+2、"执行器列表" 中显示在线的执行器列表, 可通过"OnLine 机器"查看对应执行器的集群机器。
+```
点击按钮 "+新增执行器" 弹框如下图, 可新增执行器配置:
@@ -1396,6 +1407,7 @@ dify.api-key={自行获取并修改}
执行器属性说明
+```
AppName: 是每个执行器集群的唯一标示AppName, 执行器会周期性以AppName为对象进行自动注册。可通过该配置自动发现注册成功的执行器, 供任务调度时使用;
名称: 执行器的名称, 因为AppName限制字母数字等组成,可读性不强, 名称为了提高执行器的可读性;
排序: 执行器的排序, 系统中需要执行器的地方,如任务新增, 将会按照该排序读取可用的执行器列表;
@@ -1403,6 +1415,7 @@ dify.api-key={自行获取并修改}
自动注册:执行器自动进行执行器注册,调度中心通过底层注册表可以动态发现执行器机器地址;
手动录入:人工手动录入执行器的地址信息,多地址逗号分隔,供调度中心使用;
机器地址:"注册方式"为"手动录入"时有效,支持人工维护执行器的地址信息;注册地址格式可参考“http://127.0.0.1:9999/”,为执行器内嵌服务地址;
+```
### 4.2 新建任务
进入任务管理界面,点击“新增任务”按钮,在弹出的“新增任务”界面配置任务属性后保存即可。详情页参考章节 "三、任务详解"。
@@ -1434,6 +1447,7 @@ dify.api-key={自行获取并修改}

+```
调度时间:"调度中心"触发本次调度并向"执行器"发送任务执行信号的时间;
调度结果:"调度中心"触发本次调度的结果,200表示成功,500或其他表示失败;
调度备注:"调度中心"触发本次调度的日志信息;
@@ -1446,6 +1460,7 @@ dify.api-key={自行获取并修改}
操作:
"执行日志"按钮:点击可查看本地任务执行的详细日志信息;详见“4.8 查看执行日志”;
"终止任务"按钮:点击可终止本地调度对应执行器上本任务的执行线程,包括未执行的阻塞任务一并被终止;
+```
### 4.8 查看执行日志
点击执行日志右侧的 “执行日志” 按钮,可跳转至执行日志界面,可以查看业务代码中打印的完整日志,如下图;
@@ -1503,24 +1518,28 @@ try{
## 五、总体设计
### 5.1 源码目录介绍
- - /doc :文档资料
- - /db :“调度数据库”建表脚本
- - /xxl-job-admin :调度中心,项目源码
- - /xxl-job-core :公共Jar依赖
- - /xxl-job-executor-samples :执行器,Sample示例项目(大家可以在该项目上进行开发,也可以将现有项目改造生成执行器项目)
+
+```
+- /doc :文档资料
+- /db :“调度数据库”建表脚本
+- /xxl-job-admin :调度中心,项目源码
+- /xxl-job-core :公共Jar依赖
+- /xxl-job-executor-samples :执行器,Sample示例项目(大家可以在该项目上进行开发,也可以将现有项目改造生成执行器项目)
+```
### 5.2 “调度数据库”配置
XXL-JOB调度模块基于自研调度组件并支持集群部署,调度数据库表说明如下:
- - xxl_job_lock:任务调度锁表;
- - xxl_job_group:执行器信息表,维护任务执行器信息;
- - xxl_job_info:调度扩展信息表: 用于保存XXL-JOB调度任务的扩展信息,如任务分组、任务名、机器地址、执行器、执行入参和报警邮件等等;
- - xxl_job_log:调度日志表: 用于保存XXL-JOB任务调度的历史信息,如调度结果、执行结果、调度入参、调度机器和执行器等等;
- - xxl_job_log_report:调度日志报表:用户存储XXL-JOB任务调度日志的报表,调度中心报表功能页面会用到;
- - xxl_job_logglue:任务GLUE日志:用于保存GLUE更新历史,用于支持GLUE的版本回溯功能;
- - xxl_job_registry:执行器注册表,维护在线的执行器和调度中心机器地址信息;
- - xxl_job_user:系统用户表;
-
+```
+- xxl_job_lock:任务调度锁表;
+- xxl_job_group:执行器信息表,维护任务执行器信息;
+- xxl_job_info:调度扩展信息表: 用于保存XXL-JOB调度任务的扩展信息,如任务分组、任务名、机器地址、执行器、执行入参和报警邮件等等;
+- xxl_job_log:调度日志表: 用于保存XXL-JOB任务调度的历史信息,如调度结果、执行结果、调度入参、调度机器和执行器等等;
+- xxl_job_log_report:调度日志报表:用户存储XXL-JOB任务调度日志的报表,调度中心报表功能页面会用到;
+- xxl_job_logglue:任务GLUE日志:用于保存GLUE更新历史,用于支持GLUE的版本回溯功能;
+- xxl_job_registry:执行器注册表,维护在线的执行器和调度中心机器地址信息;
+- xxl_job_user:系统用户表;
+```
### 5.3 架构设计
#### 5.3.1 设计思想
@@ -1582,6 +1601,7 @@ XXL-JOB的单个任务,针对多个执行器是并行运行的,针对单个
调度模块的“调度中心”作为Web服务部署时,一方面承担调度中心功能,另一方面也为执行器提供API服务。
调度中心提供的"日志回调服务API服务"代码位置如下:
+
```
xxl-job-admin#com.xxl.job.admin.controller.JobApiController.callback
```
@@ -1660,11 +1680,13 @@ xxl-job-admin#com.xxl.job.admin.controller.JobApiController.callback
目前支持的脚本类型如下:
+```
- shell脚本:任务运行模式选择为 "GLUE模式(Shell)"时支持 "Shell" 脚本任务;
- python脚本:任务运行模式选择为 "GLUE模式(Python)"时支持 "Python" 脚本任务;
- php脚本:任务运行模式选择为 "GLUE模式(PHP)"时支持 "PHP" 脚本任务;
- nodejs脚本:任务运行模式选择为 "GLUE模式(NodeJS)"时支持 "NodeJS" 脚本任务;
- powershell:任务运行模式选择为 "GLUE模式(PowerShell)"时支持 "PowerShell" 脚本任务;
+```
脚本任务通过 Exit Code 判断任务执行结果,状态码可参考章节 "5.15 任务执行结果说明";
@@ -1687,9 +1709,13 @@ XXL-JOB会为每次调度请求生成一个单独的日志文件,需要通过
### 5.6 通讯模块剖析
#### 5.6.1 一次完整的任务调度通讯流程
- - 1、“调度中心”向“执行器”发送http调度请求: “执行器”中接收请求的服务,实际上是一台内嵌Server,默认端口9999;
- - 2、“执行器”执行任务逻辑;
- - 3、“执行器”http回调“调度中心”调度结果: “调度中心”中接收回调的服务,是针对执行器开放一套API服务;
+
+```
+流程:
+- 1、“调度中心”向“执行器”发送http调度请求: “执行器”中接收请求的服务,实际上是一台内嵌Server,默认端口9999;
+- 2、“执行器”执行任务逻辑;
+- 3、“执行器”http回调“调度中心”调度结果: “调度中心”中接收回调的服务,是针对执行器开放一套API服务;
+```
#### 5.6.2 通讯数据加密
调度中心向执行器发送的调度请求时使用RequestModel和ResponseModel两个对象封装调度请求参数和响应数据, 在进行通讯之前底层会将上述两个对象对象序列化,并进行数据协议以及时间戳检验,从而达到数据加密的功能;
@@ -1697,11 +1723,12 @@ XXL-JOB会为每次调度请求生成一个单独的日志文件,需要通过
### 5.7 任务注册, 任务自动发现
自v1.5版本之后, 任务取消了"任务执行机器"属性, 改为通过任务注册和自动发现的方式, 动态获取远程执行器地址并执行。
- AppName: 每个执行器机器集群的唯一标示, 任务注册以 "执行器" 为最小粒度进行注册; 每个任务通过其绑定的执行器可感知对应的执行器机器列表;
- 注册表: 见"xxl_job_registry"表, "执行器" 在进行任务注册时将会周期性维护一条注册记录,即机器地址和AppName的绑定关系; "调度中心" 从而可以动态感知每个AppName在线的机器列表;
- 执行器注册: 任务注册Beat周期默认30s; 执行器以一倍Beat进行执行器注册, 调度中心以一倍Beat进行动态任务发现; 注册信息的失效时间为三倍Beat;
- 执行器注册摘除:执行器销毁时,将会主动上报调度中心并摘除对应的执行器机器信息,提高心跳注册的实时性;
-
+```
+AppName: 每个执行器机器集群的唯一标示, 任务注册以 "执行器" 为最小粒度进行注册; 每个任务通过其绑定的执行器可感知对应的执行器机器列表;
+注册表: 见"xxl_job_registry"表, "执行器" 在进行任务注册时将会周期性维护一条注册记录,即机器地址和AppName的绑定关系; "调度中心" 从而可以动态感知每个AppName在线的机器列表;
+执行器注册: 任务注册Beat周期默认30s; 执行器以一倍Beat进行执行器注册, 调度中心以一倍Beat进行动态任务发现; 注册信息的失效时间为三倍Beat;
+执行器注册摘除:执行器销毁时,将会主动上报调度中心并摘除对应的执行器机器信息,提高心跳注册的实时性;
+```
为保证系统"轻量级"并且降低学习部署成本,没有采用Zookeeper作为注册中心,采用DB方式进行任务注册发现;
@@ -1718,12 +1745,15 @@ XXL-JOB会为每次调度请求生成一个单独的日志文件,需要通过
"分片广播" 和普通任务开发流程一致,不同之处在于可以获取分片参数,获取分片参数进行分片业务处理。
- Java语言任务获取分片参数方式:BEAN、GLUE模式(Java)
+
```
// 可参考Sample示例执行器中的示例任务"ShardingJobHandler"了解试用
int shardIndex = XxlJobHelper.getShardIndex();
int shardTotal = XxlJobHelper.getShardTotal();
```
+
- 脚本语言任务获取分片参数方式:GLUE模式(Shell)、GLUE模式(Python)、GLUE模式(Nodejs)
+
```
// 脚本任务入参固定为三个,依次为:任务传参、分片序号、分片总数。以Shell模式任务为例,获取分片参数代码如下
echo "分片序号 index = $2"
@@ -1732,8 +1762,10 @@ echo "分片总数 total = $3"
分片参数属性说明:
- index:当前分片序号(从0开始),执行器集群列表中当前执行器的序号;
- total:总分片数,执行器集群的总机器数量;
+```
+index:当前分片序号(从0开始),执行器集群列表中当前执行器的序号;
+total:总分片数,执行器集群的总机器数量;
+```
该特性适用场景如:
- 1、分片任务场景:10个执行器的集群来处理10w条数据,每台机器只需要处理1w条数据,耗时降低10倍;
@@ -1768,10 +1800,10 @@ echo "分片总数 total = $3"
### 5.13 任务执行结果说明
系统根据以下标准判断任务执行结果,可参考之。
--- | Bean/Glue(Java) | Glue(Shell) 等脚本任务
---- | --- | ---
-成功 | IJobHandler.SUCCESS | 0
-失败 | IJobHandler.FAIL | -1(非0状态码)
+| -- | Bean/Glue(Java) | Glue(Shell) 等脚本任务 |
+|----|---------------------|-------------------|
+| 成功 | IJobHandler.SUCCESS | 0 |
+| 失败 | IJobHandler.FAIL | -1(非0状态码) |
### 5.14 任务超时控制
支持设置任务超时时间,任务运行超时的情况下,将会主动中断任务;
@@ -2105,7 +2137,6 @@ Header:
```
-
## 七、版本更新日志
### 7.1 版本 V1.1.x,新特性[2015-12-05]
**【于V1.1.x版本,XXL-JOB正式应用于我司,内部定制别名为 “Ferrari”,新接入应用推荐使用最新版本】**
@@ -2125,16 +2156,18 @@ Header:
- 4、支持“任务日志”;
- 5、支持“串行执行”,并行执行;
- 说明:V1.2版本将系统架构按功能拆分为:
-
- - 调度模块(调度中心):负责管理调度信息,按照调度配置发出调度请求;
- - 执行模块(执行器):负责接收调度请求并执行任务逻辑;
- - 通讯模块:负责调度模块和任务模块之间的信息通讯;
- 优点:
-
- - 解耦:任务模块提供任务接口,调度模块维护调度信息,业务相互独立;
- - 高扩展性;
- - 稳定性;
+说明:V1.2版本将系统架构按功能拆分为:
+```
+- 调度模块(调度中心):负责管理调度信息,按照调度配置发出调度请求;
+- 执行模块(执行器):负责接收调度请求并执行任务逻辑;
+- 通讯模块:负责调度模块和任务模块之间的信息通讯;
+```
+优点:
+```
+- 解耦:任务模块提供任务接口,调度模块维护调度信息,业务相互独立;
+- 高扩展性;
+- 稳定性;
+```
### 7.3 版本 V1.3.0,新特性[2016-05-19]
- 1、遗弃“本地任务”模式,推荐使用“远程任务”,易于系统解耦,任务对应的JobHandler统称为“执行器”;
@@ -2148,11 +2181,13 @@ Header:
### 7.4 版本 V1.3.1,新特性[2016-05-23]
- 1、更新项目目录结构:
+ ```
- /xxl-job-admin -------------------- 【调度中心】:负责管理调度信息,按照调度配置发出调度请求;
- /xxl-job-core ----------------------- 公共依赖
- /xxl-job-executor-example ------ 【执行器】:负责接收调度请求并执行任务逻辑;
- /db ---------------------------------- 建表脚本
- /doc --------------------------------- 用户手册
+ ```
- 2、在新的目录结构上,升级了用户手册;
- 3、优化了一些交互和UI;
@@ -2608,7 +2643,6 @@ public void execute() {
- 3、【修复】漏洞修复,包括:"CVE-2022-43402" groovy低版本漏洞修复;"CVE-2024-29025" netty低版本漏洞修复;"CVE-2024-3366" freemarker模板注入漏洞修复;"CVE-2022-43183" 越权漏洞增强修复;
- 4、【修复】调度日志页面XSS问题修复(ISSUE-3360)。
-
### 7.35 版本 v2.4.2 Release Notes[2024-11-16]
- 1、【优化】调度中心任务Next计算逻辑调整,避免Cron解析失败导致重复执行问题。
- 2、【优化】Cron解析组件代码重构微调,健壮性提升;
@@ -2855,13 +2889,12 @@ alter table xxl_job_log
- 9、【优化】低层守护线程升级切换CyclicThread,提升稳定性以及可维护性;
- 10、【优化】调度中心UI交互优化,任务及日志列表下拉框支持模糊搜索,提升多任务情况下交互体验;
-### 7.46 版本 v3.4.2 Release Notes[ING]
+### 7.46 版本 v3.4.2 Release Notes[2026-06-19]
- 1、【升级】PowerShell类型GLUE任务,升级使用 PowerShell7(pwsh命令)执行,提升性能、编码兼容性以及跨平台适配性;
-(注意:对应执行器需要安装PowerShell 7.0以上版本,从而支持 pwsh 命令)
+(注意:执行器所在机器需要安装 PowerShell 7.0 及以上版本,从而支持 pwsh 命令)
- 2、【修复】调度日志列表日期处理逻辑修复,兼容执行信息为空阻塞列表加载问题;
- 3、【安全】任务RollingLog权限校验完善,防止越权查看任务日志;
-
### 7.47 版本 v3.5.0 Release Notes[ING]
- 1、【TODO】AccessToken线上化管理:执行期维度,限制操作当前执行期;
- 2、【TODO】调度中心OpenAPI增强:提供任务管理能力;封装Agent Skill并推送ClawHub;
diff --git a/pom.xml b/pom.xml
index cf7f1f57..95591294 100644
--- a/pom.xml
+++ b/pom.xml
@@ -3,7 +3,7 @@
4.0.0
com.xuxueli
xxl-job
- 3.4.2-SNAPSHOT
+ 3.4.2
pom
${project.artifactId}
diff --git a/xxl-job-admin/pom.xml b/xxl-job-admin/pom.xml
index d6741671..707607d9 100644
--- a/xxl-job-admin/pom.xml
+++ b/xxl-job-admin/pom.xml
@@ -4,7 +4,7 @@
com.xuxueli
xxl-job
- 3.4.2-SNAPSHOT
+ 3.4.2
xxl-job-admin
jar
diff --git a/xxl-job-admin/src/main/resources/i18n/message_en.properties b/xxl-job-admin/src/main/resources/i18n/message_en.properties
index 8e03187b..dd5a97f6 100644
--- a/xxl-job-admin/src/main/resources/i18n/message_en.properties
+++ b/xxl-job-admin/src/main/resources/i18n/message_en.properties
@@ -1,6 +1,6 @@
admin_name=Scheduling Center
admin_name_full=Distributed Task Scheduling Platform|XXL-JOB
-admin_version=3.4.2-SNAPSHOT
+admin_version=3.4.2
admin_i18n=en
## system
diff --git a/xxl-job-admin/src/main/resources/i18n/message_zh_CN.properties b/xxl-job-admin/src/main/resources/i18n/message_zh_CN.properties
index 63d80425..db1f9c47 100644
--- a/xxl-job-admin/src/main/resources/i18n/message_zh_CN.properties
+++ b/xxl-job-admin/src/main/resources/i18n/message_zh_CN.properties
@@ -1,6 +1,6 @@
admin_name=任务调度中心
admin_name_full=分布式任务调度平台|XXL-JOB
-admin_version=3.4.2-SNAPSHOT
+admin_version=3.4.2
admin_i18n=
## system
diff --git a/xxl-job-admin/src/main/resources/i18n/message_zh_TC.properties b/xxl-job-admin/src/main/resources/i18n/message_zh_TC.properties
index a83e7364..d02b8048 100755
--- a/xxl-job-admin/src/main/resources/i18n/message_zh_TC.properties
+++ b/xxl-job-admin/src/main/resources/i18n/message_zh_TC.properties
@@ -1,6 +1,6 @@
admin_name=任務調度中心
admin_name_full=分布式任務調度平臺|XXL-JOB
-admin_version=3.4.2-SNAPSHOT
+admin_version=3.4.2
admin_i18n=
## system
diff --git a/xxl-job-core/pom.xml b/xxl-job-core/pom.xml
index 8fdf80c5..380196cc 100644
--- a/xxl-job-core/pom.xml
+++ b/xxl-job-core/pom.xml
@@ -4,7 +4,7 @@
com.xuxueli
xxl-job
- 3.4.2-SNAPSHOT
+ 3.4.2
xxl-job-core
jar
diff --git a/xxl-job-executor-samples/pom.xml b/xxl-job-executor-samples/pom.xml
index 307a2b29..32f8b8fb 100644
--- a/xxl-job-executor-samples/pom.xml
+++ b/xxl-job-executor-samples/pom.xml
@@ -4,7 +4,7 @@
com.xuxueli
xxl-job
- 3.4.2-SNAPSHOT
+ 3.4.2
xxl-job-executor-samples
pom
diff --git a/xxl-job-executor-samples/xxl-job-executor-sample-frameless/pom.xml b/xxl-job-executor-samples/xxl-job-executor-sample-frameless/pom.xml
index db117d41..09841273 100644
--- a/xxl-job-executor-samples/xxl-job-executor-sample-frameless/pom.xml
+++ b/xxl-job-executor-samples/xxl-job-executor-sample-frameless/pom.xml
@@ -6,7 +6,7 @@
com.xuxueli
xxl-job-executor-samples
- 3.4.2-SNAPSHOT
+ 3.4.2
xxl-job-executor-sample-frameless
jar
diff --git a/xxl-job-executor-samples/xxl-job-executor-sample-springboot-ai/pom.xml b/xxl-job-executor-samples/xxl-job-executor-sample-springboot-ai/pom.xml
index 885ad501..2eda9dbf 100644
--- a/xxl-job-executor-samples/xxl-job-executor-sample-springboot-ai/pom.xml
+++ b/xxl-job-executor-samples/xxl-job-executor-sample-springboot-ai/pom.xml
@@ -6,7 +6,7 @@
com.xuxueli
xxl-job-executor-samples
- 3.4.2-SNAPSHOT
+ 3.4.2
xxl-job-executor-sample-springboot-ai
jar
diff --git a/xxl-job-executor-samples/xxl-job-executor-sample-springboot/pom.xml b/xxl-job-executor-samples/xxl-job-executor-sample-springboot/pom.xml
index 18311e7e..428b5819 100644
--- a/xxl-job-executor-samples/xxl-job-executor-sample-springboot/pom.xml
+++ b/xxl-job-executor-samples/xxl-job-executor-sample-springboot/pom.xml
@@ -6,7 +6,7 @@
com.xuxueli
xxl-job-executor-samples
- 3.4.2-SNAPSHOT
+ 3.4.2
xxl-job-executor-sample-springboot
jar