Как настроить значения max_active_runs и параллелизма Airflow для каждой вспомогательной группы доступности базы данных в родительской группе доступности базы данных? - PullRequest
0 голосов
/ 16 февраля 2020

У меня вопрос к значениям конфигурации max_active_runs и concurrency Airflow для групп доступности баз данных.

У меня есть родительский DAG XYZ , который выполняется ежедневно. Он состоит из следующих подпагов с использованием оператора Sub DAG:

  • Sub DAG A - ежедневно и содержит 3 задачи, которые не зависят друг от друга.
  • Sub DAG B - ежедневно и содержит 3 задачи, которые не зависят друг от друга.

Меня интересует следующее:

  1. Внутри Sub DAG A , я бы хотел, чтобы там было max_active_runs со значением 1 и concurrency со значением 1 , поэтому что в любой момент времени может быть запущена только задача 1 .
  2. Внутри Sub DAG B , я бы хотел, чтобы там было max_active_runs со значением 1 и concurrency со значением 1, так что в любой момент времени может выполняться только задача 1 .
  3. В Parent DAG XYZ Я хотел бы, чтобы каждый вложенный тег выполнялся независимо и не зависел от другого подчиненного.
  4. В Родительском DAG XYZ я хотел бы, чтобы каждый вложенный тег только запустить 1 день в нью дано время. Это необходимо для того, чтобы каждый из подчиненных мог бегать в своем темпе. Например, Sub DAG A может работать в день 1 февраля, а Sub DAG B может работать в день 5 февраля. Если Sub DAG B завершается, разрешите ему продолжить с 6 февраля.

Я попытался сделать это, настроив max_active_runs (2) и concurrency (2) для родительского тега, однако это может привести к тому, что 1 вспомогательный тег потенциально будет выполняться два дня одновременно ( даже если внутри этого подпадажа, он ограничен 1 выполнением задачи).

Может ли кто-нибудь поделиться примером кода потока воздуха python, который обеспечивает вышеуказанное (родитель + подпада A + поддага B)?

...