定时任务调度系统
我们的定时运维任务有集中管理和查看的诉求,记录一下。
候选:
airflow
Saturn
cronsun
Azkaban
XXL-JOB
webcron
spring的@Scheduled注解
选型
诉求:定时任务集中管理,有管理界面,能看任务日志。
推荐下面这篇文章:
spring的@Scheduled注解
这个应该是最快的开发方式,对一些比较简单的定时任务完全可以这么做。不过,要考虑多实例下的并发资源控制问题。
XXL-JOB
java开发,开源协议是GPL v3,商业不友好,但作为内部任务调度平台,不对外出售,也无妨。
xxl-job很容易上手,并发量不大的时候,可以先用着。实现语言支持java和脚本语言(甚至支持shell脚本)。
Azkaban
linkedin开源,跟airflow比较类似。
webcron
太老,且用go语言开发,不好改。
Cronsun
go语言开发,万一有问题,不好改。
Saturn
整体比较复杂。
Airflow
airflow的分布式调度核心是celery,celery的能力也许跟gearman差不多,但airflow支持用有向图将多个分布式任务串联起来,其能力就不是gearman可比的了,gearman要做到此能力,意味着也得开发一个类似airflow的超级客户端。