分布式定时任务系统

任务调度系统与消息队列的本质区别:时间驱动 vs 事件驱动

任务调度系统的基本功能:

一般的任务调度系统,整体上看,有2部分:

调度中心+执行器

如何实现?

系统要处理的几个问题:

准确

  • 任务不能同时给多个Executor。
  • 被错过执行的作业重触发

效率

  • 高效的调度,防止任务饥饿
    -阻塞处理
    -并行调度
  • 合理利用executor资源
    依据executor资源情况分发任务
  • 任务分片
    多个executor同时处理一个任务
  • 弹性伸缩
    executor的动态扩展。

可用性

  • 失败转移
    任务在executor挂掉的情况下,也要保证被执行成功。
  • misfire
    错过了执行时机的任务,也要保证被触发。

1 和 3 是必须要满足的,2是优化。

扩展功能

1 任务依赖
2 调度日志
3 执行器日志回调

参考

http://www.xuxueli.com/xxl-job/#/?id=_531-%E8%AE%BE%E8%AE%A1%E6%80%9D%E6%83%B3

你可能感兴趣的:(分布式定时任务系统)