【发布时间】:2013-11-24 08:54:14
【问题描述】:
将 Django 升级到 1.6 后,我的 celery worker 正在消耗 RAM。 似乎分配给工作人员的内存没有释放,并且在每次任务后都会增长。
相关设置:
# DB:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'somedb',
'USER': '',
'PASSWORD': '',
'HOST': 'localhost',
'PORT': '',
}
}
# CELERY SETTINGS:
CELERY_RESULT_BACKEND = 'redis://'
BROKER_URL = 'redis://'
相关包版本:
Django==1.6
celery==3.0.24
django-celery==3.0.23
billiard==2.7.3.34
kombu==2.5.16
redis==2.7.6
在手动运行工作程序的本地环境(使用DEBUG=False)和使用 Upstart 运行 celery 的暂存环境中发生。
更新:
- 尝试设置
autocommit=False,但没有成功。 - 可能与 Django 版本升级无关,而是与我必须升级以切换到 1.6 的某些设置或 3rd 方包有关。
【问题讨论】:
-
您是否设置了时间限制? docs.celeryproject.org/en/latest/userguide/…
-
@nikzam,不,也许我应该这样做。任务很短,最长的需要 30 秒。
-
你可以尝试升级到 django-celery 3.1,djcelery 3.0.24 的测试套件没有通过 Django 1.6
-
@asksol,这似乎不是 Celery 的错误(将很快发布答案/更新),并且 3.1 版本给我的 Django 设置带来了麻烦,所以升级不是很顺利。但是谢谢,我一定会在某个时候升级到 3.1 以避免将来出现问题。
标签: python django celery django-celery django-1.6