我不确定事情是如何结合在一起的。
我有一个应用程序,其中包含活跃的广告系列,以及响应获胜者等,并发送有关广告系列的提醒。 该广告系列是使用django创建的,在广告系列模型中,我有一个字段,表示每X天或每周或每小时通知获奖者。因此,对于此活动,获胜者必须在每个星期五宣布。这是针对每个广告系列,可能会有多个广告系列包含不同的获奖者和提醒设置。
我不知道从哪里开始celerybeat任务?应该保存模型吗?但是,如果你改变一些东西并再次保存模型怎么办?它不会创建另一个任务,然后导致发送2个或更多提醒等?
答案 0 :(得分:2)
Celerybeat是一个守护进程,它应永久run in the background(使用类似supervisord的东西)。鉴于您的最短提醒延迟是一小时,它应该每小时运行一次任务。
此任务应检查所有广告系列,并根据数据库中的数据决定应发送哪些提醒。为了方便起见,我建议您在下次发送提醒时计算并保存。这样,下次列出要发送的提醒就像列出所有逾期提醒一样简单。