Releases: xuxueli/xxl-job
Releases · xuxueli/xxl-job
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)。
XXL-JOB v2.3.0,分布式任务调度平台
Release Notes
- 1、【新增】调度过期策略:调度中心错过调度时间的补偿处理策略,包括:忽略、立即补偿触发一次等;
- 2、【新增】触发策略:除了常规Cron、API、父子任务触发方式外,新增提供 "固定间隔触发、(固定延时触发,实验中)" 新触发方式;
- 3、【新增】新增任务辅助工具 "XxlJobHelper":提供统一任务辅助能力,包括:任务上下文信息维护获取(任务参数、任务ID、分片参数)、日志输出、任务结果设置……等;
- 3.1、"ShardingUtil" 组件废弃:改用 "XxlJobHelper.getShardIndex()/getShardTotal();" 获取分片参数;
- 3.2、"XxlJobLogger" 组件废弃:改用 "XxlJobHelper.log" 进行日志输出;
- 4、【优化】任务核心类 "IJobHandler" 的 "execute" 方法取消出入参设计。改为通过 "XxlJobHelper.getJobParam" 获取任务参数并替代方法入参,通过 "XxlJobHelper.handleSuccess/handleFail" 设置任务结果并替代方法出参,示例代码如下;
@XxlJob("demoJobHandler")
public void execute() {
String param = XxlJobHelper.getJobParam(); // 获取参数
XxlJobHelper.handleSuccess(); // 设置任务结果
}
- 5、【优化】Cron编辑器增强:Cron编辑器修改cron时可实时查看最近运行时间;
- 6、【优化】执行器示例项目规范整理;
- 7、【优化】任务调度生命周期重构:调度(schedule)、触发(trigger)、执行(handle)、回调(callback)、结束(complete);
- 8、【优化】执行器注册组件优化:注册逻辑调整为异步方式,提高注册性能;
- 9、【优化】执行器鉴权校验:执行器启动时主动校验accessToken,为空则主动Warn告警;(已规划安全强化:AccessToken动态生成、动态启停等)
- 10、【优化】邮箱告警配置优化:将"spring.mail.from"与"spring.mail.username"属性拆分开,更加灵活的支持一些无密码邮箱服务;
- 11、【优化】多个项目依赖升级至较新稳定版本,如netty、groovy、spring、springboot、mybatis等;
- 12、【优化】UI组件常规升级,提升组件稳定性;
- 13、【优化】调度中心页面交互优化:用户管理模块密码列取消;多处表达autocomplete取消;执行器管理模块XSS拦截校验等;
- 14、【优化】调度中心任务状态探测慢SQL问题优化;
- 15、【修复】GLUE-Java模式任务,init/destroy无法执行问题修复;
- 16、【修复】Cron编辑器问题修复:修复小概率情况下cron单个字段修改时导致其他字段被重置问题;
- 17、【修复】通用HTTP任务Handler(httpJobHandler)优化:修复 "setDoOutput(true)" 导致任务请求GetMethod失效问题;
- 18、【修复】执行器Commandhandler示例任务优化,修复极端情况下脚本进程挂起问题;
- 19、【修复】调度通讯组件优化,修复RestFul方式调用 DotNet 版本执行器时心跳检测失败问题;
- 20、【修复】调度中心远程执行日志查询乱码问题修复;
- 21、【修复】调度中心组件加载顺序优化,修复极端情况下调度组件初始慢导致的调度失败问题;
- 22、【修复】执行器注册线程优化,修复极端情况下初始化失败时导致NPE问题;
- 23、【修复】调度线程连接池优化,修复连接有效性校验超时问题;
- 24、【修复】执行器注册表字段优化,解决执行器注册节点过多导致注册信息存储和更新失败的问题;
- 25、【修复】轮训路由策略优化,修复小概率下并发问题;
- 26、【修复】页面redirect跳转后https变为http问题修复;
- 27、【修复】执行器日志清理优化,修复小概率下日志文件为空导致清理异常问题;