-
Notifications
You must be signed in to change notification settings - Fork 2
Home
shanhm1991 edited this page Nov 3, 2024
·
7 revisions
- spring-fom
一个轻量级的任务管理,主要针对定时任务,相对Spring Schedule提供了更多的场景支持
- 依赖
<dependency>
<groupId>com.cowave.commons</groupId>
<artifactId>spring-fom</artifactId>
<version>2.7.2</version>
</dependency>
- 主要特性
1. 支持常用的定时策略:cron | fixedRate | fixedDelay |
2. 支持批任务 实现接口 ScheduleFactory 可以创建批任务,通过 @Scheduled 可以指定多个任务方法; 实现接口 CompleteHandler 可以自定义批任务结束处理; |
3. 支持任务超时检测 通过 taskOverTime 可以设置任务超时时间,通过 detectTimeoutOnEachTask 可以设置是对整体还是单个任务计算超时; 实现接口 TaskCancelHandler 可以自定义任务超时的取消处理,默认进行 Interrupt 中断; |
4. 支持任务冲突检测 任务有一个id,开启 enableTaskConflict 后,如果提交任务时发现已经存在对应id的任务,且还在运行,则忽略本次任务; |
5. 支持实时监控管理:http://[ip]:[port]/[context-path]/fom 5.1. 可以实时查看定时器状态、任务线程堆栈、以及执行统计等信息 5.2. 可以实时启动 / 终止定时器 实现接口 TaskCancelHandler 可以自定义定时器终止时任务的取消处理,默认通过 Interrupt 中断 实现接口 TerminateHandler 可以自定义定时器终止时的处理,比如清理释放资源 5.3. 可以实时触发执行任务,比如当定时任务未到执行时机时,可以手动触发使其立即执行 实时触发任务支持两种策略:如果任务正在执行则直接忽略(默认),或者等待本轮执行完成后立即再重新执行 5.4. 可以实时修改任务配置,支持注入属性,也做了本地持久化,这样重启后修改不会丢失 |
- 相关配置
任务配置:@Fom | 默认值: | 说明: | 生效: |
---|---|---|---|
cron | null | cron计划 | 下轮任务执行 |
fixedRate | 0 | 距离上次任务开始的时间(毫秒) | 下轮任务执行 |
fixedDelay | 0 | 距离上次任务结束的时间(毫秒) | 下轮任务执行 |
enable | true | 是否在加载时启动(startup) | 任务重启 |
execOnLoad | false | 是否在启动后立即执行 | 任务重启 |
initialDelay | 0 | 任务在启动后首次执行的延时时间(毫秒) | 下轮任务执行 |
deadTime | 0 | 任务截止时间,超过截止时间后任务不再执行 | 立即生效 |
threadCore | 1 | 核心线程数,如果设置时core > max,则将max置为core | 立即生效 |
threadMax | 1 | 最大线程数,如果设置时max < core,则将core置为max | 立即生效 |
threadAliveTime | 10 | 线程最大空闲时间(毫秒) | 立即生效 |
queueSize | 256 | 任务队列长度 | 任务重启 |
taskOverTime | 0 | 任务超时时间(毫秒) | 下轮任务执行 |
enableTaskConflict | false | 是否检测任务冲突(根据任务id) | 任务重启 |
detectTimeoutOnEachTask | true | 是否针对每个任务单独检测超时 | 下轮任务执行 |
ignoreExecRequestWhenRunning | true | Running状态时,是否忽略触发执行请求 | 立即生效 |
remark | null | 备注说明 | 立即生效 |
启动开关:@EnableFom | 默认值: | 说明: | |
enableFomView | true | 是否启用管理界面 | |
环境变量: | 默认值: | 说明: | |
spring.fom.cache.type | file | 配置持久化方式,暂时只有本地文件保存 | |
spring.fom.cache.history | false | 是否保存历史配置修改,默认只保存最新配置 | |
spring.fom.cache.file.path | cache/schedule | 保存文件路径 |
- 任务管理
任务列表
任务配置
任务统计
任务执行中的堆栈