python - 最大客户数达到 celery

标签 python django heroku redis celery

我正在将 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/

相关文章:

javascript - 如何在 node.js 应用程序 heroku 中访问 .env 文件中的变量

python - 一行与多行的 boolean 比较

python - 如何通过输入框 tkinter Python 输入/使用 float ?

python - 如何在 python 脚本中启动和运行 virtualenv?

node.js - Node 中的 Server.listen() 给出 "Error [ERR_SERVER_ALREADY_LISTEN]: Listen method has been called more than once without closing."

javascript - 在 heroku 上的 Assets 编译 rails 期间使用 Node

python - 如何在 python 中打开终端并运行命令?

django - 如何将 Django 注册中的帐户激活从几天更改为几小时?

django - 模型形式:覆盖清洁方法

python - "File not found"将 manage.py 与 pytest-django 一起使用