【问题标题】:Stop retrying periodic celery task on error出错时停止重试周期性 celery 任务
【发布时间】:2016-09-26 19:56:28
【问题描述】:

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

可能的解决方法是什么?

【问题讨论】:

    标签: python django celery celerybeat


    【解决方案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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-03
      • 2018-11-28
      • 1970-01-01
      • 1970-01-01
      • 2020-09-30
      • 1970-01-01
      • 2019-02-16
      • 1970-01-01
      相关资源
      最近更新 更多