在Airflow的不同计算机上运行一个DAG的多个任务

时间:2019-03-26 21:22:15

标签: redis celery airflow

我需要创建一个看起来像这样的dag-

airflow dag snapshot

print_date 任务需要从服务器A 运行,而模板化任务需要从服务器B 运行。从文档中可以明显看出,将需要带有Redis或RabbitMq的芹菜。我正在使用芹菜和Redis(puckel/docker-airflow)。我已经用celery executer在服务器B中运行气流了。
我是否还需要在服务器A中进行相同的设置? 另外,如何将这两个任务连接到一个实际存在于不同服务器中的dag中? 对于这种用例的示例框架将不胜感激。

1 个答案:

答案 0 :(得分:1)

使用气流Queues。并且在定义任务时,添加一个queue参数并将其分配给特定的队列。

例如,queue1只会在机器1上运行所有任务,而queue2会在机器2上运行所有任务。

因此您可以将任务A 分配给队列1 ,因此它将在机器1 上运行 并分配

任务B 队列2 ,因此它将在机器2

上运行

https://airflow.apache.org/concepts.html#queues上查看文档