气流将长时间运行的任务标记为失败
Posted
技术标签:
【中文标题】气流将长时间运行的任务标记为失败【英文标题】:Airflow marking long running tasks as Failed 【发布时间】:2020-11-14 10:49:27 【问题描述】:我们在几个 DAG 中有几个长时间运行的任务(超过 100 小时)。这些任务在内部调用一个 http 端点来启动一个进程,然后在一个循环中轮询状态 + 睡眠 30 秒。大约 40 小时左右后,Airflow 将作业标记为失败,但日志中没有说明原因 - 为任务运行打印的最后一项是“睡眠 30 秒”语句”。触发的 http 进程也是启动并运行。
提前致谢
【问题讨论】:
问题已解决 - 我们的 Openshift pod 由于部署导致工作人员、调度程序和网络服务器退出而重新启动。感谢大家的投入 你是怎么解决的?我也有类似的问题:***.com/questions/63141944/… 【参考方案1】:如果您的目标是等到状态发生变化,请使用带有重新调度功能的传感器(可能需要更长的轮询等待时间)。您的方法可能会阻止工作人员,并且以某种方式阻止工作人员与调度程序失去通信。这些任务将被标记为僵尸并可能被杀死。
【讨论】:
是的,我同意我们可能不得不改变方法,但我认为在这种情况下它不能回答我的问题。另外值得注意的是,任务被标记为失败,但为任务定义的 on_kill 方法没有被调用。 检查worker配置是否因为某种原因导致这个任务的进程被杀死。它可以是内存或其他任何东西。以上是关于气流将长时间运行的任务标记为失败的主要内容,如果未能解决你的问题,请参考以下文章