我正在将 django 与 celery 和 redis 一起使用。 我不断收到此错误 redis.exceptions:ResponseError 已达到最大客户端数 我正在使用 heroku,我的 redis 后端的最大连接数为 400。我为主应用程序运行 20 个测功机,而对于 celery ,我运行 5 个测功机。如何设置最大连接数?我试过像这样把它放在我的 celery.py 中:
from __future__ import absolute_import
import os
from celery import Celery
# set the default Django settings module for the 'celery' program.
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'imdowntags.settings')
from django.conf import settings
app = Celery('imdowntags',
broker=os.environ['REDIS_URL'],
backend=os.environ['REDIS_URL'],
include=['imdowntags.tasks'])
# Using a string here means the worker will not have to
# pickle the object when using Windows.
app.config_from_object('django.conf:settings')
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)
app.conf.update( CELERY_REDIS_MAX_CONNECTIONS = 20,)
也试过放
CELERY_REDIS_MAX_CONNECTIONS =20
在我的 settings.py 中
最佳答案
您可能正在达到 Redis 服务器本身的计划限制。如果您使用的是 Heroku Redis 插件,请参阅计划说明:https://elements.heroku.com/addons/heroku-redis
您应该期望每个 dyno 至少有 1 个连接 - 用于 web dynos 将东西排队,而 celery worker 将东西弹出。 20 个 web + 5 个 celery 很容易让你超过免费等级。
关于python - 最大客户数达到 celery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32620416/