【发布时间】:2013-08-13 19:25:38
【问题描述】:
考虑到 Celery 已经是运行任务队列的堆栈的一部分(即,它不仅仅是为了运行 crons 而添加的,恕我直言,这似乎有点过头了)。
作为 crontab 的替代品,它的“周期性任务”功能如何带来好处? 具体找以下几点。
- crontab 的主要优点/缺点
- celery 比 crontab 更好的用例
- Django 特定用例:Celery 与 crontab 运行基于 django 的周期性任务,当 celery 已作为
django-celery包含在堆栈中以用于排队 django 任务时。
【问题讨论】:
-
对我来说最重要的事情是 cron 的 env vars 往往与应用程序部署的其余部分有很大不同——wsgi 应用程序服务器和 celery worker。在 celery 中执行定期任务可以避免很多路径和设置地狱。但这完全是一个判断:我的分析主要是针对 django 的代码库和部署设置,但是具有许多其他 cronjobs 的多语言代码库可能会认为 cron 环境比 django 环境“更标准”。
-
This answer 虽然并不详尽,但在这个方向上提供了一些优点。而且通过 django admin 更容易管理/控制任务,而不是登录服务器并手动编辑 crontab。
标签: python django celery django-celery