首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Celery- django : Celery vs django管理命令

Celery- django : Celery vs django管理命令
EN

Stack Overflow用户
提问于 2013-06-10 17:39:39
回答 1查看 2.4K关注 0票数 8

我在一家旅游公司工作,我们需要定期给我们的团队发送邮件。

从现在起,我一直在使用django管理命令,并使用crontab运行它们。我读到了芹菜的功能,但我发现真的很难理解为什么我要使用芹菜?

另外,由于这将是对我的django项目和数据库的又一次添加,它会降低性能吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-18 22:32:32

我不认为你应该使用芹菜,Cron在你的情况下听起来仍然不错,但你可能想试一试芹菜。

对我来说,Celery是一个用于异步任务队列的Python模块。它允许您将冗长的任务分派给在多台机器上运行的多个进程(但一台机器上的一个进程仍然可以)。当你需要做一些需要时间的事情时(比如生成缩略图,与外部API对话或者生成复杂的报告),你可以使用Celery在后台完成,而不会阻塞你的用户的HTTP请求。

与crontab相比,Celery有一些优势:

当至少有一个machines

  • celerybeat工作者空闲时,您可以异步运行任务

  • 它可以很好地扩展到多个进程/ crontab;但是您可以使用settings.py

  • you中的Python语法在给定的日期时间或时间间隔调度任务可以应用速率限制(例如,对于某些类型的prioritization)

  • there是像Flower这样的监视工具,它可以让您清楚哪些任务失败了,哪些任务成功了

芹菜的一些缺点:

  • 设置可能需要一些时间-您必须设置队列代理并妖魔化生产中的工作进程;cron将已经存在
  • 每个工作进程可能使用与您的Django进程相同数量的内存,这可能会花费您$,或者您可能根本没有足够的内存在例如AWS free tier

上运行Celery

此外,如果只是发送电子邮件,您可以考虑使用Postmark (我与它们没有关联)等付费服务,它将为您处理电子邮件限制。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17020906

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档