Skip to content

Releases: xuxueli/xxl-job

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

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

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

14 Apr 08:44
Compare
Choose a tag to compare

Release Notes

  • 1、RESTful API:调度中心与执行器提供语言无关的 RESTful API 服务,第三方任意语言可据此对接调度中心或者实现执行器。
  • 2、任务复制功能:点击复制是弹出新建任务弹框,并初始化被复制任务信息;
  • 3、任务手动执行一次的时候,支持指定本次执行的机器地址,为空则从执行器获取;
  • 4、任务结果丢失处理:调度记录停留在 "运行中" 状态超过10min,且对应执行器心跳注册失败不在线,则将本地调度主动标记失败;
  • 5、调度中心升级springboot2.x;因此,系统要求JDK8+;
  • 6、XxlJob注解扫描方式优化,支持查找父类以及接口和基于类代理等常见情况;修复任务为空时小概率NPE问题;
  • 7、移除旧类注解JobHandler,推荐使用基于方法注解 "@xxljob" 的方式进行任务开发;(如需保留类注解JobHandler使用方式,可以参考旧版逻辑定制开发);
  • 8、任务告警组件模块化:如果需要新增一种告警方式,只需要新增一个实现 "com.xxl.job.admin.core.alarm.JobAlarm" 接口的告警实现即可,更加灵活、方便定制;
  • 9、调度中心国际化完善:新增 "中文繁体" 支持。默认为 "zh_CN"/中文简体, 可选范围为 "zh_CN"/中文简体, "zh_TC"/中文繁体 and "en"/英文;
  • 10、执行器注册逻辑优化:新增配置项 ”注册地址 / xxl.job.executor.address“,优先使用该配置作为注册地址,为空时使用内嵌服务 ”IP:PORT“ 作为注册地址。从而更灵活的支持容器类型执行器动态IP和动态映射端口问题。
  • 11、默认数据库连接池调整为hikari,移除tomcat-jdbc依赖;
  • 12、多个项目依赖升级至较新稳定版本,如mybatis、groovy和mysql驱动等;
  • 13、执行器优雅停机优化,修复任务线程中断未join导致回调丢失的问题;
  • 14、一致性哈希路由策略优化:默认虚拟节点数量调整为100,提高路由的均衡性;
  • 15、通用HTTP任务Handler(httpJobHandler)优化,扩展自定义参数信息,示例参数如下;
url: http://www.xxx.com
method: get 或 post
data: post-data
  • 16、SQL脚本编码默认utf8mb4执行,避免小概率下容器环境中乱码问题;
  • 17、Web IDE交互问题修复:输入源码备注之后按回车跳转error问题处理;
  • 18、执行器初始化逻辑优化:修复懒加载的Bean被提前初始化问题;
  • 19、执行器注册默认值优化;
  • 20、修复bootstrap.min.css.map 404问题;
  • 21、执行器UI交互优化,移除冗余order属性;
  • 22、执行备注消息长度限制,修复数据超长无法存储导致导致回调失败的问题;

注意:XxlJobSpringExecutor组件个别字段调整:“appName” 调整为 “appname” ,升级时该组件时需要注意;

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

12 Dec 13:02
Compare
Choose a tag to compare

Release Notes

  • 1、方法任务支持:由原来基于JobHandler类任务开发方式,优化为支持基于方法的任务开发方式;因此,可以支持单个类中开发多个任务方法,进行类复用
@XxlJob("demoJobHandler")
public ReturnT<String> execute(String param) {
    XxlJobLogger.log("hello world");
    return ReturnT.SUCCESS;
}
  • 2、移除commons-exec,采用原生方式实现,降低第三方依赖;
  • 3、执行器回调乱码问题修复;
  • 4、调度中心dispatcher servlet加载顺序优化;
  • 5、执行器回调地址https兼容支持;
  • 6、多个项目依赖升级至较新稳定版本;
  • 注意:最新版本 "XxlJobSpringExecutor" 逻辑有调整,历史项目中该组件的配置方式请参考Sample示例项目进行调整,尤其注意需要移除组件的init和destroy方法;