定时任务组件 (yudao-spring-boot-starter-job)
引用文件
目录
简介
本文件面向 yudao-spring-boot-starter-job 定时任务组件,系统性阐述其与 XXL-Job 的集成方式、任务调度器配置、任务执行器实现;同时覆盖异步任务处理、@Async 注解使用与线程池配置;介绍任务日志记录、执行状态监控与失败重试机制;并说明分布式任务调度、任务分片与负载均衡等高级特性。最后提供扩展点与最佳实践,帮助开发者进行自定义任务执行器、任务监控与性能优化。
项目结构
该组件位于 yudao-framework 子模块中,采用 Spring Boot 自动装配机制,通过 META-INF/spring 下的自动装配导入文件声明启用相关配置类。核心包结构如下:
- config:自动配置类与配置属性类
- executor:自定义 XXL-Job 执行器
- log:日志桥接组件
- util:工具类(如日志开关控制)
图表来源
- YudaoXxlJobAutoConfiguration.java
- XxlJobProperties.java
- YudaoAsyncAutoConfiguration.java
- MyXxlJobSpringExecutor.java
- XxlJobLogAppender.java
- org.springframework.boot.autoconfigure.AutoConfiguration.imports
章节来源
核心组件
- XXL-Job 自动配置类:负责装配执行器、注册日志追加器、开启 Spring 定时任务能力
- XXL-Job 配置属性类:封装调度器地址、访问令牌、执行器应用名、IP、端口、日志路径与保留天数等
- 自定义执行器:基于 XXL-Job 提供的 Spring 执行器,增强方法级任务注册能力
- 日志追加器:将 Logback 日志桥接到 XXL-Job 日志上下文
- 异步任务自动配置:统一注入 TtlRunnable 装饰器,支持跨线程传递 TransmittableThreadLocal
章节来源
- YudaoXxlJobAutoConfiguration.java
- XxlJobProperties.java
- MyXxlJobSpringExecutor.java
- XxlJobLogAppender.java
- YudaoAsyncAutoConfiguration.java
架构总览
下图展示组件在启动阶段的关键交互:自动配置类加载配置、创建执行器、注册日志追加器;同时启用 Spring 定时任务与异步任务能力。
图表来源
- YudaoXxlJobAutoConfiguration.java
- XxlJobProperties.java
- MyXxlJobSpringExecutor.java
- XxlJobLogAppender.java
详细组件分析
XXL-Job 集成与自动配置
- 条件装配:仅当存在 XXL-Job 类且配置项 xxl.job.enabled 为 true 时生效
- 执行器装配:从配置对象读取调度器地址、访问令牌、执行器应用名、IP、端口、日志路径与保留天数,创建自定义执行器实例
- 日志桥接:在容器启动后向根日志记录器动态添加自定义日志追加器,使业务日志可被 XXL-Job 捕获
- 定时任务能力:同时启用 Spring 自带的 @EnableScheduling,支持原生 @Scheduled 任务
图表来源
- YudaoXxlJobAutoConfiguration.java
- XxlJobProperties.java
- MyXxlJobSpringExecutor.java
- XxlJobLogAppender.java
章节来源