Django Celery并发设置失效的解决方法
在Django项目中使用Celery时,常常遇到配置并发worker数量无效的问题。本文将分析问题原因并提供解决方案。
问题描述
许多开发者尝试使用CELERYD_CONCURRENCY配置项来设置Celery worker的并发数,但实际运行时并发数却与预期不符,通常维持在默认值4。
解决方案
问题在于使用了错误的配置项。正确的配置项是CELERY_WORKER_CONCURRENCY,而不是CELERYD_CONCURRENCY。
以下示例展示了正确的配置方法:
CELERY_WORKER_CONCURRENCY = 2 # 设置并发worker数量为2
官方文档说明
Celery官方文档对CELERY_WORKER_CONCURRENCY的说明如下:
# 使用字符串类型,避免worker序列化配置对象到子进程。 # - namespace='CELERY' 表示所有Celery相关的配置键都应该以'CELERY_'为前缀。
这说明CELERY_WORKER_CONCURRENCY应该使用字符串类型,并且所有Celery相关的配置都必须以CELERY_为前缀。
通过修改配置项并使用正确的参数类型,即可解决Django Celery并发数设置无效的问题。 请确保重启Celery worker进程使配置生效。