为什么有些Celery工人可以在没有任何失败证据的情况下停止?

问题描述 投票:0回答:1

我的应用程序的一部分有一个事件驱动的架构,它是在 Celery 工作线程中实现的。这是机器学习模型的训练,因此过程通常会有所延迟(大约 48 小时)。因此,在某个时刻,工作人员之间会进行通信,调用彼此的任务并执行某些操作。 问题是我的一个工作人员在这个过程中突然停止了......没有错误日志,他只是检查 kubernetes pod 日志,最后一件事很简单:

sync with celery@thori-at-pronosticos-worker-forecast-model-training-deployhvhhl

仅此而已...没有错误日志。 (该工人还有待处理的任务要做) 非常抱歉,我不必提供更多背景信息,但确实没有。知道为什么 Celery 会发生这种情况吗?还有人发生过吗?

python kubernetes microservices celery
1个回答
0
投票

你说“进程突然停止了”... - 这永远不会发生,总有一个原因(如果确实发生过的话)。您是否检查该进程是否确实没有运行,如果是的话怎么办?根据您提供给我们的信息量,无法确定实际发生了什么。

如果进程确实已死亡,但在 Celery 日志中只有“sync with...”行,这可能意味着它被 OOM 杀手杀死(系统杀死了它,因为它占用了所有可用 RAM)。检查这是否真的发生的一种方法是查看

dmesg
输出(假设底层操作系统是 Linux)

© www.soinside.com 2019 - 2024. All rights reserved.