【发布时间】:2021-12-29 09:24:52
【问题描述】:
我在 Airflow 2 SubdagOperator 文档link 中看到,使用mode = reschedule 我们可以摆脱潜在的死锁。
据我了解,它不是可以与其他参数列表一起传递的参数。如果有人使用过,请告诉我如何将其合并到 SubdagOperator 中。
【问题讨论】:
标签: python-3.x airflow airflow-2.x
我在 Airflow 2 SubdagOperator 文档link 中看到,使用mode = reschedule 我们可以摆脱潜在的死锁。
据我了解,它不是可以与其他参数列表一起传递的参数。如果有人使用过,请告诉我如何将其合并到 SubdagOperator 中。
【问题讨论】:
标签: python-3.x airflow airflow-2.x
从技术上讲,SubDagOperator 是一个传感器,可以接受参数mode="reschedule"。默认模式poke 保持插槽打开,如果您使用大量传感器,这可能会导致死锁情况。模式reschedule 而是停止进程并在每次检查时创建一个新进程,不会导致所有插槽都被相互等待的传感器占用。
SubDagOperator(task_id="foobar", ..., mode="reschedule")
话虽如此,SubDagOperator 自 Airflow 2.0 以来已被弃用,建议使用 TaskGroups。 TaskGroups 是一种将 DAG 中的任务组合在一起的可视方式(此处的教程:https://www.astronomer.io/guides/task-groups)。
或者,您可以使用 TriggerDagRunOperator 触发另一个 DAG(教程:https://www.astronomer.io/guides/cross-dag-dependencies)。
【讨论】: