我需要一种方法来在超时后终止正在运行的KubernetesPodOperator任务,我的DAG计划运行every 15 minutes。
我试图将dagrun_timeout和max_active_runs添加到DAG参数中,
我预期这将停止DAG,终止正在运行的任务,并将其标记为失败。
但是实际发生的情况是,DAG被标记为失败,任务将继续运行,而且由于DAG计划每15分钟运行一次,所以DAG将被触发并继续运行,即使上一次DAG运行中的任务仍在运行。
有办法解决这个问题吗?
发布于 2020-07-10 06:59:12
正如我们在评论部分所讨论的,我现将讨论总结为一个答案,以进一步帮助社会人士。
根据文档,参数dagrun_timeout指定在超时/失败之前DagRun应该运行多长时间,以便可以创建新的DagRuns。此外,只对计划的DagRuns强制超时,并且只对active DagRuns == max_active_runs的数量执行一次。
根据今天的情况,气流1.10.2有一个持续的问题,所报告的问题的描述是:与此相关,当我们手动失败一个任务时,DAG任务停止运行,但是DAG中的Pod不会被杀死并继续运行。这个描述和你的相符。尽管如此,Google平台中的当前版本是Airflow 1.10.6和Composer 因此,出于这个原因,我强烈鼓励您更新您的环境。
发布于 2020-07-01 03:32:16
我认为您使用的配置是在DAG级别超时,并将DAG标记为失败。我建议使用任务级超时引用这里
execution_timeout (datetime.timedelta) -允许执行此任务实例的最大时间,如果超出它,则会引发并失败。
让我知道这很有帮助!
发布于 2022-04-08 05:12:26
我看到的解决方法是,当操作符超时时,可以使用回退选项来关闭所有特定的运行吊舱。
https://stackoverflow.com/questions/62654686
复制相似问题