Воздушный поток: повторите попытку до определенного времени - PullRequest
0 голосов
/ 21 февраля 2019

Мне нужно создать задание Airflow, которое должно выполняться абсолютно до 9 ч.

В настоящее время у меня есть задание, которое начинается в 7 ч, с повторными попытками = 8 с 15-минутным интервалом (8 * 15 м = 2 ч), к сожалению,моя работа занимает больше времени, и из-за этого задание не выполняется через 9 часов, что является жестким крайним сроком.

Как я могу заставить его повторяться каждые 15 минут, но не удается, если это через 9 часов, чтобы человек мог принятьпосмотрите на проблему?

Спасибо за вашу помощь

1 Ответ

0 голосов
/ 21 февраля 2019

Вы можете использовать аргумент execute_timeout при создании задачи, чтобы контролировать, как долго она будет выполняться до истечения времени ожидания.Поэтому, если вы запускаете задачу в 7:00 и хотите, чтобы она закончилась в 9:00, установите тайм-аут на 2 часа.Ниже приведена информация из документации Airflow

aggregate_db_message_job = BashOperator(
    task_id='aggregate_db_message_job',
    execution_timeout=timedelta(hours=2),
    pool='ep_data_pipeline_db_msg_agg',
    bash_command=aggregate_db_message_job_cmd,
    dag=dag)
aggregate_db_message_job.set_upstream(wait_for_empty_queue)
...