需求
项目中,常常以下场景需要分布式任务调度:
1. 同一服务多个实例的任务存在互斥时,需要统一协调。2. 定时任务的执行需要支持高可用、监控运维、故障告警 需要统一管理。3. 追踪各个服务节点定时任务的运行情况,以及任务属性信息,例如任务所属服务、所属责任人。
系统组成
* 调度模块(调度中心): 负责管理调度信息,按照调度配置发出调度请求,自身不承担业务代码。调度系统与任务解耦,提高了系统可用性和稳定性,同时调度系统性能不再受限于任务模块。* 执行模块(执行器): 负责接收调度请求并执行任务逻辑。任务模块专注于任务的执行。
架构图

环境
* Maven3+* Jdk1.8+* Oracle
调度流程关键步骤

