有没有办法可以告诉气流关闭dag,但只有在当前的dagrun完成后?
如果我在跑步中途禁用dag,它将自然停止处理dag。然而,当我恢复它时,它会在它停止的地方继续。 dagrun的状态对我来说并不重要,所以我目前手动“失败”dagrun(手动)。
有没有办法可以让当前(最近的?)dagrun失败或者允许dagrun完成然后通过命令行和/或通过API禁用?
答案 0 :(得分:1)
如果您在DAG选项中设置catchup=False
(或在catchup_by_default=False
设置airflow.cfg
),则会禁用回填。这意味着调度程序将仅运行DAG的最新执行。如果您关闭DAG并再次打开,则无法阻止Airflow捡起它,因为这就是它的意图。
因此,我认为您的问题是已经安排并标记为RUNNING
的DAG。在这种情况下,您可以做的是创建另一个负责“杀死”前者的DAG,或者直接将其关闭,直到您需要再次运行它并在DAG的开头放置Operator
负责关闭以前的执行可能仍会标记为RUNNING
。
答案 1 :(得分:0)
我不确定你要做什么,但在我看来,DAG应该只运行一次。
所以你可以通过
schedule_interval = '@once'
default_args
中的。