【发布时间】:2017-02-20 09:38:27
【问题描述】:
我有一个 Django 应用程序,系统应该每天在特定时间发送一封电子邮件。目前我正在使用 Celery + Redis 在一天中的特定时间发送电子邮件。
我想允许用户设置发送电子邮件的后台任务必须运行的时间。实现这一目标的最佳方法是什么?我找不到用户设置这次的任何示例。
或者,我将允许用户选择必须发送电子邮件的时间。 9:00、10:00 等。然后我将任务设置为每小时运行一次,并检查是否有任何用户选择了该时间。这似乎不是最干净的方法。还有其他建议吗?
我的应用在 Heroku 上运行,不确定这是否会有所不同
【问题讨论】:
-
我不认为 Celery 支持你想要的。您可能需要实现自定义解决方案,例如让 celerybeat 每分钟运行一个任务,并在任务中检查哪些用户选择了该时间进行发送,然后发送给他们。
-
谢谢安东尼,我想我可能不得不走那条路