有没有办法在 Airflow 中创建一个工作流,使得任务 B 的数量在任务 A 完成之前是未知的?我已经看到了子标记,但它看起来只能与一组静态任务一起工作,必须在创建 Dag 时确定。
如果是的话,请举个例子。
我有一个问题,它是不可能知道的任务 B 的数量,将需要计算任务 C,直到任务 A 已经完成。每个任务 B * 将需要几个小时来计算,不能合并。
|---> Task B.1 --|
|---> Task B.2 --|
Task A ------|---> Task B.3 --|-----> Task C
| .... |
|---> Task B.N --|
我不喜欢这个解决方案,因为我必须创建一个阻塞的 ExternalTaskSensor,并且所有的 Task B * 都需要2-24小时才能完成。所以我不认为这是一个可行的解决方案。肯定有更简单的办法吧?或者 Airflow 不是为此而设计的?
Dag 1
Task A -> TriggerDagRunOperator(Dag 2) -> ExternalTaskSensor(Dag 2, Task Dummy B) -> Task C
Dag 2 (Dynamically created DAG though python_callable in TriggerDagrunOperator)
|-- Task B.1 --|
|-- Task B.2 --|
Task Dummy A --|-- Task B.3 --|-----> Task Dummy B
| .... |
|-- Task B.N --|
到目前为止,这个问题仍然没有一个很好的答案。有几个人联系我想找到解决办法。