2013-08-08 13 views
22

Sto provando a configurare Django-Celery. Sto attraversando il tutorialDjango Celery - Impossibile connettersi a amqp: //[email protected]: 5672 //

http://docs.celeryproject.org/en/latest/django/first-steps-with-django.html

quando corro $ python manage.py sedano lavoratore --loglevel = informazioni

ottengo

[Tasks] 


/Users/msmith/Documents/dj/venv/lib/python2.7/site-packages/djcelery/loaders.py:133:  UserWarning: Using settings.DEBUG leads to a memory leak, never use this setting in  production environments! 
warnings.warn('Using settings.DEBUG leads to a memory leak, never ' 

[2013-08-08 11:15:25,368: WARNING/MainProcess] /Users/msmith/Documents/dj/venv/lib/python2.7/site-packages/djcelery/loaders.py:133: UserWarning: Using settings.DEBUG leads to a memory leak, never use this setting in production environments! 
warnings.warn('Using settings.DEBUG leads to a memory leak, never ' 

[2013-08-08 11:15:25,369: WARNING/MainProcess] [email protected] ready. 
[2013-08-08 11:15:25,382: ERROR/MainProcess] consumer: Cannot connect to  amqp://[email protected]:5672/celeryvhost: [Errno 61] Connection refused. 
Trying again in 2.00 seconds... 

qualcuno ha riscontrato questo problema prima?

settings.py

# Django settings for summertime project. 
import djcelery 
djcelery.setup_loader() 

BROKER_URL = 'amqp://guest:[email protected]:5672/' 

... 

INSTALLED_APPS = { 
    ... 
    'djcelery', 
    'celerytest' 
} 

wsgi.py

import djcelery 
djcelery.setup_loader() 
+5

potresti confermare se il tuo servizio rabbitmq è in esecuzione? guarda questa guida ha le istruzioni passo passo: http://hairycode.org/2013/07/23/first-steps-with-celery-how-to-not-trip – andrean

+0

sedano bisogno di broker di messaggi. Penso che tu abbia perso l'impostazione del broker dei messaggi. è necessario installare rabbitmq. dopo l'installazione, è necessario rendere permessi vhost, user e set. – Curry

risposta

16

Il problema è che si sta tentando di connettersi a un'istanza locale di RabbitMQ. Guardate questa riga nel settings.py

BROKER_URL = 'AMQP: // ospite: ospite @ localhost: 5672 /'

Se si sta lavorando attualmente in sviluppo, si potrebbe evitare la creazione di coniglio e tutto il casino intorno, e basta usare una versione di sviluppo di una coda di messaggi con il database Django.

A tale scopo, sostituendo la configurazione precedente con

BROKER_URL = 'django: //' e aggiungere questa app:

INSTALLED_APPS + = ('kombu.transport.django',)

Infine, avviare il lavoratore con

./manage .py lavoratore sedano --loglevel = informazioni

Fonte: http://docs.celeryproject.org/en/latest/getting-started/brokers/django.html

+2

fantastico! lavorare come nelle fiabe! – doniyor

+2

Wow, il tutorial ignora completamente questo bit. – nym

1

Se si 'attuabile in un ambiente di produzione,

È necessario installare e configurare un server prima RabbitMQ. È possibile consultare il sito Web di rabbitmq per i passaggi di installazione.

Nelle impostazioni si deve scrivere queste righe:

CELERY_RESULT_BACKEND='djcelery.backends.database:DatabaseBackend', 
BROKER_URL = 'amqp://guest:[email protected]:5672//' 

Dopo tutto configurazione del server di rabitmq si deve eseguire questi due comandi,

export C_FORCE_ROOT='true' 
celery -A transcoder(name of app) worker --loglevel=info 
-1

Ho avuto lo stesso problema e il motivo era che ho dimenticato di aggiungere elementi di impostazione di sedano (CELERY_RESULT_BACKEND, BROKER_URL, ....)
Dopo aver aggiunto questi, problema risolto!

2

Ho ricevuto questo errore perché rabbitmq non è stato avviato.Se hai installato rabbitmq tramite brew, puoi avviarlo utilizzando brew services start rabbitmq

Problemi correlati