2016-05-28 4 views
1

Представьте себе задачу в celery schedule, которая запускается каждую минуту, и отправляет по электронной почте об ошибках. Если есть ошибка, это чаще повторяется, например, недоступность базы данных, поэтому почтовый ящик получает спам с похожими электронными письмами.Остановить повторную периодическую задачу сельдерея при ошибке

Какие возможные обходные пути?

ответ

1

Вы можете использовать флаг, чтобы программа знает, имеет ли он уже послал сигнал тревоги электронной почты, который получает набор обратно Ложные, если база данных возвращается онлайн

код является лишь примером концепции .. это не связанный с сельдереем, однако я уверен, что вы можете работать в соответствии с вашими потребностями

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)