Есть ли способ настроить dag для воздушного потока таким образом, чтобы dag-a не запускался, если dag-b все еще работает, и наоборот? - PullRequest
0 голосов
/ 04 апреля 2020

У меня есть несколько дагов, которые работают с разной частотой: некоторые еженедельно, некоторые ежедневно и т. Д. c. Я хочу, чтобы он был настроен так, чтобы во время работы dag-a, dag-b должен был дождаться его завершения. Кроме того, если dag-b запущен, dag-a должен подождать, пока dag-b не завершится, et c. Есть ли способ сделать это в потоке воздуха из коробки?

Ответы [ 2 ]

0 голосов
/ 07 апреля 2020

Вы можете использовать сенсорный оператор для определения пробежек или задачи в пробежке. Внешний датчик задач - лучший выбор. Будьте осторожны, как вы установили таймделту. В общем, идея состоит в том, чтобы указать, когда датчик сможет обнаружить пробел. Например: если основной dag запланирован на 4 UT C, а датчик задачи является задачей в dag, как показано ниже

ExternalTaskSensor(
            dag=dag,
            task_id='dag_sensor_{}'.format(key),
            external_dag_id=key,
            timedelta=timedelta(days=1),
            external_task_id=None,
            mode='reschedule',
            check_existence=True
        )

, то другой dag, который должен быть обнаружен, должен запускать прогон на 4.00UT C. Эта разница в один день установлена ​​для компенсации разницы даты исполнения и текущей даты

0 голосов
/ 05 апреля 2020

То, что вы ищете, вероятно, ExternalTaskSensor

Воздушный поток Зависимости между DAG также очень полезно.

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

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