首页 > 解决方案 > 在 Airflow 的不同机器上运行一个 DAG 的多个任务

问题描述

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

气流 dag 快照

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

标签: redisceleryairflow

解决方案


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

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

因此,您可以将任务 A分配给queue 1,因此它将在Machine 1上运行 并分配

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

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


推荐阅读