完成dagrun然后禁用dag

时间:2018-04-16 23:20:31

标签: airflow

有没有办法可以告诉气流关闭dag,但只有在当前的dagrun完成后?

如果我在跑步中途禁用dag,它将自然停止处理dag。然而,当我恢复它时,它会在它停止的地方继续。 dagrun的状态对我来说并不重要,所以我目前手动“失败”dagrun(手动)。

有没有办法可以让当前(最近的?)dagrun失败或者允许dagrun完成然后通过命令行和/或通过API禁用?

2 个答案:

答案 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中的