Celery: maximale Anzahl von Clients erreicht

Erstellt am 17. Sept. 2015  ·  3Kommentare  ·  Quelle: celery/celery

Ich verwende Django mit Sellerie und Redis.
Ich erhalte immer wieder diesen Fehler redis.e xceptions:ResponseError max number of clients erreicht
Ich verwende Heroku und mein Redis-Backend hat eine maximale Verbindung von 400. Ich betreibe 20 Dynos für die Haupt-App und für Sellerie betreibe ich 5 Dynos. Wie stelle ich die maximale Anzahl an Verbindungen ein? Ich habe versucht, es so in meine celery.py zu stecken:

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,)

habe auch versucht, CELERY_REDIS_MAX_CONNECTIONS = 20 in meine settings.py einzufügen

Hilfreichster Kommentar

hallo @frag
Wurde das Problem nach der Veröffentlichung von Sellerie 4.0 behoben?
Ich habe das gleiche Problem mit Sellerie-3.1.23 und Redis-2.6.
redis default maxclients ist 10000 , und nach 3 Monaten Celery-Lauf steigen die redis-Clients auf 10000.
Ich habe festgestellt, dass die Verbindung des Redis-Servers voll ist, aber Sellerie hat nur wenige Verbindungen (von netstat ), also starte ich den Redis-Server neu, dann funktioniert es.
Aber wie kann ich das Problem durch Einstellungen oder auf andere Weise lösen?

Alle 3 Kommentare

Wir schließen dies, da wir nicht über die Ressourcen verfügen, um diese Aufgabe abzuschließen.

Kann in Master behoben werden, mal sehen, ob es nach 4.0-Release wiederkommt.

Einige Leute sagen, dass BROKER_POOL_LIMIT=0 ein ähnliches Problem löst: http://stackoverflow.com/questions/12013220/celery-creating-a-new-connection-for-each-task

Kann das mit @ask zusammenhängen?

hallo @frag
Wurde das Problem nach der Veröffentlichung von Sellerie 4.0 behoben?
Ich habe das gleiche Problem mit Sellerie-3.1.23 und Redis-2.6.
redis default maxclients ist 10000 , und nach 3 Monaten Celery-Lauf steigen die redis-Clients auf 10000.
Ich habe festgestellt, dass die Verbindung des Redis-Servers voll ist, aber Sellerie hat nur wenige Verbindungen (von netstat ), also starte ich den Redis-Server neu, dann funktioniert es.
Aber wie kann ich das Problem durch Einstellungen oder auf andere Weise lösen?

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen