Skip to content

Releases: xuxueli/xxl-job

XXL-JOB v3.2.0 | 分布式任务调度平台

24 Aug 08:26

Choose a tag to compare

  • 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 | 分布式任务调度平台

23 Jun 15:10

Choose a tag to compare

  • 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 | 分布式任务调度平台

30 Apr 10:33

Choose a tag to compare

  • 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 | 分布式任务调度平台

06 Feb 21:20

Choose a tag to compare

  • 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 | 分布式任务调度平台

11 Jan 07:00

Choose a tag to compare

  • 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 | 分布式任务调度平台

16 Nov 14:50

Choose a tag to compare

  • 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,分布式任务调度平台

17 Apr 09:02

Choose a tag to compare

  • 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,分布式任务调度平台

23 Mar 12:20

Choose a tag to compare

  • 1、【优化】执行器任务Bean扫描逻辑优化:解决懒加载注解失效问题。
  • 2、【优化】多个项目依赖升级至较新稳定版本,涉及netty、groovy、spring、springboot、mybatis等;
  • 3、【修复】"CVE-2022-36157" 授权漏洞修复。
  • 4、【修复】"CVE-2022-43183" SSRF漏洞修复。

XXL-JOB v2.3.1,分布式任务调度平台

21 May 08:33

Choose a tag to compare

  • 1、【修复】修复风险漏洞,升级问题低版本项目依赖:CVE-2021-2471CVE-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,分布式任务调度平台

09 Feb 08:19

Choose a tag to compare

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、【修复】执行器日志清理优化,修复小概率下日志文件为空导致清理异常问题;