python - Django Celery 中的 worker 在一次接收数千个任务后死亡

标签 python django django-celery

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

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

最佳答案

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

通过执行以下 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).

关于python - Django Celery 中的 worker 在一次接收数千个任务后死亡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16687433/

相关文章:

python - 验证数据的性能比 keras 中的训练数据差

python - 从不同的文件调用一个函数,其中文件名和函数名是从列表中读取的

python - 从包含标题和分隔符的文本文件中提取列

python - django-admin makemessages : how does it work with txt, xml 和其他文件?

django-celery 排队和检索结果

django - Heroku Django celery : NameError: name 'DATABASES' is not defined

具有多个速率限制的 celery

python - 两个Django项目共享数据库报 "table "auth_permission"already exists"错误如何解决

django - 在 Heroku 上部署 Django\Tornado

django - 使用 self.id 填充 Django 中的其他字段