大数据系统之任务调度[2]

接上大数据系统之任务调度[1], 记录一下我写的一个最简单的调度系统.


系统结构

大数据系统之任务调度[2]_第1张图片
job_server.jpg
  • Trigger 依靠 Server 上的 crontab. 自带 cron 表达式解析

  • Job Shell 模块负责跟 Job Server 交互, 本身仅仅是套在任务外面的一个脚本:

    • 任务启动前请求 Job Server 模块, 询问本任务的所有前置任务是否都已经成功完成.
      • 一旦前置任务都已经成功, 正常启动本任务
      • 如果前置任务还在执行, 进入 for 循环等待
      • 如果有前置任务失败, 直接告知 Job Server 任务由于前置任务失败而退出
  • Job Server 模块

    • 维护任务的依赖关系数据
    • 负责接受 Job Shell 脚本请求, 决定任务是否应该执行
    • 负责记录所有任务的状态
    • 负责根据规则告警
    • 提供简单 UI, 供 Admin 调试
  • 代码部署流程

    • 每个开发负责自己任务的代码部署
    • 设置 Server 上的 crontab.
    • 在 Job Server 上配置任务的依赖.

整个项目只有几百行代码.

本系列完.
-- EOF --

你可能感兴趣的:(大数据系统之任务调度[2])