停止在出错时重试定期芹菜任务

时间:2016-05-28 15:53:22

标签: python django celery celerybeat

想象一下celery schedule中的任务,每分钟运行一次,发送电子邮件。如果出现错误,则更常见的是持久性,例如数据库不可用,因此邮箱会被类似的电子邮件发送垃圾邮件。

可能的解决方法是什么?

1 个答案:

答案 0 :(得分:1)

您可以使用一个标志,以便程序知道它是否已经发送了一个警报电子邮件,一旦数据库重新联机就会被设置回False

代码只是概念的一个例子..它与Celery无关,但我确信你可以根据自己的需要进行操作

database_flag = False

database = get_database()

while True:
    if not database.is_faulted():
        database_flag = False
    elif database.is_faulted() and not database_flag:
        send_email()
        database_flag = True

    time.sleep(60)