Skip to main content
 首页 » 编程设计

python之worker 在 Django Celery 中一次收到 1000 项任务后死亡

2024年11月01日37sharpest

我正在运行一个生成近 10000 个对象的脚本。在保存每个对象时,一个 Celery 任务将被调用,因此在短短 1-3 分钟内,Celery 收到了 1000 多个任务并且它的 worker 正在死亡(状态仍然显示为 RUNNING)。

所以我需要一次又一次地重新开始。因为我多次重启,许多 Python 进程(运行 Celery)消耗了大量内存。

请您参考如下方法:

如果我的理解正确,那么您遇到的问题与我几周前遇到的问题相同。每隔一段时间,我们的 celery worker 就好像卡住了(我们发现它实际上正在接收任务但没有执行任何任务)并且在重新启动 worker 后它会匆忙完成任务直到它决定再次卡住。

通过执行以下 pip 安装解决了问题。

pip install https://github.com/celery/billiard/zipball/2.7 
pip install https://github.com/celery/celery/zipball/asynwrite 

我在 celery 项目的 GitHub 问题跟踪器页面上找到了解决方案,但找不到确切的工单。 Heres a link to a similar issue though (that uses this as a solution).