Celery: достигнуто максимальное количество клиентов

Созданный на 17 сент. 2015  ·  3Комментарии  ·  Источник: celery/celery

Я использую django с сельдереем и Redis.
Я продолжаю получать эту ошибку redis.e исключения: достигнуто максимальное количество клиентов ResponseError
Я использую heroku, и мой бэкэнд Redis имеет максимальное соединение 400. Я запускаю 20 dyno для основного приложения, а для сельдерея я запускаю 5 dyno. Как установить максимальное количество подключений? Я попытался поместить его в свой 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 в мои настройки.py

Самый полезный комментарий

привет @спроси
Проблема была решена после выпуска celery 4.0?
У меня такая же проблема с celery-3.1.23 и redis-2.6.
maxclients по умолчанию для redis равен 10000 , а через 3 месяца работы celery количество клиентов redis увеличивается до 10000.
Я обнаружил, что соединение с сервером Redis заполнено, но у сельдерея есть только небольшие соединения (по netstat), поэтому я перезапускаю сервер Redis, после чего он работает.
а как решить проблему настройками или другим способом?

Все 3 Комментарий

Закрываем это, так как у нас нет ресурсов для выполнения этой задачи.

Может быть исправлено в мастере, посмотрим, вернется ли после выпуска 4.0.

Некоторые люди говорят, что BROKER_POOL_LIMIT=0 решает аналогичную проблему: http://stackoverflow.com/questions/12013220/celery-creating-a-new-connection-for-each-task

Может ли это быть связано @ask ?

привет @спроси
Проблема была решена после выпуска celery 4.0?
У меня такая же проблема с celery-3.1.23 и redis-2.6.
maxclients по умолчанию для redis равен 10000 , а через 3 месяца работы celery количество клиентов redis увеличивается до 10000.
Я обнаружил, что соединение с сервером Redis заполнено, но у сельдерея есть только небольшие соединения (по netstat), поэтому я перезапускаю сервер Redis, после чего он работает.
а как решить проблему настройками или другим способом?

Была ли эта страница полезной?
0 / 5 - 0 рейтинги