在阿里云容器服务中使用定时任务
定时任务是常见需求。普遍的做法是,选择一台或几台机器,通过crontab实现定时任务。但是对于大规模或大量的定时任务,这种做法的缺点非常多,比如:
- 可靠性低,一台机器宕机,该机器上的定时任务就无法执行了
- 没有调度功能,机器之间的负载可能不均衡
- 没有重试机制,任务可能运行失败
- 无法运行大规模分布式任务
阿里云容器服务在离线任务的基础上,增加了定时任务的功能,通过简单的描述,解决了上述问题。关于离线任务的细节,请参考在阿里云容器服务中运行离线作业。
只有10月25号之后升级了agent版本或新创建的集群才能使用该功能。
基于docker compose的定时任务描述
跟离线任务一样,定时任务也是基于docker compose的,只需要在应用模板里添加aliyun.schedule标签,如下面例子所示。
version: "2"
labels:
a