Задержка между задачами в Airflow или другом варианте?

Мы используем воздушный поток 2.00. Я пытаюсь реализовать DAG, который выполняет две функции:

  1. Запуск отчетов через API
  2. Скачивайте отчеты из источника в пункт назначения.

Между задачами 1 и 2 должен быть промежуток не менее 2–3 часов. Из моего исследования у меня есть два варианта.

  1. Две группы DAG для двух задач. Запланируйте 2-й DAG через два часа от 1-го DAG
  2. Задержка между двумя задачами, как указано здесь

Есть ли предпочтение между двумя вариантами. Есть ли третий вариант с Airflow 2.0? Пожалуйста, порекомендуйте.

2 ответа

Другой вариант - установить датчик, ожидающий появления отчета. Вы можете использовать режим перепланирования датчиков, чтобы освободить рабочие места.

      generate_report = GenerateOperator(...)
wait_for_report = WaitForReportSensor(mode='reschedule', poke_interval=5 * 60, ...)
donwload_report = DonwloadReportOperator(...)

generate_report >> wait_for_report >> donwload_report

Третий вариант - использовать датчик между двумя задачами, ожидающий готовности отчета. Вне-полки один , если есть один для источника, или обычай один , что подклассы в базовый датчике .

Первые два варианта представляют собой разные реализации фиксированного времени ожидания. С ним две проблемы: 1. Что делать, если отчет все еще не готов по прошествии заданного времени? 2. Ненужное ожидание, если отчет готов раньше.

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