Выполнение задач за определенное время c в потоке воздуха - PullRequest
0 голосов
/ 02 апреля 2020

У меня 3 задачи в потоке воздуха.

Эти три задачи зависят от времени

Задача 1 - 8 часов утра

Задача - 2 - 10 часов утра

Задание -3 - 12:00

Я не нахожу никаких дел c, ссылающихся на это. Это говорит только о том, чтобы создавать рабочие места вверх или вниз по течению. Может ли кто-нибудь помочь в этом

Я использую Google CLoud Composer

Ответы [ 2 ]

3 голосов
/ 02 апреля 2020

Хорошо, структура воздушного потока сделана так, что schedule_interval установлен на уровне DAG. Это означает, что вы можете установить время, когда вся группа DAG начнет выполнение, но вы не можете указать другое время выполнения для задачи .

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


Если вместо этого временная зависимость task_2 и task_3 не так важна, но вы заботитесь только о том, что выполняются одна за другой , вы действительно можете установить зависимости между задачами так, чтобы task_2 запускается всегда после завершения task_1, а task_3 запускается всегда после завершения task_2. Чтобы установить зависимости, вы можете использовать очень удобный синтаксис (при условии, что ваши задачи были назначены переменным task_1, task_2, task_3):

task_1 >> task_2 >> task_3

Вы можете обратиться к Официальный Airflow документация для получения дополнительной информации.


TL; DR: Вы не можете запланировать запуск отдельных задач с разными указанными c разами, поскольку вы можете установить только одно время. общий прогон DAG один.

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

Документация по воздушному потоку:

https://airflow.apache.org/docs/stable/concepts.html#bitshift -композиция

После Airflow 1.8 вы также можете использовать композицию битового сдвига.

Вместо того, чтобы устанавливать время для ваших задач, используйте этот подход:

op1 = DummyTask(...)
op2 = DummyTask(...)

op1 >> op2 # same as: op1.set_downstream(op2)

Приведенное выше назначение означает, что Airflow будет выполняться только op2 только после успешного завершения op1.

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