diff --git a/README.md b/README.md
index c400f57b..47e5fb9d 100644
--- a/README.md
+++ b/README.md
@@ -113,6 +113,7 @@ XXL-JOB 是一个开源且免费项目,其正在进行的开发完全得益于
- 35、用户管理:支持在线管理系统用户,存在管理员、普通用户两种角色;
- 36、权限控制:执行器维度进行权限控制,管理员拥有全量权限,普通用户需要分配执行器权限后才允许相关操作;
- 37、AI任务:原生提供AI执行器,并内置多个AI任务Handler,与spring-ai、ollama、dify等集成打通,支持快速开发AI类任务。
+- 38、审计日志:记录任务操作敏感信息,用于系统监控、审计和安全分析,可快速追溯异常行为以及定位排查问题。
## Development
于2015年中,我在github上创建XXL-JOB项目仓库并提交第一个commit,随之进行系统结构设计,UI选型,交互设计……
@@ -845,6 +846,20 @@ XXL-JOB 是一个开源且免费项目,其正在进行的开发完全得益于
- 691、联通云
- 692、北京爱话本科技有限公司
- 693、北京起创科技有限公司
+ - 694、平安证券【平安证券】
+ - 695、合肥中科类脑智能技术有限公司
+ - 696、南京同仁堂健康产业有限公司【同仁堂】
+ - 697、铜仁市碧江区智惠加油站
+ - 698、惟客数据
+ - 699、凤凰新闻【凤凰新闻】
+ - 700、深圳王力智能
+ - 701、返利网数字科技股份有限公司
+ - 702、上海阜能信息科技有限公司
+ - 703、深圳市极能超电数字科技有限公司
+ - 704、海目星激光科技集团股份有限公司
+ - 705、深圳市极能超电数字科技有限公司
+ - 706、安克创新科技股份有限公司【安克】
+ - 707、大庆点神科技有限公司
- ……
> 更多接入的公司,欢迎在 [登记地址](https://github.com/xuxueli/xxl-job/issues/1 ) 登记,登记仅仅为了产品推广。
diff --git a/doc/XXL-JOB官方文档.md b/doc/XXL-JOB官方文档.md
index 97e407a8..37727f51 100644
--- a/doc/XXL-JOB官方文档.md
+++ b/doc/XXL-JOB官方文档.md
@@ -58,6 +58,8 @@ XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅
- 35、用户管理:支持在线管理系统用户,存在管理员、普通用户两种角色;
- 36、权限控制:执行器维度进行权限控制,管理员拥有全量权限,普通用户需要分配执行器权限后才允许相关操作;
- 37、AI任务:原生提供AI执行器,并内置多个AI任务Handler,与spring-ai、ollama、dify等集成打通,支持快速开发AI类任务。
+- 38、审计日志:记录任务操作敏感信息,用于系统监控、审计和安全分析,可快速追溯异常行为以及定位排查问题。
+
### 1.4 发展
于2015年中,我在github上创建XXL-JOB项目仓库并提交第一个commit,随之进行系统结构设计,UI选型,交互设计……
@@ -788,6 +790,20 @@ XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅
- 691、联通云
- 692、北京爱话本科技有限公司
- 693、北京起创科技有限公司
+ - 694、平安证券【平安证券】
+ - 695、合肥中科类脑智能技术有限公司
+ - 696、南京同仁堂健康产业有限公司【同仁堂】
+ - 697、铜仁市碧江区智惠加油站
+ - 698、惟客数据
+ - 699、凤凰新闻【凤凰新闻】
+ - 700、深圳王力智能
+ - 701、返利网数字科技股份有限公司
+ - 702、上海阜能信息科技有限公司
+ - 703、深圳市极能超电数字科技有限公司
+ - 704、海目星激光科技集团股份有限公司
+ - 705、深圳市极能超电数字科技有限公司
+ - 706、安克创新科技股份有限公司【安克】
+ - 707、大庆点神科技有限公司
- ……
> 更多接入的公司,欢迎在 [登记地址](https://github.com/xuxueli/xxl-job/issues/1 ) 登记,登记仅仅为了产品推广。
@@ -893,8 +909,8 @@ xxl.job.timeout=3
xxl.job.i18n=zh_CN
## 调度线程池最大线程配置【必填】
-xxl.job.triggerpool.fast.max=200
-xxl.job.triggerpool.slow.max=100
+xxl.job.triggerpool.fast.max=300
+xxl.job.triggerpool.slow.max=200
### 调度中心日志表数据保存天数 [必填]:过期日志自动清理;限制大于等于7时生效,否则, 如-1,关闭自动清理功能;
xxl.job.logretentiondays=30
@@ -2593,24 +2609,29 @@ public void execute() {
- 14、【修复】IDOR越权问题修复,提升任务操作及日志管理安全性;
- 15、【升级】升级多项maven依赖至较新版本,如 netty、groovy、mybatis、spring、spring-ai、dify 等;
-### 7.41 版本 v3.2.1 Release Notes[规划中]
-- 1、【新增】执行器新增“任务扫描排除路径”配置项(xxl.job.executor.excludedpackage),任务扫描时忽略指定包路径下的Bean;支持配置多个包路径、逗号分隔;
-- 2、【优化】执行器任务Bean扫描逻辑优化,完善懒加载Bean检测及过滤机制;
-- 3、【优化】调度时间轮强化,保障不重不漏:调度时间轮单刻度数据去重,避免极端情况下任务重复执行;时间轮转动时校验临近刻度,避免极端情况下遗漏刻度;
-- 4、【优化】任务调度中心调度锁逻辑优化,事务SQL下沉至Mapper层统一管理,并增加测试用例,提升代码可读性以及可维护性;
-- 5、【优化】报表统计SQL优化,修复小概率情况下查询null值问题;报表初始化SQL优化,修复小概率情况增改竞争问题;
-- 6、【优化】任务回调失败日志读写磁盘逻辑优化,解决极端情况下大文件读写内存问题;
-- 7、【重构】调度过期策略、调度类型策略逻辑重构,代码组件化拆分并完善日志,提升健壮性及可维护性;
-- 8、【重构】任务调度中心底层组件重构,组件初始化以及销毁逻辑统一处理,任务触发及和回调逻辑优化,避免资源泄漏风险;
-- 9、【重构】任务调度中心底层组件模块化拆分,移除组件单例以及静态代码逻辑,提升组件可维护性;
-- 10、【修复】脚本任务process销毁逻辑优化,解决风险情况下脚本进程无法终止问题;
-- 11、【修复】调度预读任务数量调整,改为调度线程池大小x10,降低事务颗粒度,提升性能及稳定性;
-- 12、【修复】合并PR-2369,修复脚本任务参数取值问题;
-- 13、【强化】通用HTTP任务(httpJobHandler)强化,支持更丰富请求参数设置,完整参数示例如下:
+### 7.41 版本 v3.3.0 Release Notes[规划中]
+- 1、【新增】执行器新增“任务扫描排除路径”配置项(xxl.job.executor.excludedpackage),任务扫描时忽略指定包路径下的任务;
+- 2、【升级】调度中心UI框架升级,统一交互组件,支持多主题、多标签与局部渲染等,升级UI组件及性能;
+- 3、【优化】执行器任务Bean扫描逻辑调整,优化懒加载Bean检测及过滤机制,避免提前初始化类问题;
+- 4、【优化】调度时间轮组件强化,保障不重不漏:调度时间轮单刻度数据去重,避免极端情况下任务重复执行;时间轮转动时校验临近刻度,避免极端情况下遗漏刻度;
+- 5、【优化】任务调度锁逻辑优化,事务SQL下沉至Mapper层统一管理,并增加测试用例,提升代码可读性以及可维护性;
+- 6、【优化】调度快慢线程池默认配置上调,提升默认配置单机负载;调度预读任务数计算系数下调,降低事务颗粒度,提升性能及稳定性;
+- 7、【优化】报表统计SQL优化,修复小概率情况下查询null值问题;报表初始化SQL优化,修复小概率情况增改竞争问题;
+- 8、【优化】任务回调失败日志读写磁盘逻辑优化,解决极端情况下大文件读写内存问题;
+- 9、【升级】Http通讯组件升级,基于接口代理方式重构通讯组件,提升组件性能及扩展性;
+- 10、【重构】规范API交互协议,通用响应结构体调整为Response,调度中心API统一为Response封装数据;
+ (注意:响应结构体从ReturnT升级为Response,其中属性值“content”会调整为“data”,通过openapi交互场景需要关注)
+- 11、【重构】调度过期策略、调度类型策略逻辑重构,代码组件化拆分并完善日志,提升健壮性及可维护性;
+- 12、【重构】调度中心底层组件重构,组件初始化以及销毁逻辑统一处理,任务触发及和回调逻辑优化,避免资源泄漏风险;
+- 13、【重构】调度中心底层组件模块化拆分,移除组件单例以及静态代码逻辑,提升组件可维护性;
+- 14、【修复】脚本任务process销毁逻辑优化,解决风险情况下脚本进程无法终止问题;
+- 15、【修复】合并PR-2369,修复脚本任务参数取值问题;
+- 16、【性能】调度中心调整资源加载逻辑,移除不必要的拦截器,提升页面加载性能;
+- 17、【强化】通用HTTP任务(httpJobHandler)强化,支持更丰富请求参数设置,完整参数示例如下:
- 完整参数示例参考:
-
+ 完整参数示例参考:
+
```
{
"url": "http://www.baidu.com",
@@ -2630,21 +2651,22 @@ public void execute() {
"auth": "auth data"
}
```
-
-- 14、【优化】调度组件日志完善,提升边界情况下问题定位效率;
-- 15、【升级】升级多项maven依赖至较新版本,如 netty、groovy、spring、spring-ai、dify 等;
-- 16、【重构】规范API交互协议,通用响应结构体调整为Response,调度中心API统一为Response封装数据;
-(注意:响应结构体从ReturnT升级为Response,其中属性值“content”会调整为“data”,取值逻辑需注意)
-- 17、【升级】Http通讯组件升级,基于接口代理方式重构通讯组件,提升组件性能及扩展性;
-- 18、【ING】UI框架重构升级,提升交互体验;
-- 19、【ING】调整资源加载逻辑,移除不必要的拦截器逻辑,提升页面加载效率;
+
+- 18、【新增】任务审计日志,记录任务操作敏感日志信息,如任务新建/更新/删除/启停/触发以及GLUE代码更新等,用于系统监控、审计和安全分析,可快速追溯异常行为以及定位排查问题等。
+ (当前任务审计日志以Info级别输出在系统日志中,可通过关键词 "xxl-job operation log:" 检索过滤)
+- 19、【优化】调度组件日志完善,提升边界情况下问题定位效率;
+- 20、【升级】升级多项maven依赖至较新版本,如 netty、groovy、springboot、spring-ai、dify、mybatis、xxl-sso 等;
+**备注:**
+a、本次升级数据模型向前兼容,v3.2.*版本可直接升级不需要进行数据库表调整;
+b、本次升级针对客户端rollinglog依赖字段做规范约束,如不关注改功能 v2.4.* 及后续版本客户端不需要升级/可兼容,否则需要升级客户端版本;
### TODO LIST
- 1、调度隔离:调度中心针对不同执行器,各自维护不同的调度和远程触发组件。
- 2、任务优先级:调度与执行阶段按照优先级分配资源。
- 3、多数据库支持,DAO层通过JPA实现,不限制数据库类型。
-- 4、执行器Log清理功能:调度中心Log删除时同步删除执行器中的Log文件;
+- 4、OpenApi:
+ - 执行器Log文件清理:支持调度中心远程删除执行器中指定任务的Log文件;
- 5、性能优化:任务、执行器数据全量本地缓存;新增消息表广播通知;
- 6、DAG流程任务
- 子任务:废弃
@@ -2653,10 +2675,8 @@ public void execute() {
- 分片任务:全部完成后才会出发后置节点;
- 配置并列的"a-b、b-c"路径列表,构成串行、并行、dag任务流程,"dagre-d3"绘图;任务依赖,流程图,子任务+会签任务,各节点日志;支持根据成功、失败选择分支;
- 7、任务标签:方便搜索;
-- 8、告警增强:
- - 邮件告警:支持自定义标题、模板格式;
- - webhook告警:支持自定义告警URL、请求体格式;
-- 9、安全强化:AccessToken动态生成、动态启停;控制调度、回调;
+- 8、GLUE 模式 Web Ide 版本对比功能;
+- 9、自定义失败重试时间间隔;
- 10、任务导入导出工具,灵活支持版本升级、迁移等场景。
- 11、任务日志重构:一次调度只记录一条主任务,维护起止时间和状态。
- 普通任务:只记录一条主任务;
@@ -2664,13 +2684,22 @@ public void execute() {
- 重试任务:失败时,新增主任务。所有调度记录,包括入口调度和重试调度,均挂载主任务上。
- 12、分片任务:全部完成后才会出发后置节点;
- 13、日期过滤:支持多个时间段排除;
-- 13、GLUE 模式 Web Ide 版本对比功能;
- 14、提供执行器Docker镜像;
- 15、脚本任务,支持数据参数,新版本仅支持单参数不支持需要兼容;
- 17、批量调度:调度请求入queue,调度线程批量获取调度请求并发起远程调度;提高线程效率;
- 18、执行器端口复用,复用容器端口提供通讯服务;
-- 19、自定义失败重试时间间隔;
-- 20、安全功能增强,通讯加密参数改用加密数据避免AccessToken明文, 降低token泄漏风险;
+- 19、安全功能增强,通讯加密参数改用加密数据避免AccessToken明文, 降低token泄漏风险;
+- 20、告警增强:
+ - 邮件告警:支持自定义标题、模板格式;
+ - webhook告警:支持自定义告警URL、请求体格式;
+- 21、公共告警策略:执行器维度设置多告警策略,任务勾选启用;待评估任务或执行器维度;
+- 20、日志策略:
+ - 调度日志:全局配置:废弃; 新增“调度日志策略”:任务维度自定义,保留3天、7天、1个月、3个月、一年、永久;
+ - 执行日志:新增“执行RollingLog开关”:任务维度自定义,支持:RollingLog、普通日志(slf4j输出)、关闭(不输出);
+- 21、AccessToken:废弃全局配置;支持在线管理,动态生成、动态启停;
+- 22、任务执行后分批批量更新,提升调度性能;
+
+
## 八、其他
diff --git a/pom.xml b/pom.xml
index 00c69570..e8bc7f8f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -3,7 +3,7 @@
4.0.0
com.xuxueli
xxl-job
- 3.2.1-SNAPSHOT
+ 3.3.0-SNAPSHOT
pom
${project.artifactId}
@@ -32,17 +32,17 @@
0.9.0
2.0.17
- 5.14.0
+ 6.0.1
3.0.0
3.5.7
- 6.2.12
+ 6.2.13
3.0.5
- 9.4.0
+ 9.5.0
4.2.7.Final
diff --git a/xxl-job-admin/pom.xml b/xxl-job-admin/pom.xml
index 8674c658..6eb65f6a 100644
--- a/xxl-job-admin/pom.xml
+++ b/xxl-job-admin/pom.xml
@@ -4,7 +4,7 @@
com.xuxueli
xxl-job
- 3.2.1-SNAPSHOT
+ 3.3.0-SNAPSHOT
xxl-job-admin
jar
diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/controller/IndexController.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/controller/IndexController.java
deleted file mode 100644
index 0d138f21..00000000
--- a/xxl-job-admin/src/main/java/com/xxl/job/admin/controller/IndexController.java
+++ /dev/null
@@ -1,74 +0,0 @@
-package com.xxl.job.admin.controller;
-
-import com.xxl.job.admin.service.XxlJobService;
-import com.xxl.sso.core.annotation.XxlSso;
-import com.xxl.tool.response.Response;
-import jakarta.annotation.Resource;
-import jakarta.servlet.http.HttpServletRequest;
-import jakarta.servlet.http.HttpServletResponse;
-import org.springframework.beans.propertyeditors.CustomDateEditor;
-import org.springframework.stereotype.Controller;
-import org.springframework.ui.Model;
-import org.springframework.web.bind.WebDataBinder;
-import org.springframework.web.bind.annotation.InitBinder;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.ResponseBody;
-import org.springframework.web.servlet.ModelAndView;
-
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.Map;
-
-/**
- * index controller
- * @author xuxueli 2015-12-19 16:13:16
- */
-@Controller
-public class IndexController {
-
- @Resource
- private XxlJobService xxlJobService;
-
-
- @RequestMapping("/")
- public String index(Model model) {
-
- Map dashboardMap = xxlJobService.dashboardInfo();
- model.addAllAttributes(dashboardMap);
-
- return "index";
- }
-
- @RequestMapping("/chartInfo")
- @ResponseBody
- public Response