- 最常见的执行时间表格式是所谓的“crontab”格式,这个格式支持使用简单的周期定义(例如,“每天中午执行一次”、“每小时整点的时候执行”)。也可以通过这种格式进行复杂的周期定义,例如,“仅仅在每月第30天,且当天为周六的时候执行”。
- 一个可靠的大型分布式Cron系统所必须要解决的问题
- 跟踪Cron任务的状态,有两个选项:
- 将数据存储在一个可用度很高的外部分布式存储上。
- 系统内部自行存储一些(很小量的)状态信息。
- Paxos协议的使用
- 保证副本状态的一致
- 单独的领头人任务,该副本是唯一一个可以修改共享状态的副本,也是唯一一个可以启动Cron任务的副本
- 领头人角色和追随者角色
- 保存状态,Paxos基本上是一个只能新增的日志,在每次状态变化后同步地新增。Paxos协议的这种特性意味着以下两个问题:
- 日志需要定期压缩,以防无限增长。
- 日志必须要存储在某个地方。
存储数据有两个方案:
- 外部可用的分布式存储。
- 在系统内部存储少量的数据。
- 运维大型Cron系统:惊群效应(thundering herd)
- 跟踪Cron任务的状态,有两个选项: