0

我正在尝试为托管在heroku上的带有芹菜的Django应用程序设置一些计划任务。除了不知道应该如何配置一切之外,解决这个问题的最佳方法是什么?

假设用户可以选择在他们选择的时间接收每日电子邮件。

我是否应该有一个每隔 5 分钟运行一次的预定作业。查找当时想要收到电子邮件的每个用户,然后关闭电子邮件?

或者

当每个用户设置他们的偏好时,为他们安排一个任务。(不确定我将如何实际实现这一点)

4

2 回答 2

1

这取决于您需要多少准确度。您是否希望用户选择精确到分钟的时间?第二?或者允许他们选择他们希望通过电子邮件发送的时间就足够了。

如果整点时间足够准确,则使用一项任务,该任务每小时轮询用户发送邮件。

如果您的用户需要邮件准确到秒,则为每个用户设置一个任务,定时在该秒完成。

两者之间的一切都归结为个人选择。你更喜欢做什么,甚至更重要的是:什么产生最简单的代码和最少的故障模式

于 2013-04-08T02:59:28.370 回答
0

我建议第一个选项(查找优秀工作的预定工作) - 更易于扩展和管理。如果您有 1000 多个用户怎么办 - 这就是发送电子邮件的大量任务。

如果您将数据库用作 celery 代理,则可以使用 django-celery 内置的类似 cron 的调度,这将允许您动态创建和销毁任务。不过,我不喜欢为我的经纪人使用数据库。

此外,您可能想查看chronos

于 2013-04-08T05:06:11.390 回答