需求

项目中,常常以下场景需要分布式任务调度:

  1. 1. 同一服务多个实例的任务存在互斥时,需要统一协调。
  2. 2. 定时任务的执行需要支持高可用、监控运维、故障告警 需要统一管理。
  3. 3. 追踪各个服务节点定时任务的运行情况,以及任务属性信息,例如任务所属服务、所属责任人。

系统组成

  1. * 调度模块(调度中心): 负责管理调度信息,按照调度配置发出调度请求,自身不承担业务代码。调度系统与任务解耦,提高了系统可用性和稳定性,同时调度系统性能不再受限于任务模块。
  2. * 执行模块(执行器): 负责接收调度请求并执行任务逻辑。任务模块专注于任务的执行。

架构图

Image91.png

环境

  1. * Maven3+
  2. * Jdk1.8+
  3. * Oracle

调度流程关键步骤

Image92.png