У меня вопрос к значениям конфигурации max_active_runs
и concurrency
Airflow для групп доступности баз данных.
У меня есть родительский DAG XYZ , который выполняется ежедневно. Он состоит из следующих подпагов с использованием оператора Sub DAG:
- Sub DAG A - ежедневно и содержит 3 задачи, которые не зависят друг от друга.
- Sub DAG B - ежедневно и содержит 3 задачи, которые не зависят друг от друга.
Меня интересует следующее:
- Внутри Sub DAG A , я бы хотел, чтобы там было
max_active_runs
со значением 1 и concurrency
со значением 1 , поэтому что в любой момент времени может быть запущена только задача 1 . - Внутри Sub DAG B , я бы хотел, чтобы там было
max_active_runs
со значением 1 и concurrency
со значением 1, так что в любой момент времени может выполняться только задача 1 . - В Parent DAG XYZ Я хотел бы, чтобы каждый вложенный тег выполнялся независимо и не зависел от другого подчиненного.
- В Родительском 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)?