Problema
¿Hay alguna forma en Airflow de crear un flujo de trabajo tal que se desconozca el número de tareas B. * hasta que se complete la Tarea A? He analizado los subdags, pero parece que solo puede funcionar con un conjunto estático de tareas que deben determinarse en la creación de Dag.
¿Funcionarían los gatillos dag? Y si es así, ¿podría darnos un ejemplo?
Tengo un problema en el que es imposible saber la cantidad de tareas B que se necesitarán para calcular la Tarea C hasta que se complete la Tarea A. Cada Tarea B. * tomará varias horas para calcularse y no se puede combinar.
|---> Task B.1 --|
|---> Task B.2 --|
Task A ------|---> Task B.3 --|-----> Task C
| .... |
|---> Task B.N --|
Idea # 1
No me gusta esta solución porque tengo que crear un ExternalTaskSensor de bloqueo y toda la Tarea B * tardará entre 2 y 24 horas en completarse. Por tanto, no considero que esta sea una solución viable. ¿Seguro que hay una forma más sencilla? ¿O Airflow no fue diseñado para esto?
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 --|
Edición 1:
A partir de ahora, esta pregunta aún no tiene una gran respuesta . Varias personas se han puesto en contacto conmigo en busca de una solución.