分布式定时任务

定时任务的目标是在指定的时间或间隔来周期性启动任务。在Linux系统上,经常用crontab来管理定时任务。

定时任务与幂等性

定时任务周期性执行制定的任务,但除此之外具体任务的功能则很难知道

所以,并不能定义一个通用的适用所有情况的Cron服务。在实践中,一般倾向于最差情况下跳过某个任务的执行,而不会冒有可能将任务执行两次的风险。

Google Cron

在大规模部署场景中,Cron需要分布到多台机器上,并将Cron进程与任务分开,再由任务分发系统选择机器来运行任务。当然,任务分发也会带来时延,甚至会出现节点时效而重新调度,这需要一些恢复服务来降低系统的不可用时间。

Google Cron的构建过程

Kubernetes CronJob

Kubernetes也有对应分布式定时任务,即CronJob,参考这里

Comments

comments powered by Disqus