我在一家旅游公司工作,我们需要定期向我们的团队发送邮件。
从现在开始,我一直在使用 django 管理命令并使用 crontabs 运行它们。我正在阅读 celery 可以做什么,但我发现很难理解为什么要使用 celery ?
另外,因为这将是我的 django 项目和数据库的另一个补充,它会降低性能吗?
我在一家旅游公司工作,我们需要定期向我们的团队发送邮件。
从现在开始,我一直在使用 django 管理命令并使用 crontabs 运行它们。我正在阅读 celery 可以做什么,但我发现很难理解为什么要使用 celery ?
另外,因为这将是我的 django 项目和数据库的另一个补充,它会降低性能吗?
我认为您不应该使用 celery,Cron 在您的情况下对我来说仍然听起来不错,但是您可能想尝试一下 Celery。
对我来说,Celery 是一个用于 [异步] [分布式] 任务队列的 Python 模块。它允许您将冗长的任务分派给在多台机器上运行的多个进程(但一台机器上的一个进程仍然可以)。当您需要做一些需要时间的事情时(例如生成缩略图、与外部 API 对话或生成复杂的报告),您可以使用 Celery 在后台执行此操作,而不会阻止用户的 HTTP 请求。
Celery 相对于 crontab 的一些优势:
芹菜的一些缺点:
而且,如果只是发送电子邮件,您可以考虑使用付费服务,例如Postmark(我不隶属于他们),它将为您处理电子邮件限制。