Airflow execution_timeout сбрасывает каждую повторную попытку

Я хочу, чтобы задача завершилась ошибкой после 12 часов ее запуска, я установил execution_timeout на 12 часов:

Оператором является SQLSensor, так как он иногда терял соединение и выходил из строя, я установил retries на 3.

Однако из-за повторных попыток задача запускается заново после каждого тайм-аута.

1: задача запущена в 10:00

2: тайм-аут в 22:00

3: затем задача снова началась в 22:01

Я не хочу этого, как я могу установить общий тайм-аут для всех повторных попыток?

log_sensor = SqlSensor(
    task_id='log_sensor',
    conn_id='mssql_etl',
    sql=my_query,
    retries=3,
    execution_timeout=timedelta(hours=12),
    dag=dag)
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
4
0
1 974
1

Ответы 1

Я думаю, вы хотите использовать kwarg sla, как описано в документации здесь https://airflow.apache.org/docs/1.10.2/code.html?highlight=task%20timeout

sla(datetime.timedelta) – time by which the job is expected to succeed. Note that this represents the timedelta after the period is closed. For example if you set an SLA of 1 hour, the scheduler would send an email soon after 1:00AM on the 2016-01-02 if the 2016-01-01 instance has not succeeded yet. The scheduler pays special attention for jobs with an SLA and sends alert emails for sla misses. SLA misses are also recorded in the database for future reference. All tasks that share the same SLA time get bundled in a single email, sent soon after that time. SLA notification are sent once and only once for each task instance.

На самом деле я так не думаю, я использую sla для писем с предупреждениями, как описано в документации. При использовании sla airflow отправляет письмо с предупреждением, и задача продолжает выполняться, это для уведомления afaik. Я хочу установить тайм-аут задачи по истечении определенного периода времени, задача должна быть завершена неудачно, когда истечет время ожидания. Когда я устанавливаю количество повторных попыток на 0, он делает то, что я хочу. Но есть риск потерять связь в любой момент. Из-за этого я должен установить количество повторных попыток больше 0. Когда я устанавливаю повторные попытки, после тайм-аута оно становится up_for_retry.

mustafagok 25.01.2020 16:00

Хороший момент, я неправильно понял, о чем вы спрашиваете. Думали ли вы о настройке dagrun_timeout, как описано здесь? github.com/apache/airflow/blob/master/airflow/models/…

lbrindze 27.01.2020 16:25

Спасибо, но это не соответствует моим требованиям, в первую очередь это для запуска dag, но мне нужно что-то для экземпляра задачи, также мой dag не запланирован, и это для запланированных запусков dag :( Это хорошо изучить это, я могу пользуюсь другими запланированными дагами :) спасибо.

mustafagok 31.01.2020 11:16

Другие вопросы по теме