Ich benutze Sellerie innerhalb Django mit RabbitMQ als Broker auf Heroku. Mein RabbitMQ-Dienst ist CloudAMQP Tough auf Heroku. Wenn es relevant ist, haben wir einige häufige Speicherlecks, die ich versuchen wollte zu schließen, aber im Allgemeinen wird der Dienst nicht beeinträchtigt, wenn es passiert.Sellerie + RabbitMQ + "Ein Sockel Fehler ourred"
Wenn die Website stark frequentierten wird (wie heute), fange ich gelegentliche Fehler wie folgt erhalten:
Couldn't log in: a socket error occurred
Die Aufgabe wird vollständig verworfen und nicht überall registriert. Dies ist offensichtlich ein geschäftskritisches Problem. Meine Sellerie Einstellungen sind unten:
BROKER_URL = os.getenv('CLOUDAMQP_URL', DEFAULT_AMQP)
CELERY_TASK_SERIALIZER = 'pickle'
CELERY_RESULT_SERIALIZER = 'json'
CELERY_ACCEPT_CONTENT = ['pickle', 'json']
CELERY_ENABLE_UTC = True
# CELERY_RESULT_BACKEND = 'djcelery.backends.database:DatabaseBackend']
CELERY_STORE_ERRORS_EVEN_IF_IGNORED = True
CELERY_SEND_TASK_ERROR_EMAILS = True
CELERY_RESULT_BACKEND = False
CELERY_IMPORTS = ('business.admin', 'mainsite.views', 'utils.crons', 'mainsite.forms',)
BROKER_POOL_LIMIT = 5
# trying to clean up this memory leak
CELERYD_MAX_TASKS_PER_CHILD = 5
CELERYD_TASK_TIME_LIMIT = 60*60
ich Sellerie ein bisschen neu bin, also bin ich glücklich zu liefern, wie Follow-up unabhängig von logs/etc wird hilfreich sein, aber ich bin nicht einmal sicher, was zu schaffen, An diesem Punkt. Ist in meinen Einstellungen oder in meiner Umgebung etwas offensichtlich, das bei starkem Trafficking dieses Problem verursacht?
Sie vielleicht aus Filedeskriptoren lief? –