【问题标题】:Airflow marking long running tasks as Failed气流将长时间运行的任务标记为失败
【发布时间】:2020-11-14 10:49:27
【问题描述】:

我们在几个 DAG 中有几个长时间运行的任务(超过 100 小时)。这些任务在内部调用一个 http 端点来启动一个进程,然后在一个循环中轮询状态 + 睡眠 30 秒。大约 40 小时左右后,Airflow 将作业标记为失败,但日志中没有说明原因 - 为任务运行打印的最后一项是“睡眠 30 秒”语句”。触发的 http 进程也是启动并运行。

提前致谢

【问题讨论】:

  • 问题已解决 - 我们的 Openshift pod 由于部署导致工作人员、调度程序和网络服务器退出而重新启动。感谢大家的投入
  • 你是怎么解决的?我也有类似的问题:stackoverflow.com/questions/63141944/…

标签: python airflow


【解决方案1】:

如果您的目标是等到状态发生变化,请使用带有重新调度功能的传感器(可能需要更长的轮询等待时间)。您的方法可能会阻止工作人员,并且以某种方式阻止工作人员与调度程序失去通信。这些任务将被标记为僵尸并可能被杀死。

【讨论】:

  • 是的,我同意我们可能不得不改变方法,但我认为在这种情况下它不能回答我的问题。另外值得注意的是,任务被标记为失败,但为任务定义的 on_kill 方法没有被调用。
  • 检查worker配置是否因为某种原因导致这个任务的进程被杀死。它可以是内存或其他任何东西。
猜你喜欢
  • 2023-03-30
  • 2020-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多