使用 Airflow 中的另一个 dag 触发外部 dag
Triggering the external dag using another dag in Airflow
具有调用主节点中不同 dag 的任务列表 dag.I正在使用 TriggerDagrunoperator 来完成此任务。但面临的问题很少。
TriggerDagrunoperator 不等待外部 dag 完成,它会触发下一个任务。我希望等到完成,下一个任务应该根据状态触发。遇到了 ExternalTaskSensor。它使过程变得复杂。有没有其他解决方案可以解决这个问题?
如果我再次触发master dag,我希望任务从失败的地方重新开始。现在,它不会重新启动,但对于基于时间的计划,它会。
.. I want that to wait until completion .. Came across
ExternalTaskSensor. It is making the process complicated ..
我不知道有任何其他方法可以实现此目的。这是我自己做的 .
If I trigger the master dag again, I want the task to restart from
where it is failed...
你的这个要求违背了principle of idempotency that Airflow
demands. I'd suggest you try to re-work you jobs in incorporate idempotency (for instance in case of retries, you have to have idempotency). Meanwhile you can take inspiration from some people并尝试实现类似的东西(但它会很复杂)
使用 Airflow 2.0.1,触发 dag 可以通过参数 wait_for_completion
等待目标 dag 完成
参考:here
具有调用主节点中不同 dag 的任务列表 dag.I正在使用 TriggerDagrunoperator 来完成此任务。但面临的问题很少。
TriggerDagrunoperator 不等待外部 dag 完成,它会触发下一个任务。我希望等到完成,下一个任务应该根据状态触发。遇到了 ExternalTaskSensor。它使过程变得复杂。有没有其他解决方案可以解决这个问题?
如果我再次触发master dag,我希望任务从失败的地方重新开始。现在,它不会重新启动,但对于基于时间的计划,它会。
.. I want that to wait until completion .. Came across ExternalTaskSensor. It is making the process complicated ..
我不知道有任何其他方法可以实现此目的。这是我自己做的
If I trigger the master dag again, I want the task to restart from where it is failed...
你的这个要求违背了principle of idempotency that Airflow
demands. I'd suggest you try to re-work you jobs in incorporate idempotency (for instance in case of retries, you have to have idempotency). Meanwhile you can take inspiration from some people并尝试实现类似的东西(但它会很复杂)
使用 Airflow 2.0.1,触发 dag 可以通过参数 wait_for_completion
参考:here