Воздушный поток DAG B запускается много раз после завершения DAG A за этот день - PullRequest
0 голосов
/ 29 июня 2018

DAG A имеет расписание '0 6 * * *'.

DAG B имеет расписание '* / 5 * * * *'.

Однако группа обеспечения доступности баз данных должна начинать работу в этот день только после завершения работы группы доступности базы данных в течение этого дня.

Я играл с SubDags и ExternalTaskSensor, но пока не нашел удовлетворительного решения, и я уверен, что упускаю что-то хорошее. Рекомендации?

Редактировать : скажем, DAG A - мой ETL. DAG B имеет несколько задач, которые запрашивают мою базу данных и требуют, чтобы данные были обновлены. DAG B запускается в течение дня, но только после завершения ETL.

Я могу видеть, например, использование ShortCircuitOperator и наличие условия «DAG A, запущенный сегодня, завершен». Но как я мог написать это условие?

Ответы [ 2 ]

0 голосов
/ 30 июня 2018

Этот вопрос не является точным дубликатом, но похож на другой, у которого уже есть 3 хороших ответа: Планирование выполняется в Airflow .

Я рекомендую прочитать все из них, но, чтобы обобщить информацию в ответах, есть несколько жизнеспособных вариантов для случая использования DAG, зависящего от другого DAG:

  • TriggerDagRunOperator
  • BranchPythonOperator
  • ShortCircuitOperator
  • SubDagOperator / SubDAGs
  • С любой из этих опций вы можете поэкспериментировать с правилом триггера
  • Внешние триггеры (возможно, менее релевантные для вашего варианта использования)

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

0 голосов
/ 29 июня 2018

Используйте TriggerDagRunOperator для вызова группы обеспечения доступности баз данных для запуска после другой. Обратитесь к этому вопросу . Боюсь, я не могу привести удовлетворительный пример, поскольку я еще не использовал его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...