【发布时间】:2020-08-23 21:21:41
【问题描述】:
我想模仿 Gmail 的功能,您可以在 Django 中选择在特定时间发送电子邮件(可能是明天凌晨 3:34)。
我看了django-crontab (https://pypi.org/project/django-crontab/) 之类的东西。
我想出了一个使用django-crontab 来实现此目的的想法:
- 制作一个每分钟运行一次的 crontab
- 每分钟,检查是否有任何电子邮件需要发送
- 发送这些电子邮件
这感觉有点hacky和过度设计。有没有更好的办法?谢谢!
【问题讨论】:
-
celery怎么样?您可以使用已安排的 celery 任务安排发送电子邮件。如果发送失败,它将允许管理自动重试。 -
@TimofeyKatalnikov 我会调查并回复您!谢谢!!
-
@TimofeyKatalnikov 我正在看这个视频:youtube.com/watch?v=b-6mEAr1m-A,它说我需要一个 celery 服务器。而
django-cron不需要,对吧? -
我确信
celery几乎在任何地方都使用django来管理计划任务。通常它是带有 celery worker 的附加 docker 容器和类似rabbitmq的东西来管理任务队列。这是一种常见的做法。如果您确定只需要发送电子邮件,那么django-crontab适合,但我仍然建议使用celery。 -
@TimofeyKatalnikov 在这种情况下,我认为最好了解
celery的工作原理。您会碰巧熟悉 AWS EC2 吗?再次感谢您的帮助!
标签: django celery django-cron