@ -736,6 +736,41 @@ XXL-JOB是一个分布式任务调度平台, 其核心设计目标是开发迅
- 640、再造再生健康科技有限公司
- 641、华宝证券
- 642、卓正医疗
- 643、深圳湛信科技
- 644、陕西鑫众为软件有限公司
- 645、深圳市润农科技有限公司
- 646、庚商教育智能科技有限公司
- 647、杭州祎声科技
- 648、四川久远银海软件股份有限公司
- 649、GeeFox极狐低代码
- 650、浙江和仁科技股份有限公司
- 651、宁波聚臻智能科技有限公司
- 652、福建福昕软件开发股份有限公司【福昕】
- 653、广州中长康达信息技术有限公司
- 654、武汉趣改信息科技有限公司
- 655、北京华夏思源科技发展有限公司
- 656、宁波关关通科技有限公司
- 657、青岛吕氏餐饮有限公司
- 658、杭州乐刻网络科技有限公司
- 659、上海红瓦信息科技有限公司
- 660、陕西旅小宝信息科技有限公司
- 661、中科卓恒(大连)科技有限公司
- 662、北京华益精点生物技术有限公司
- 663、马士基( 中国) 航运有限公司【马士基】
- 664、陕西美咚网络科技有限公司
- 665、山东新北洋信息技术股份有限公司
- 666、福建中瑞文化发展集团有限公司
- 667、黑龙江省建工集团有限责任公司【黑龙江省建工】
- 668、志信能达安全科技(广州)有限公司
- 669、重庆开源共创科技有限公司
- 670、华泰人寿保险股份有限公司【华泰人寿】
- 671、成都盘古纵横集团
- 672、北京果果乐学科技有限公司
- 673、北京凌云空间科技有限公司
- 674、临工重机股份有限公司
- 675、上海热风时尚管理集团【热风】
- 676、HashKey Exchange
- 677、傲基( 深圳) 跨境商务股份有限公司
- ……
> 更多接入的公司,欢迎在 [登记地址 ](https://github.com/xuxueli/xxl-job/issues/1 ) 登记,登记仅仅为了产品推广。
@ -756,6 +791,7 @@ XXL-JOB是一个分布式任务调度平台, 其核心设计目标是开发迅
--- | ---
[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/xuxueli0323/xxl-job ](https://gitcode.com/xuxueli0323/xxl-job ) | [Download ](https://gitcode.com/xuxueli0323/xxl-job/tags )
#### 中央仓库地址
@ -875,8 +911,6 @@ docker pull xuxueli/xxl-job-admin
- 创建容器并运行
```
docker run -p 8080:8080 -v /tmp:/data/applogs --name xxl-job-admin -d xuxueli/xxl-job-admin:{指定版本}
/**
* 如需自定义 mysql 等配置,可通过 "-e PARAMS" 指定,参数格式 PARAMS="--key=value --key2=value2" ;
* 配置项参考文件:/xxl-job/xxl-job-admin/src/main/resources/application.properties
@ -1027,7 +1061,7 @@ public XxlJobSpringExecutor xxlJobExecutor() {
GLUE模式(PHP):任务以源码方式维护在调度中心;该模式的任务实际上是一段 "php" 脚本;
GLUE模式(NodeJS):任务以源码方式维护在调度中心;该模式的任务实际上是一段 "nodejs" 脚本;
GLUE模式(PowerShell):任务以源码方式维护在调度中心;该模式的任务实际上是一段 "PowerShell" 脚本;
- JobHandler: 运行模式为 "BEAN模式" 时生效, 对应执行器中新开发的JobHandler类“@JobHandler ”注解自定义的value值;
- JobHandler: 运行模式为 "BEAN模式" 时生效, 对应执行器中新开发的JobHandler类“@Xxl Job”注解自定义的value值;
- 执行参数:任务执行所需的参数;
高级配置:
@ -1330,11 +1364,11 @@ XXL-JOB调度模块基于自研调度组件并支持集群部署, 调度数据
#### 5.3.2 系统组成
- ** 调度模块(调度中心)**:
负责管理调度信息,按照调度配置发出调度请求,自身不承担业务代码。调度系统与任务解耦,提高了系统可用性和稳定性,同时调度系统性能不再受限于任务模块;
支持可视化、简单且动态的管理调度信息, 包括任务新建, 更新, 删除, GLUE开发和任务报警等, 所有上述操作都会实时生效, 同时支持监控调度结果以及执行日志, 支持执行器Failover。
负责管理调度信息,按照调度配置发出调度请求,自身不承担业务代码。调度系统与任务解耦,提高了系统可用性和稳定性,同时调度系统性能不再受限于任务模块;
支持可视化、简单且动态的管理调度信息, 包括任务新建, 更新, 删除, GLUE开发和任务报警等, 所有上述操作都会实时生效, 同时支持监控调度结果以及执行日志, 支持执行器Failover。
- ** 执行模块(执行器)**:
负责接收调度请求并执行任务逻辑。任务模块专注于任务的执行等操作,开发和维护更加简单和高效;
接收“调度中心”的执行请求、终止请求和日志请求等。
负责接收调度请求并执行任务逻辑。任务模块专注于任务的执行等操作,开发和维护更加简单和高效;
接收“调度中心”的执行请求、终止请求和日志请求等。
#### 5.3.3 架构图
@ -1469,7 +1503,7 @@ xxl-job-admin#com.xxl.job.admin.controller.JobApiController.callback
#### 5.5.4 执行器
执行器实际上是一个内嵌的Server, 默认端口9999( 配置项: xxl.job.executor.port) 。
在项目启动时,执行器会通过“@JobHandler ”识别Spring容器中“Bean模式任务”, 以注解的value属性为key管理起来。
在项目启动时,执行器会通过“@Xxl Job”识别Spring容器中“Bean模式任务”, 以注解的value属性为key管理起来。
“执行器”接收到“调度中心”的调度请求时, 如果任务类型为“Bean模式”, 将会匹配Spring容器中的“Bean模式任务”, 然后调用其execute方法, 执行任务逻辑。如果任务类型为“GLUE模式”, 将会加载GLue代码, 实例化Java对象, 注入依赖的Spring服务( 注意: Glue代码中注入的Spring服务, 必须存在与该“执行器”项目的Spring容器中) , 然后调用execute方法, 执行任务逻辑。
@ -1561,7 +1595,7 @@ echo "分片总数 total = $3"
- 1、执行器改为手动注册, 下线一半机器列表( A组) , 线上运行另一半机器列表( B组) ;
- 2、等待A组机器任务运行结束并编译上线; 执行器注册地址替换为A组;
- 3、等待B组机器任务运行结束并编译上线; 执行器注册地址替换为A组+B组;
操作结束;
操作结束;
### 5.13 任务执行结果说明
系统根据以下标准判断任务执行结果,可参考之。
@ -1589,7 +1623,7 @@ XXL-JOB是一个跨语言的任务调度平台, 主要体现在如下几个方
可以通过以下命令快速构建调度中心,并启动运行;
```
mvn clean package
docker build -t xuxueli/xxl-job-admin ./xxl-job-admin
docker build -t xuxueli/xxl-job-admin:{version} ./xxl-job-admin
docker run --name xxl-job-admin -p 8080:8080 -d xuxueli/xxl-job-admin
```
@ -1818,7 +1852,7 @@ Header:
#### d、查看执行日志
```
说明:终止任务 ,滚动方式加载
说明:查看任务日志 ,滚动方式加载
------
@ -1868,16 +1902,16 @@ Header:
- 4、支持“任务日志”;
- 5、支持“串行执行”, 并行执行;
说明: V1.2版本将系统架构按功能拆分为:
说明: V1.2版本将系统架构按功能拆分为:
- 调度模块(调度中心):负责管理调度信息,按照调度配置发出调度请求;
- 执行模块(执行器):负责接收调度请求并执行任务逻辑;
- 通讯模块:负责调度模块和任务模块之间的信息通讯;
优点:
- 调度模块(调度中心):负责管理调度信息,按照调度配置发出调度请求;
- 执行模块(执行器):负责接收调度请求并执行任务逻辑;
- 通讯模块:负责调度模块和任务模块之间的信息通讯;
优点:
- 解耦:任务模块提供任务接口,调度模块维护调度信息,业务相互独立;
- 高扩展性;
- 稳定性;
- 解耦:任务模块提供任务接口,调度模块维护调度信息,业务相互独立;
- 高扩展性;
- 稳定性;
### 7.3 版本 V1.3.0,新特性[2016-05-19]
- 1、遗弃“本地任务”模式, 推荐使用“远程任务”, 易于系统解耦, 任务对应的JobHandler统称为“执行器”;
@ -1885,17 +1919,17 @@ Header:
- 3、UI交互优化: 左侧菜单展开状态优化, 菜单项选中状态优化, 任务列表打开表格有压缩优化;
- 4、【重要】“执行器”细分为: BEAN、GLUE两种开发模式, 简介见下文:
“执行器” 模式简介:
- BEAN模式执行器: 每个执行器都是Spring的一个Bean实例, XXL-JOB通过注解@JobHandler识别和调度执行器;
-GLUE模式执行器: 每个执行器对应一段代码, 在线Web编辑和维护, 动态编译生效, 执行器负责加载GLUE代码和执行;
“执行器” 模式简介:
- BEAN模式执行器: 每个执行器都是Spring的一个Bean实例, XXL-JOB通过注解@JobHandler识别和调度执行器;
-GLUE模式执行器: 每个执行器对应一段代码, 在线Web编辑和维护, 动态编译生效, 执行器负责加载GLUE代码和执行;
### 7.4 版本 V1.3.1,新特性[2016-05-23]
- 1、更新项目目录结构:
- /xxl-job-admin -------------------- 【调度中心】:负责管理调度信息,按照调度配置发出调度请求;
- /xxl-job-core ----------------------- 公共依赖
- /xxl-job-executor-example ------ 【执行器】:负责接收调度请求并执行任务逻辑;
- /db ---------------------------------- 建表脚本
- /doc --------------------------------- 用户手册
- /xxl-job-admin -------------------- 【调度中心】:负责管理调度信息,按照调度配置发出调度请求;
- /xxl-job-core ----------------------- 公共依赖
- /xxl-job-executor-example ------ 【执行器】:负责接收调度请求并执行任务逻辑;
- /db ---------------------------------- 建表脚本
- /doc --------------------------------- 用户手册
- 2、在新的目录结构上, 升级了用户手册;
- 3、优化了一些交互和UI;
@ -2341,17 +2375,39 @@ public void execute() {
- 5、【优化】任务线程名优化, 提升可读性与问题定位效率(ISSUE-2527)。
### 7.33 版本 v2.4.0 Release Notes[2023-03-23]
- 1、【优化】执行器任务Bean扫描逻辑优化: 解决懒加载注解失效问题。
- 1、【优化】执行器任务Bean扫描逻辑优化: 解决懒加载注解失效问题;
- 2、【优化】多个项目依赖升级至较新稳定版本, 涉及netty、groovy、spring、springboot、mybatis等;
- 3、【修复】"CVE-2022-36157" 授权漏洞修复。
- 4、【修复】"CVE-2022-43183" SSRF漏洞修复。
- 3、【修复】漏洞修复, 包括: "CVE-2022-36157" 授权漏洞修复;"CVE-2022-43183" SSRF漏洞修复;
### 7.34 版本 v2.4.1 Release Notes[规划中 ]
### 7.34 版本 v2.4.1 Release Notes[2024-04-17 ]
- 1、【优化】多个项目依赖升级至较新稳定版本, 涉及netty、groovy、springboot、mybatis等;
- 2、【修复】"CVE-2022-43402" groovy低版本漏洞修复。
- 3、【修复】调度日志页面XSS漏洞修复(ISSUE-3360)。
- 4、[规划中]注册节点,弹框分页展示;解决注册节点过多时无法展示问题;
- 2、【优化】执行器注册节点显示交互调整, 优化注册节点过多时展示不全体验;
- 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解析组件代码重构微调, 健壮性提升;
- 3、【优化】修改密码交互调整, 避免CSRF隐患;
- 4、【优化】JdkSerializeTool流关闭逻辑优化;
- 5、【优化】任务信息、执行日志API非功能设计完善, 避免越权隐患;
- 6、【修复】漏洞修复, 包括 "CVE-2024-42681" 子任务越权漏洞修复、"CVE-2023-33779" 任务API越权问题修复;
- 7、【升级】多个项目依赖升级至较新稳定版本, 涉及netty、groovy、gson、springboot、mybatis等;
**备注:**
- a、“CVE-2024-38820”漏洞源自spring, 当前使用spring5.x及springboot2.x软件普遍受该问题影响。 该问题修复需要升级至spring6.x与springboot3.x, 同时需要升级JDK17, 如有诉求可自行升级。计划下个大版本升级spring及jdk版本解决该问题。
- b、本次升级数据模型及通讯协议向前兼容, v2.4.*可无缝升级。
### 7.36 版本 v2.5.0 Release Notes[规划中]
- 1、【优化】框架基础守护线程异常处理逻辑优化, 避免极端情况下因Error导致调度终止问题;
- 2、【优化】部分系统日志优化, 提升可读性;
- 3、【重构】调度线程任务信息更新逻辑优化, 避免极端情况下已关闭任务被启动问题;
- 5、【重构】执行器注册逻辑重构, 降低多调度中心地址时并发注册问题; 注册表“xxl_job_registry”新增唯一索引, 避免冗余注册信息存储;
- 4、[规划中]升级springboot3.x, 解决2.x老版本漏洞类问题。注意, springboot3.x依赖jdk17;
- 5、[规划中]安全功能增强, 通讯加密参数改用加密数据避免AccessToken明文, 降低token泄漏风险;
- 6、[规划中]登陆态Token声称逻辑优化, 混淆登陆时间属性, 降低token泄漏风险;
### TODO LIST
- 1、调度隔离: 调度中心针对不同执行器, 各自维护不同的调度和远程触发组件。