从子dag访问父dag runID

2024-04-27 04:18:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我们正在尝试编写一个DAG来在大量主机上执行一些操作,为此,我需要将主机名作为参数传递给DAG。 因为Airflow不提供在DAG运行期间提供命令行参数的选项。我们已经设置了一个DB,在这里我们提供了DAG可以运行的参数。看起来不错

(以上部分的问题-有没有更好的方法来提供命令行参数?)

但是,当我们运行DAG需要很长时间,而网络调度到来时,问题就出现了,因为DB仍然有这些参数,下一次运行将再次为同一组参数运行同一个作业。为了解决这个问题,我们考虑将锁(DAG run ID)更新到DB。这样会很管用的

(以上部分的问题-有没有更好的方法来创建锁,以便不同的计划运行不执行相同的作业?)

但是我的Dag也包含子Dag,因为父Dag和子Dag的Dag runid是不同的。逻辑是失败的

(以上部分的问题-有没有一种方法可以从subdag访问父上下文来读取runID?)

谢谢你的耐心,如果需要其他细节请告诉我。任何帮助都将不胜感激


Tags: 方法run命令行网络iddb参数选项