我们正在尝试编写DAG以在大量主机上执行一些操作,为此,我需要将主机名作为参数传递给DAG。 由于Airflow不提供在DAG运行期间提供命令行参数的选项。我们已经设置了一个数据库,在该数据库中提供了可以运行DAG的参数。这样看起来不错。
(以上部分的问题-是否有更好的方法来提供命令行参数?)
但是,当我们DAG花很长时间运行并且出现净计划时,就会出现问题,因为DB将仍然具有这些参数,下一次运行将再次为相同的参数集运行相同的作业。为了克服这个问题,我们考虑了更新数据库的锁(DAG运行ID)。这样会很好。
(以上部分的问题-是否有更好的方法来创建锁,以便不同的预定运行不会执行相同的工作?)
但是“我的达格”还包含子达格,并且由于父级和子级DAG的DAG-runid不同。逻辑失败。
(以上部分的问题-有什么方法可以从subdag访问父上下文以读取runID吗?)
感谢您的耐心配合,如果需要其他详细信息,请告诉我。任何帮助将不胜感激。