Releases: xuxueli/xxl-job
Releases · xuxueli/xxl-job
XXL-JOB v3.3.0 | 分布式任务调度平台
- 1、【新增】执行器新增“任务扫描排除路径”配置项(xxl.job.executor.excludedpackage),任务扫描时忽略指定包路径下的任务;
- 2、【优化】执行器任务Bean扫描逻辑调整,优化懒加载Bean检测及过滤机制,避免提前初始化类问题;
- 3、【新增】合并PR-3840,执行器支持通过XxlJobHelper获取任务触发时间戳;XxlJobHelper组件完善,支持通过“XxlJobHelper.getLogId/getLogDateTime/getLogFileName”方法获取执行日志相关信息;
- 4、【升级】调度中心UI框架升级,统一交互组件,支持多主题、多标签与局部渲染等,升级UI组件及性能;
- 5、【优化】调度时间轮组件强化,保障不重不漏:调度时间轮单刻度数据去重,避免极端情况下任务重复执行;时间轮转动时校验临近刻度,避免极端情况下遗漏刻度;
- 6、【优化】调度任务锁逻辑优化,事务SQL下沉至Mapper层统一管理,并增加测试用例,提升代码可读性以及可维护性;
- 7、【优化】调度快慢线程池默认配置上调,提升默认配置单机负载;调度预读任务数计算系数下调,降低事务颗粒度,提升性能及稳定性;
- 8、【性能】调度中心调整资源加载逻辑,移除不必要的拦截器,提升页面加载性能;
- 9、【优化】优化日志列表页面展示逻辑,新增展示“日志ID”与“任务名称”信息;
- 10、【优化】报表统计SQL优化,修复小概率情况下查询null值问题;报表初始化SQL优化,修复小概率情况增改竞争问题;
- 11、【优化】优日志报告与清理逻辑,增加清理过期日志的异常捕获,避免线程异常退出;
- 12、【优化】任务回调失败日志读写磁盘逻辑优化,解决极端情况下大文件读写内存问题;
- 13、【升级】Http通讯组件升级,基于接口代理方式重构通讯组件,提升组件性能及扩展性;
- 14、【重构】规范API交互协议,通用响应结构体调整为Response,调度中心API统一为Response封装数据;
(注意:响应结构体从ReturnT升级为Response,其中属性值“content”会调整为“data”,通过openapi交互场景需要关注) - 15、【重构】调度过期策略、调度类型策略逻辑重构,代码组件化拆分并完善日志,提升健壮性及可维护性;
- 16、【重构】调度中心底层组件重构,组件初始化以及销毁逻辑统一处理,任务触发及和回调逻辑优化,避免资源泄漏风险;
- 17、【重构】调度中心底层组件模块化拆分,移除组件单例以及静态代码逻辑,提升组件可维护性;
- 18、【重构】重构Rolling日志读写逻辑,解决边界条件下异常情况,优化读写性能;
- 19、【修复】脚本任务process销毁逻辑优化,解决风险情况下脚本进程无法终止问题;
- 20、【修复】合并PR-2369,修复脚本任务参数取值问题;
- 21、【新增】任务审计日志,记录任务操作敏感日志信息,如任务新建/更新/删除/启停/触发以及GLUE代码更新等,用于系统监控、审计和安全分析,可快速追溯异常行为以及定位排查问题等。
(当前任务审计日志以Info级别输出在系统日志中,可通过关键词 "xxl-job operation log:" 检索过滤) - 22、【强化】通用HTTP任务(httpJobHandler)强化,支持更丰富请求参数设置,完整参数示例如下:
完整参数示例参考:
```
{
"url": "http://www.baidu.com",
"method": "POST",
"contentType": "application/json",
"headers": {
"header01": "value01"
},
"cookies": {
"cookie01": "value01"
},
"timeout": 3000,
"data": "request body data",
"form": {
"key01": "value01"
},
"auth": "auth data"
}
```
- 23、【优化】调度组件日志完善,提升边界情况下问题定位效率;
- 24、【升级】升级多项maven依赖至较新版本,如 netty、groovy、springboot、spring-ai、dify、mybatis、xxl-sso 等;
备注:
- a、本次升级数据模型向前兼容,v3.2.*版本可直接升级不需要进行数据库表调整;
- b、本次升级针对客户端rollinglog依赖字段做规范约束,如不关注该功能 v2.4.* 及后续版本客户端不需要升级/可兼容,否则需要升级客户端版本;
XXL-JOB v3.2.0 | 分布式任务调度平台
- 1、【强化】AI任务(ollamaJobHandler)优化:针对 “model” 模型配置信息,从执行器侧文件类配置调整至调度中心“任务参数”动态配置,支持集成多模型、并结合任务动态配置切换。
- 2、【安全】登录认证重构:密码加密算法从Md5改为Sha256;登录态改为登录后动态随机生成;提升系统安全性;(需要针对用户表进行字段调整,同时需要重新初始化密码信息;相关SQL脚本如下)
// 1、用户表password字段需要调整长度,执行如下命令
ALTER TABLE xxl_job_user
MODIFY COLUMN `password` varchar(100) NOT NULL COMMENT '密码加密信息';
ALTER TABLE xxl_job_user
ADD COLUMN `token` varchar(100) DEFAULT NULL COMMENT '登录token';
// 2、存量用户密码需要修改,可执行如下命令将密码初始化 “123456”;也可以自行通过 “SHA256Tool.sha256” 工具生成其他初始化密码;
UPDATE xxl_job_user t SET t.password = '8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92' WHERE t.username = {用户名};
- 3、【强化】GLUE模式(Python) 扩展,支持 "GLUE(Python3)" 与 "GLUE(Python2)" 两种模式,分别支持 python3/2 多版本;
- 4、【强化】调度中心系统日志调整,支持启动时指定 -DLOG_HOME 参数自定义日志位置;同时优化日志格式提升易读性;
- 5、【优化】任务Bean扫描规则调整,过滤冗余不必要扫描,避免系统组件提前初始化;
- 6、【优化】登录信息页面空值处理优化,避免空值影响ftl渲染;
- 7、【优化】异常页面处理逻辑优化,新增兜底落地页配置;
- 8、【重构】ReturnT 重构,简化代码结构,提升API易用性以及可维护性;
- 9、【重构】项目结构重构,提升可维护性与易读性;
- 10、【修复】漏洞修复(CVE-2025-7787),针对 httpJobHandler 支持配置URL白名单限制,防止服务器端请求伪造(SSRF)攻击。
- 11、【修复】合并PR-3738,修复拼写问题;
- 12、【修复】合并PR-3506,修复小概率情况下任务重复调度问题;
- 13、【修复】合并PR-3747,修复异常情况下资源泄漏风险;
- 14、【修复】IDOR越权问题修复,提升任务操作及日志管理安全性;
- 15、【升级】升级多项maven依赖至较新版本,如 netty、groovy、mybatis、spring、spring-ai、dify 等;
XXL-JOB v3.1.1 | 分布式任务调度平台
- 1、【调整】AI任务(difyWorkflowJobHandler)优化:针对 “baseUrl、apiKey” 等Dify配置信息,从执行器侧文件类配置调整至调度中心“任务参数”动态配置,支持多Dify应用集成并提升研发效率;
- 2、【优化】合并PR-2417,修复任务管理时JobHandler录入空格问题;
- 3、【优化】合并PR-2504,规避SQL注入问题;
- 4、【升级】多个项目依赖升级至较新稳定版本,涉及 netty、spring/springboot、groovy 等;
XXL-JOB v3.1.0 | 分布式任务调度平台
- 1、【新增】新增提供 “AI执行器” 并内置多个Bean模式 AI任务Handler,与spring-ai、ollama、dify等集成打通,支持快速开发AI类任务。
- AppName:xxl-job-executor-sample-ai
- 执行器代码:xxl-job-executor-sample-springboot-ai
- 执行器初始化脚本:执行参考SQL脚本,或自行人工创建:
INSERT INTO `xxl_job_group`(`app_name`, `title`, `address_type`, `address_list`, `update_time`) VALUES ('xxl-job-executor-sample-ai', 'AI执行器Sample', 0, NULL, now());
- 2、【新增】新增多个 Bean模式 AI任务Handler,如 ollamaJobHandler、difyWorkflowJobHandler 等,支持快速集成开发AI任务。任务配置可参考 AI执行器
- a、ollamaJobHandler: OllamaChat任务,支持自定义prompt、input等输入信息。
- b、difyWorkflowJobHandler:DifyWorkflow 任务,支持自定义inputs、user等输入信息。
- 3、【修复】合并PR-3708、PR-3704,解决固定速度调度模式下,下次计算执行时间小概率(间隔超长时)不准问题。
- 4、【修复】任务操作逻辑优化,修复边界情况下逻辑中断问题 (ISSUE-2081)。
- 5、【修复】调度中心Cron前端组件优化,解决week配置与后端兼容性问题 (ISSUE-2220)。
- 6、【修复】任务RollingLog权限逻辑调整:修复非管理员账号越权访问问题 (ISSUE-3705)。
- 7、【优化】Glue IDE调整,版本回溯支持查看修改时间;
- 8、【优化】任务RollingLog调整,XSS过滤支持白名单排出,提升日志易读性;
- 9、【优化】执行器日志文件保存天数(logretentiondays)调整,最小保留时间调整至3天。
- 10、【升级】多个项目依赖升级至较新稳定版本,涉及 gson、groovy、spring/springboot、mysql 等;
XXL-JOB v3.0.0 | 分布式任务调度平台
- 1、【升级】调度中心升级至 SpringBoot3 + JDK17;
- 2、【升级】Docker镜像升级,镜像构建基于JDK17;
- 3、【优化】IP获取逻辑优化,优先遍历网卡来获取可用IP;
- 4、【优化】通用命令行任务(“commandJobHandler”)优化,支持多参数执行,命令及参数之间通过空格隔开;如任务参数 "ls la" 或 "pwd" 将会执行命令并输出数据;
- 5、【优化】通用HTTP任务(httpJobHandler)优化,任务参数格式调整为json格式;
- 6、【升级】多个项目依赖升级至较新稳定版本,涉及 gson、groovy、spring/springboot 等;
备注:
- a、本次升级数据模型及通讯协议向前兼容,v2.4.*及后续版本可无缝升级;
- b、版本3.x开始要求Jdk17;版本2.x及以下支持Jdk1.8。如对Jdk版本有诉求,可选择接入不同版本;
XXL-JOB v2.5.0 | 分布式任务调度平台
- 1、【优化】框架基础守护线程异常处理逻辑优化,避免极端情况下因Error导致调度终止问题;
- 2、【优化】底层通讯超时时间支持自定义,默认3秒,缓解网络抖动导致任务通讯超时问题;可参考 xxl-job-admin 和 samples 示例代码自行配置;
- 3、【修复】调度中心快慢线程池优化拒绝策略,避免因默认AbortPolicy导致调度结果丢失问题;
- 4、【优化】调度中心快慢线程池队列长度调整,优化激增调度时任务积压问题;
- 5、【重构】调度线程任务信息更新逻辑优化,避免极端情况下已关闭任务被启动问题;
- 6、【重构】执行器注册逻辑重构,降低多调度中心地址时并发注册问题;任务注册表新增唯一索引,避免冗余注册信息存储;
- 7、【优化】部分系统日志优化,提升可读性;
- 8、【优化】合并PR-3616,代码结构注释优化;
- 9、【优化】合并PR-3619,避免调度过程中任务停止边界情况处理逻辑;
- 10、【优化】合并PR-3605,避免子任务是任务本身导致死循环;
- 11、【修复】合并PR-3585,修复全局密码长度不一致问题;
- 12、【优化】合并PR-3518,SQL列别名反引号包裹,提升跨数据迁移兼容性;
- 13、【优化】合并PR-3518、PR-3400,日志表索引优化,提升大日志量情况下日志查询及清理速度;
- 14、【升级】多个项目依赖升级至较新稳定版本,涉及netty、slf4j、junit等;
备注:
- a、本次升级数据模型及通讯协议向前兼容,v2.4.*代码和系统可无缝升级(该版本优化了“xxl_job_log”表索引,建议低版本参考调整);
- b、版本v2.5.x为基于jdk8的最后的大版本,将会长期持续维护,问题及漏洞将会及时跟进修复。
- c、下个大版本(v3.0)将会基于** jdk17 与 springboot3.x 构建;
XXL-JOB v2.4.2 | 分布式任务调度平台
- 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等;
备注:
- 1、“CVE-2024-38820”漏洞源自spring,当前使用spring5.x及springboot2.x软件普遍受该问题影响。 该问题修复需要升级至spring6.x与springboot3.x,同时需要升级JDK17,如有诉求可自行升级。计划下个大版本升级spring及jdk版本解决该问题。
- 2、本次升级数据模型及通讯协议向前兼容,v2.4.*可无缝升级。
XXL-JOB v2.4.1,分布式任务调度平台
- 1、【优化】多个项目依赖升级至较新稳定版本,涉及netty、groovy、springboot、mybatis等;
- 2、【修复】"CVE-2022-43402" groovy低版本漏洞修复。
- 3、【修复】"CVE-2024-29025" netty低版本漏洞修复。
- 4、【修复】"CVE-2024-3366" freemarker模板注入漏洞修复。
- 5、【修复】"CVE-2022-43183" 越权漏洞修复。
- 6、【修复】调度日志页面XSS漏洞修复(ISSUE-3360)。
- 7、【优化】执行器注册节点显示优化,解决注册节点过多时无法展示问题。
XXL-JOB v2.4.0,分布式任务调度平台
- 1、【优化】执行器任务Bean扫描逻辑优化:解决懒加载注解失效问题。
- 2、【优化】多个项目依赖升级至较新稳定版本,涉及netty、groovy、spring、springboot、mybatis等;
- 3、【修复】"CVE-2022-36157" 授权漏洞修复。
- 4、【修复】"CVE-2022-43183" SSRF漏洞修复。
XXL-JOB v2.3.1,分布式任务调度平台
- 1、【修复】修复风险漏洞,升级问题低版本项目依赖:CVE-2021-2471、CVE-2022-22965等。
- 2、【修复】修复故障告警逻辑,邮箱校验逻辑下放至EmailJobAlarm中,避免对其他告警方式的干扰。
- 3、【优化】调度通讯默认启用accessToken,提升系统安全性(建议生产环境自定义accessToken)。
- 4、【优化】合并多项PR,项目代码结构、健壮性优化:PR-2833、PR-2812、PR-2541、PR-2537、PR-2514、PR-2509、PR-2591。
- 5、【优化】任务线程名优化,提升可读性与问题定位效率(ISSUE-2527)。