From 2a8d3eed815d64fcf563d067b6b6bf2b6e922ea0 Mon Sep 17 00:00:00 2001 From: xuxueli <931591021@qq.com> Date: Sat, 16 Nov 2024 23:08:04 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0RM?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/XXL-JOB官方文档.md | 134 ++++++++++++++++++------------------- 1 file changed, 67 insertions(+), 67 deletions(-) diff --git a/doc/XXL-JOB官方文档.md b/doc/XXL-JOB官方文档.md index bd9172db..492fad47 100644 --- a/doc/XXL-JOB官方文档.md +++ b/doc/XXL-JOB官方文档.md @@ -17,7 +17,7 @@ ### 1.1 概述 XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。 -### 1.2 社区交流 +### 1.2 社区交流 - [社区交流](https://www.xuxueli.com/page/community.html) ### 1.3 特性 @@ -833,7 +833,7 @@ XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅 xxl-job-executor-samples:执行器Sample示例(选择合适的版本执行器,可直接使用,也可以参考其并将现有项目改造成执行器) :xxl-job-executor-sample-springboot:Springboot版本,通过Springboot管理执行器,推荐这种方式; :xxl-job-executor-sample-frameless:无框架版本; - + ### 2.3 配置部署“调度中心” @@ -876,8 +876,8 @@ XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅 ### 调度中心日志表数据保存天数 [必填]:过期日志自动清理;限制大于等于7时生效,否则, 如-1,关闭自动清理功能; xxl.job.logretentiondays=30 - - + + #### 步骤二:部署项目: 如果已经正确进行上述配置,可将项目编译打包部署。 @@ -924,10 +924,10 @@ docker run -e PARAMS="--spring.datasource.url=jdbc:mysql://127.0.0.1:3306/xxl_jo “执行器”项目:xxl-job-executor-sample-springboot (提供多种版本执行器供选择,现以 springboot 版本为例,可直接使用,也可以参考其并将现有项目改造成执行器) 作用:负责接收“调度中心”的调度并执行;可直接部署执行器,也可以将执行器集成到现有业务项目中。 - + #### 步骤一:maven依赖 确认pom文件中引入了 "xxl-job-core" 的maven依赖; - + #### 步骤二:执行器配置 执行器配置,配置文件地址: @@ -953,7 +953,7 @@ docker run -e PARAMS="--spring.datasource.url=jdbc:mysql://127.0.0.1:3306/xxl_jo xxl.job.executor.logpath=/data/applogs/xxl-job/jobhandler ### 执行器日志文件保存天数 [选填] : 过期日志自动清理, 限制值大于等于3时生效; 否则, 如-1, 关闭自动清理功能; xxl.job.executor.logretentiondays=30 - + #### 步骤三:执行器组件配置 @@ -985,7 +985,7 @@ public XxlJobSpringExecutor xxlJobExecutor() { xxl-job-executor-sample-springboot:项目编译打包成springboot类型的可执行JAR包,命令启动即可; xxl-job-executor-sample-frameless:项目编译打包成JAR包,命令启动即可; - + 至此“执行器”项目已经部署结束。 @@ -993,11 +993,11 @@ public XxlJobSpringExecutor xxlJobExecutor() { 执行器支持集群部署,提升调度系统可用性,同时提升任务处理能力。 执行器集群部署时,几点要求和建议: -- 执行器回调地址(xxl.job.admin.addresses)需要保持一致;执行器根据该配置进行执行器自动注册等操作。 +- 执行器回调地址(xxl.job.admin.addresses)需要保持一致;执行器根据该配置进行执行器自动注册等操作。 - 同一个执行器集群内AppName(xxl.job.executor.appname)需要保持一致;调度中心根据该配置动态发现不同集群的在线执行器列表。 -### 2.5 开发第一个任务“Hello World” +### 2.5 开发第一个任务“Hello World” 本示例以新建一个 “GLUE模式(Java)” 运行模式的任务为例。更多有关任务的详细配置,请查看“章节三:任务详解”。 ( “GLUE模式(Java)”的执行代码托管到调度中心在线维护,相比“Bean模式任务”需要在执行器项目开发部署上线,更加简便轻量) @@ -1022,7 +1022,7 @@ public XxlJobSpringExecutor xxlJobExecutor() { #### 步骤三:触发执行: 请点击任务右侧 “执行” 按钮,可手动触发一次任务执行(通常情况下,通过配置Cron表达式进行任务调度触发)。 -#### 步骤四:查看日志: +#### 步骤四:查看日志: 请点击任务右侧 “日志” 按钮,可前往任务日志界面查看任务日志。 在任务日志界面中,可查看该任务的历史调度记录以及每一次调度的任务调度信息、执行参数和执行信息。运行中的任务点击右侧的“执行日志”按钮,可进入日志控制台查看实时执行日志。 @@ -1086,11 +1086,11 @@ public XxlJobSpringExecutor xxlJobExecutor() { 覆盖之前调度:调度请求进入单机执行器后,发现执行器存在运行的调度任务,将会终止运行中的调度任务并清空队列,然后运行本地调度任务; - 任务超时时间:支持自定义任务超时时间,任务运行超时将会主动中断任务; - 失败重试次数;支持自定义任务失败重试次数,当任务失败时将会按照预设的失败重试次数主动进行重试; - - - - + + + + ### 3.1 BEAN模式(类形式) Bean模式任务,支持基于类的开发方式,每个任务对应一个Java类。 @@ -1129,7 +1129,7 @@ Bean模式任务,支持基于方法的开发方式,每个任务对应一个 2、注解配置:为Job方法添加注解 "@XxlJob(value="自定义jobhandler名称", init = "JobHandler初始化方法", destroy = "JobHandler销毁方法")",注解value值对应的是调度中心新建任务的JobHandler属性的值。 3、执行日志:需要通过 "XxlJobHelper.log" 打印执行日志; 4、任务结果:默认任务结果为 "成功" 状态,不需要主动设置;如有诉求,比如设置任务结果为失败,可以通过 "XxlJobHelper.handleFail/handleSuccess" 自主设置任务结果; - + ``` // 可参考Sample示例执行器中的 "com.xxl.job.executor.service.jobhandler.SampleXxlJob" ,如下: @XxlJob("demoJobHandler") @@ -1174,7 +1174,7 @@ public void demoJobHandler() throws Exception { ### 3.4 GLUE模式(Shell) -#### 步骤一:调度中心,新建调度任务 +#### 步骤一:调度中心,新建调度任务 参考上文“配置属性详细说明”对新建的任务进行参数配置,运行模式选中 "GLUE模式(Shell)"; #### 步骤二:开发任务代码: @@ -1186,7 +1186,7 @@ public void demoJobHandler() throws Exception { ### 3.4 GLUE模式(Python) -#### 步骤一:调度中心,新建调度任务 +#### 步骤一:调度中心,新建调度任务 参考上文“配置属性详细说明”对新建的任务进行参数配置,运行模式选中 "GLUE模式(Python)"; #### 步骤二:开发任务代码: @@ -1198,7 +1198,7 @@ public void demoJobHandler() throws Exception { ### 3.5 GLUE模式(NodeJS) -#### 步骤一:调度中心,新建调度任务 +#### 步骤一:调度中心,新建调度任务 参考上文“配置属性详细说明”对新建的任务进行参数配置,运行模式选中 "GLUE模式(NodeJS)"; #### 步骤二:开发任务代码: @@ -1364,11 +1364,11 @@ XXL-JOB调度模块基于自研调度组件并支持集群部署,调度数据 #### 5.3.2 系统组成 - **调度模块(调度中心)**: - 负责管理调度信息,按照调度配置发出调度请求,自身不承担业务代码。调度系统与任务解耦,提高了系统可用性和稳定性,同时调度系统性能不再受限于任务模块; - 支持可视化、简单且动态的管理调度信息,包括任务新建,更新,删除,GLUE开发和任务报警等,所有上述操作都会实时生效,同时支持监控调度结果以及执行日志,支持执行器Failover。 + 负责管理调度信息,按照调度配置发出调度请求,自身不承担业务代码。调度系统与任务解耦,提高了系统可用性和稳定性,同时调度系统性能不再受限于任务模块; + 支持可视化、简单且动态的管理调度信息,包括任务新建,更新,删除,GLUE开发和任务报警等,所有上述操作都会实时生效,同时支持监控调度结果以及执行日志,支持执行器Failover。 - **执行模块(执行器)**: - 负责接收调度请求并执行任务逻辑。任务模块专注于任务的执行等操作,开发和维护更加简单和高效; - 接收“调度中心”的执行请求、终止请求和日志请求等。 + 负责接收调度请求并执行任务逻辑。任务模块专注于任务的执行等操作,开发和维护更加简单和高效; + 接收“调度中心”的执行请求、终止请求和日志请求等。 #### 5.3.3 架构图 @@ -1377,7 +1377,7 @@ XXL-JOB调度模块基于自研调度组件并支持集群部署,调度数据 ### 5.4 调度模块剖析 #### 5.4.1 quartz的不足 Quartz作为开源作业调度中的佼佼者,是作业调度的首选。但是集群环境中Quartz采用API的方式对任务进行管理,从而可以避免上述问题,但是同样存在以下问题: - + - 问题一:调用API的的方式操作任务,不人性化; - 问题二:需要持久化业务QuartzJobBean到底层数据表中,系统侵入性相当严重。 - 问题三:调度逻辑和QuartzJobBean耦合在同一个项目中,这将导致一个问题,在调度任务数量逐渐增多,同时调度任务逻辑逐渐加重的情况下,此时调度系统的性能将大大受限于业务; @@ -1474,7 +1474,7 @@ xxl-job-admin#com.xxl.job.admin.controller.JobApiController.callback 如若需要支撑更多的任务量,可以通过 "调大调度线程数" 、"降低调度中心与执行器ping延迟" 和 "提升机器配置" 几种方式优化。 -#### 5.4.12 均衡调度 +#### 5.4.12 均衡调度 调度中心在集群部署时会自动进行任务平均分配,触发组件每次获取与线程池数量(调度中心支持自定义调度线程池大小)相关数量的任务,避免大量任务集中在单个调度中心集群节点; ### 5.5 任务 "运行模式" 剖析 @@ -1518,7 +1518,7 @@ XXL-JOB会为每次调度请求生成一个单独的日志文件,需要通过 ### 5.6 通讯模块剖析 -#### 5.6.1 一次完整的任务调度通讯流程 +#### 5.6.1 一次完整的任务调度通讯流程 - 1、“调度中心”向“执行器”发送http调度请求: “执行器”中接收请求的服务,实际上是一台内嵌Server,默认端口9999; - 2、“执行器”执行任务逻辑; - 3、“执行器”http回调“调度中心”调度结果: “调度中心”中接收回调的服务,是针对执行器开放一套API服务; @@ -1526,14 +1526,14 @@ XXL-JOB会为每次调度请求生成一个单独的日志文件,需要通过 #### 5.6.2 通讯数据加密 调度中心向执行器发送的调度请求时使用RequestModel和ResponseModel两个对象封装调度请求参数和响应数据, 在进行通讯之前底层会将上述两个对象对象序列化,并进行数据协议以及时间戳检验,从而达到数据加密的功能; -### 5.7 任务注册, 任务自动发现 +### 5.7 任务注册, 任务自动发现 自v1.5版本之后, 任务取消了"任务执行机器"属性, 改为通过任务注册和自动发现的方式, 动态获取远程执行器地址并执行。 AppName: 每个执行器机器集群的唯一标示, 任务注册以 "执行器" 为最小粒度进行注册; 每个任务通过其绑定的执行器可感知对应的执行器机器列表; 注册表: 见"xxl_job_registry"表, "执行器" 在进行任务注册时将会周期性维护一条注册记录,即机器地址和AppName的绑定关系; "调度中心" 从而可以动态感知每个AppName在线的机器列表; 执行器注册: 任务注册Beat周期默认30s; 执行器以一倍Beat进行执行器注册, 调度中心以一倍Beat进行动态任务发现; 注册信息的失效时间为三倍Beat; 执行器注册摘除:执行器销毁时,将会主动上报调度中心并摘除对应的执行器机器信息,提高心跳注册的实时性; - + 为保证系统"轻量级"并且降低学习部署成本,没有采用Zookeeper作为注册中心,采用DB方式进行任务注册发现; @@ -1542,7 +1542,7 @@ XXL-JOB会为每次调度请求生成一个单独的日志文件,需要通过 当返回值符合 "ReturnT.code == ReturnT.SUCCESS_CODE" 时表示任务执行成功,否则表示任务执行失败,而且可以通过 "ReturnT.msg" 回调错误信息给调度中心; 从而,在任务逻辑中可以方便的控制任务执行结果; -### 5.9 分片广播 & 动态分片 +### 5.9 分片广播 & 动态分片 执行器集群部署时,任务路由策略选择"分片广播"情况下,一次任务调度将会广播触发对应集群中所有执行器执行一次任务,同时系统自动传递分片参数;可根据分片参数开发分片任务; "分片广播" 以执行器为维度进行分片,支持动态扩容执行器集群从而动态增加分片数量,协同进行业务处理;在进行大数据量业务操作时可显著提升任务处理能力和速度。 @@ -1561,7 +1561,7 @@ int shardTotal = XxlJobHelper.getShardTotal(); echo "分片序号 index = $2" echo "分片总数 total = $3" ``` - + 分片参数属性说明: index:当前分片序号(从0开始),执行器集群列表中当前执行器的序号; @@ -1583,7 +1583,7 @@ echo "分片总数 total = $3" ### 5.11 故障转移 & 失败重试 一次完整任务流程包括"调度(调度中心) + 执行(执行器)"两个阶段。 - + - "故障转移"发生在调度阶段,在执行器集群部署时,如果某一台执行器发生故障,该策略支持自动进行Failover切换到一台正常的执行器机器并且完成调度请求流程。 - "失败重试"发生在"调度 + 执行"两个阶段,支持通过自定义任务失败重试次数,当任务失败时将会按照预设的失败重试次数主动进行重试; @@ -1595,7 +1595,7 @@ echo "分片总数 total = $3" - 1、执行器改为手动注册,下线一半机器列表(A组),线上运行另一半机器列表(B组); - 2、等待A组机器任务运行结束并编译上线;执行器注册地址替换为A组; - 3、等待B组机器任务运行结束并编译上线;执行器注册地址替换为A组+B组; -操作结束; + 操作结束; ### 5.13 任务执行结果说明 系统根据以下标准判断任务执行结果,可参考之。 @@ -1623,15 +1623,15 @@ 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 ``` -### 5.20 避免任务重复执行 +### 5.20 避免任务重复执行 调度密集或者耗时任务可能会导致任务阻塞,集群情况下调度组件小概率情况下会重复触发; -针对上述情况,可以通过结合 "单机路由策略(如:第一台、一致性哈希)" + "阻塞策略(如:单机串行、丢弃后续调度)" 来规避,最终避免任务重复执行。 +针对上述情况,可以通过结合 "单机路由策略(如:第一台、一致性哈希)" + "阻塞策略(如:单机串行、丢弃后续调度)" 来规避,最终避免任务重复执行。 -### 5.21 命令行任务 +### 5.21 命令行任务 原生提供通用命令行任务Handler(Bean任务,"CommandJobHandler");业务方只需要提供命令行即可; 如任务参数 "pwd" 将会执行命令并输出数据; @@ -1693,7 +1693,7 @@ Header: "msg": null // 错误提示消息 } ``` - + #### b、执行器注册 ``` 说明:执行器注册时使用,调度中心会实时感知注册成功的执行器并发起任务调度 @@ -1901,35 +1901,35 @@ Header: - 3、底层通讯支持两种方式,Servlet方式 + JETTY方式; - 4、支持“任务日志”; - 5、支持“串行执行”,并行执行; - - 说明:V1.2版本将系统架构按功能拆分为: - - - 调度模块(调度中心):负责管理调度信息,按照调度配置发出调度请求; - - 执行模块(执行器):负责接收调度请求并执行任务逻辑; - - 通讯模块:负责调度模块和任务模块之间的信息通讯; - 优点: - - - 解耦:任务模块提供任务接口,调度模块维护调度信息,业务相互独立; - - 高扩展性; - - 稳定性; + + 说明:V1.2版本将系统架构按功能拆分为: + + - 调度模块(调度中心):负责管理调度信息,按照调度配置发出调度请求; + - 执行模块(执行器):负责接收调度请求并执行任务逻辑; + - 通讯模块:负责调度模块和任务模块之间的信息通讯; + 优点: + + - 解耦:任务模块提供任务接口,调度模块维护调度信息,业务相互独立; + - 高扩展性; + - 稳定性; ### 7.3 版本 V1.3.0,新特性[2016-05-19] - 1、遗弃“本地任务”模式,推荐使用“远程任务”,易于系统解耦,任务对应的JobHandler统称为“执行器”; - 2、遗弃“servlet”方式底层系统通讯,推荐使用JETTY方式,调度+回调双向通讯,重构通讯逻辑; - 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; @@ -1943,7 +1943,7 @@ Header: - 2、执行器底层实现代码进行重度重构, 优化底层建表脚本; - 3、执行器中任务线程分组逻辑优化: 之前根据执行器JobHandler进行线程分组,当多个任务复用Jobhanlder会导致相互阻塞。现改为根据调度中心任务进行任务线程分组,任务与任务执行相互隔离; - 4、执行器调度通讯方案优化, 通过Hex + HC实现建议RPC通讯协议, 优化了通讯参数的维护和解析流程; -- 5、调度中心, 新建/编辑任务, 界面属性调整: +- 5、调度中心, 新建/编辑任务, 界面属性调整: - 5.1、任务新增/编辑界面中去除 "任务名JobName"属性 ,该属性改为系统自动生成: 该字段之前主要用于在 "调度中心" 唯一标示一个任务, 现实意义不大, 因此计划淡化掉该字段,改为系统生成UUID,从而简化任务新建的操作; - 5.2、任务新增/编辑界面中去除 "GLUE模式" 复选框位置调整, 改为贴近"JobHandler"输入框右侧; - 5.3、任务新增/编辑界面中去除 "报警阈值" 属性; @@ -1958,7 +1958,7 @@ Header: Tips: 历史版本(V1.3.x)目前已经Release至稳定版本, 进入维护阶段, 地址见分支 [V1.3](https://github.com/xuxueli/xxl-job/tree/v1.3) 。新特性将会在master分支持续更新。 ### 7.7 版本 V1.4.1 新特性[2016-09-06] -- 1、项目成功推送maven中央仓库, 中央仓库地址以及依赖如下: +- 1、项目成功推送maven中央仓库, 中央仓库地址以及依赖如下: ``` @@ -2086,7 +2086,7 @@ Tips: 历史版本(V1.3.x)目前已经Release至稳定版本, 进入维护阶段 - 11、统一maven依赖版本管理; ### 7.20 版本 V1.8.2 特性[2017-09-04] -- 1、项目主页搭建:提供中英文文档:https://www.xuxueli.com/xxl-job +- 1、项目主页搭建:提供中英文文档:https://www.xuxueli.com/xxl-job - 2、JFinal执行器Sample示例项目; - 3、事件触发:除了"Cron方式"和"任务依赖方式"触发任务执行之外,支持基于事件的触发任务方式。调度中心提供触发任务单次执行的API服务,可根据业务事件灵活触发。 - 4、执行器摘除:执行器销毁时,主动通知调度中心并摘除对应执行器节点,提高执行器状态感知的时效性。 @@ -2181,7 +2181,7 @@ Tips: 历史版本(V1.3.x)目前已经Release至稳定版本, 进入维护阶段 - 38、GLUE任务脚本字段类型调整,改为mediumtext类型,提高GLUE长度上限; - 39、任务监控线程Log输出优化,运行中任务的监控Log改为debug级别,减少非核心日志量; - 40、项目依赖全量升级至较新稳定版本,如spring、Jackson、groovy等等; -- 41、docker支持:调度中心提供 Dockerfile 方便快速构建docker镜像; +- 41、docker支持:调度中心提供 Dockerfile 方便快速构建docker镜像; ### 7.24 版本 V2.0.0 Release Notes[2018-11-04] - 1、调度中心迁移到 springboot; @@ -2193,7 +2193,7 @@ Tips: 历史版本(V1.3.x)目前已经Release至稳定版本, 进入维护阶段 - 7、任务状态规范:新增任务默认停止状态,任务更新时保持任务状态不变; - 8、IP获取逻辑优化,优先遍历网卡来获取可用IP; - 9、任务新增的API服务接口返回任务ID,方便调用方实用; -- 10、组件化优化,移除对 spring 的依赖:非spring应用选用 "XxlJobExecutor" 、spring应用选用 "XxlJobSpringExecutor" 作为执行器组件; +- 10、组件化优化,移除对 spring 的依赖:非spring应用选用 "XxlJobExecutor" 、spring应用选用 "XxlJobSpringExecutor" 作为执行器组件; - 11、任务RollingLog展示逻辑优化,修复超时任务无法查看的问题; - 12、多项UI组件升级到最新版本,如:CodeMirror、Echarts、Jquery 等; - 13、项目依赖升级 groovy 至较新稳定版本;pom清理; @@ -2327,7 +2327,7 @@ data: post-data - 20、修复bootstrap.min.css.map 404问题; - 21、执行器UI交互优化,移除冗余order属性; - 22、执行备注消息长度限制,修复数据超长无法存储导致导致回调失败的问题; -注意:XxlJobSpringExecutor组件个别字段调整:“appName” 调整为 “appname” ,升级时该组件时需要注意; +注意:XxlJobSpringExecutor组件个别字段调整:“appName” 调整为 “appname” ,升级时该组件时需要注意; ### 7.31 版本 v2.3.0 Release Notes[2021-02-09] - 1、【新增】调度过期策略:调度中心错过调度时间的补偿处理策略,包括:忽略、立即补偿触发一次等; @@ -2365,7 +2365,7 @@ public void execute() { - 24、【修复】执行器注册表字段优化,解决执行器注册节点过多导致注册信息存储和更新失败的问题; - 25、【修复】轮训路由策略优化,修复小概率下并发问题; - 26、【修复】页面redirect跳转后https变为http问题修复; -- 27、【修复】执行器日志清理优化,修复小概率下日志文件为空导致清理异常问题; +- 27、【修复】执行器日志清理优化,修复小概率下日志文件为空导致清理异常问题; ### 7.32 版本 v2.3.1 Release Notes[2022-05-21] - 1、【修复】修复风险漏洞,升级问题低版本项目依赖:CVE-2021-2471、CVE-2022-22965等。 @@ -2395,9 +2395,9 @@ public void execute() { - 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.*可无缝升级。 +**备注:** +- a、“CVE-2024-38820”漏洞源自spring,当前使用spring5.x及springboot2.x软件普遍受该问题影响。 该问题修复需要升级至spring6.x与springboot3.x,同时需要升级JDK17,如有诉求可自行升级。计划下个大版本升级spring及jdk版本解决该问题。 +- b、本次升级数据模型及通讯协议向前兼容,v2.4.*可无缝升级。 ### 7.35 版本 v2.5.0 Release Notes[规划中]