调度模块任务生命周期事件与监听器机制详解
时间:2026-08-21 | 作者:云端旅人 | 阅读:0[058][调度模块]任务生命周期事件与监听器机制
摘要
在需要接入监控、审计,或与其他业务系统做状态联动的场景下,框架通过定义 ChangeStatusEvent 事件与 ChangeStatusEventConsumer 接口,提供了可订阅的任务状态变更扩展入口。
下面将围绕事件如何产生、如何被消费,以及如何基于这套机制继续扩展展开说明。
1. 事件定义
@Builderpublic record ChangeStatusEvent(Instant timestamp,String taskName,TaskStatusEnum taskStatus,TaskCondition lastTaskCondition,String message,Throwable throwable) { }
状态包括:CREATED、STARTED、COMPLETED、STOPPED、CANCELLED、EXCEPTION。
2. 事件触发点
在 ScheduleTaskManager 中,每个关键操作都会调用 notifyListeners()。
private void startEvent(String taskName) { notifyListeners(taskName, TaskStatusEnum.STARTED, null, null);}private void stopEvent(String taskName, String message) { doCancelTask(taskName);notifyListeners(taskName, TaskStatusEnum.STOPPED, message, null);}// 类似地,completeEvent, failureEvent, cancelEvent...
例如,任务启动时会触发 STARTED 事件;任务停止时会先执行取消逻辑,再通知监听器。
3. 消费者注册
ScheduleTaskManager 的构造函数会注入 ObjectProvider,并在初始化过程中收集所有实现该接口的 Bean。
public ScheduleTaskManager(TaskRepository> taskRepository, List consumers) { this.taskRepository = taskRepository;this.consumers = consumers;}
消费者可以是任何 Spring Bean,例如:
@Component@Slf4jpublic class LoggingEventConsumer implements ChangeStatusEventConsumer { @Overridepublic void consumer(ChangeStatusEvent event) { log.info("任务 {} 状态变为 {}", event.taskName(), event.taskStatus());}}
4. 扩展点
持久化事件到数据库,用于历史追踪。
通过消息队列将事件转发到其他微服务。
结合监控系统(如 Prometheus)实时上报任务执行情况。
5. 设计优势
解耦:任务调度核心不关心事件被如何使用,只需广播。
多监听器:支持任意数量的消费者,且异常隔离(单个消费者异常不影响其他消费者)。
免责声明:文中图文均来自网络,如有侵权请联系删除,心愿游戏发布此文仅为传递信息,不代表心愿游戏认同其观点或证实其描述。
相关文章
更多-
- 迅捷路由器怎么调信号最强,设置时要注意什么?
- 时间:2026-08-27
-
- vivo浏览器怎么卸不掉?原因和解决方法在这里
- 时间:2026-08-27
-
- OPPO R11s黑屏了,怎么强制恢复出厂设置?
- 时间:2026-08-27
-
- 飞利浦显示器包装盒有生产日期和保修期吗?怎么看?
- 时间:2026-08-27
-
- 联想新平板开机必须联网吗?怎么做?
- 时间:2026-08-27
-
- 平板横竖屏切换设置与问题解决
- 时间:2026-08-27
-
- 移动电源容量怎么测?要准备哪些工具?
- 时间:2026-08-27
-
- 荣耀90 Pro防水吗?防水级别多少?怎么用才安全
- 时间:2026-08-27
精选合集
更多大家都在玩
大家都在看
更多-
- 糖尿病完全不能吃糖吗
- 时间:2026-09-15
-
- 蚂蚁庄园小课堂2026年9月16日最新题目答案
- 时间:2026-09-15
-
- 小鸡答题今天的答案是什么2026年9月16日
- 时间:2026-09-15
-
- 蚂蚁庄园每日答题答案2026年9月16日
- 时间:2026-09-15
-
- 以下哪种粮食是酿造绍兴黄酒的主要原料 蚂蚁庄园今日答案9月16日
- 时间:2026-09-15
-
- 劝学名句“及时当勉励,岁月不待人”出自哪位诗人 蚂蚁庄园今日答案9.16
- 时间:2026-09-15
-
- 蚂蚁庄园今天答题答案2026年9月16日
- 时间:2026-09-15
-
- 蚂蚁庄园答题今日答案2026年9月16日
- 时间:2026-09-15
![调度模块任务生命周期事件与监听器机制详解_wishdown.com [058][调度模块]任务生命周期事件与监听器机制](https://img.wishdown.com/upload/news/2026082198dd3d0e34e3e83f282c24b802fdd4fb.webp)