首页 > 解决方案 > 气流中的自动缩放任务

问题描述

我想使用气流进行图像处理。

我有 4 个任务:图像预处理 (A)、边界框查找器 (B)、分类 (C)、图像最终确定 (D)。

图表如下所示:

A -> B1 -> C  \
  -> B2 -> C  -   D
  -> B3 -> C  /
  -> Bn -> C /

图像预处理任务的输出是边界框建议列表,对于每个边界框我运行分类,一旦所有分类任务结束,我运行图像最终确定。

我希望一切都并行运行

这将在每天 10000 张图像上运行,因此如果我在 UI 中为每个图像提供不同的管道表示,我将无法跟踪管道......

在气流中可能吗?

标签: airflow

解决方案


像这样动态创建任务并不是 Airflow 最适合的。看看这里的答案以获得一些见解:运行时的气流动态任务。Airflow 更适合作为调度工具,因此我建议您将实际工作和并行化委托给另一个工具,例如 Celery。您仍然可以使用 Airflow 来安排这项工作,您的 B 步骤是一个简单的操作员,它从 A 读取输出(通过 XCom 或类似方式)并将实际工作分配给一些远程工作人员。

你能提前知道B任务的最大可能数量吗?如果这是可管理的,您可以创建最大 B 任务,然后根据 A 的结果根据需要跳过其中一些任务。实现可能并不简单,但您可以从这个讨论中得到一些提示:启动一个 subdag在气流中具有可变的并行任务


推荐阅读