Воздушный поток: разрешить только один экземпляр задачи - PullRequest
1 голос
/ 03 июня 2019

DAG Tree view

Есть ли способ указать, что задача может быть запущена только один раз одновременно? Таким образом, в дереве выше, где параллелизм DAG равен 4, Airflow запустит задачу 4 вместо второго экземпляра задачи 2?

Этот DAG немного особенный, потому что между задачами нет порядка. Эти задачи независимы, но связаны по назначению и, следовательно, хранятся в одной группе обеспечения доступности баз данных, что позволяет создавать избыточное количество групп обеспечения доступности баз данных с одной задачей.

max_active_runs равно 2, а dag_concurrency равно 4. Я хотел бы, чтобы он запускал все 4 задачи и запускал задачу только в следующей, если такая же задача была выполнена в предыдущем запуске.

Ответы [ 3 ]

1 голос
/ 04 июня 2019

Из официальных документов для правил триггера:

depends_on_past (логическое значение), если задано значение True, удерживает задачу от запуска, если предыдущее расписание для задачи не выполнено.

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

0 голосов
/ 04 июня 2019

На airflow.cfg под [core]. Вы найдете

dag_concurrency = 16 // Количество экземпляров задачи, которые могут одновременно выполняться планировщиком

Вы можете изменить это на то, что вы желаете.

0 голосов
/ 04 июня 2019

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

Если это так, вы можете использовать параметр max_active_runs в dag, чтобы ограничить количество одновременно работающих экземпляров DAG.

Более подробная информация здесь (см. Последнюю точку): https://airflow.apache.org/faq.html#why-isn-t-my-task-getting-scheduled

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

...