airflow - 气流中的自动缩放任务
问题描述
我想使用气流进行图像处理。
我有 4 个任务:图像预处理 (A)、边界框查找器 (B)、分类 (C)、图像最终确定 (D)。
图表如下所示:
A -> B1 -> C \
-> B2 -> C - D
-> B3 -> C /
-> Bn -> C /
图像预处理任务的输出是边界框建议列表,对于每个边界框我运行分类,一旦所有分类任务结束,我运行图像最终确定。
我希望一切都并行运行
这将在每天 10000 张图像上运行,因此如果我在 UI 中为每个图像提供不同的管道表示,我将无法跟踪管道......
在气流中可能吗?
解决方案
像这样动态创建任务并不是 Airflow 最适合的。看看这里的答案以获得一些见解:运行时的气流动态任务。Airflow 更适合作为调度工具,因此我建议您将实际工作和并行化委托给另一个工具,例如 Celery。您仍然可以使用 Airflow 来安排这项工作,您的 B 步骤是一个简单的操作员,它从 A 读取输出(通过 XCom 或类似方式)并将实际工作分配给一些远程工作人员。
你能提前知道B任务的最大可能数量吗?如果这是可管理的,您可以创建最大 B 任务,然后根据 A 的结果根据需要跳过其中一些任务。实现可能并不简单,但您可以从这个讨论中得到一些提示:启动一个 subdag在气流中具有可变的并行任务。
推荐阅读
- html - 在反应酶单元测试中获取 HTML 元素样式
- android - Firebase 仅在其为空时更新字段
- arrays - grep 只是多个文件的最后一次出现
- php - 在选择选项中显示来自 mysql 的一张表?
- android - 一切都在 Unity 中有效,但在 Android 上无效
- android - 我没有检索价值
- python - 如何创建多级 json 文件,然后从 python 中读取特定值?
- python - 如何检查应用程序将在 azure 中运行的时区
- javascript - jQuery 幻灯片 - 当一个幻灯片处于活动状态时隐藏其他幻灯片
- jquery - 用于更改活动类的 jquery 不起作用