标签导航:

django celery并发数设置无效?celeryd_concurrency和celery_worker_concurrency的区别是什么?

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进程使配置生效。