redis - 在 Airflow 的不同机器上运行一个 DAG 的多个任务
问题描述
我需要创建一个看起来像这样的 dag-
print_date任务需要从服务器 A运行,模板化任务需要从服务器 B运行。从文档中可以清楚地看出,需要带有 Redis 或 RabbitMq 的 celery。我正在使用 celery 和 Redis(puckel/docker-airflow)。我已经在服务器 B 中使用 celery 执行器运行了气流。
我是否也需要在服务器 A 中进行相同的设置?另外,我如何将这两个任务连接到一个实际存在于不同服务器中的单个 dag 中?非常感谢这种用例的示例框架。
解决方案
使用气流队列。当您定义任务时,添加一个queue
参数并将其分配给特定队列。
例如,queue1 将只在机器 1 上运行所有任务,而 queue2 将在机器 2 上运行所有任务。
因此,您可以将任务 A分配给queue 1,因此它将在Machine 1上运行 并分配
任务 B到队列 2,因此它将在机器 2上运行
推荐阅读
- arrays - Mongodb node.js 组织数组结果
- php - How to use a text file to log users in
- javascript - 使用基于实例的装饰器发布订阅者模式“this”始终未定义
- android - 如何重新绑定到正在运行的服务?
- python - 选择数据帧不同部分的方法比 for 循环更快?
- c# - .NET Real-Time 和 TaskMgr 实时优先级有什么区别?
- c# - C# dotnet "Require" 和断言
- android - 如何使用 FIrebaseRecyclerAdapter 进行 recyclerview 设置与视图模型保持一致?
- java - 为什么使用“node.getNext( ) == null”作为失效节点的约定?
- python - 如何将 SQL 查询的结果从 Databricks 导出到 Azure Data Lake Store