问题
I'm trying to set up Django-Celery. I'm going through the tutorial
http://docs.celeryproject.org/en/latest/django/first-steps-with-django.html
when I run $ python manage.py celery worker --loglevel=info
I get
[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] celery@sfo-mpmgr ready.
[2013-08-08 11:15:25,382: ERROR/MainProcess] consumer: Cannot connect to amqp://guest@127.0.0.1:5672/celeryvhost: [Errno 61] Connection refused.
Trying again in 2.00 seconds...
has anyone encountered this issue before?
settings.py
# Django settings for summertime project.
import djcelery
djcelery.setup_loader()
BROKER_URL = 'amqp://guest:guest@localhost:5672/'
...
INSTALLED_APPS = {
...
'djcelery',
'celerytest'
}
wsgi.py
import djcelery
djcelery.setup_loader()
回答1:
The problem is that you are trying to connect to a local instance of RabbitMQ. Look at this line in your settings.py
BROKER_URL = 'amqp://guest:guest@localhost:5672/'
If you are working currently on development, you could avoid setting up Rabbit and all the mess around it, and just use a development version of a message queue with the Django database.
Do this by replacing your previous configuration with:
BROKER_URL = 'django://'
...and add this app:
INSTALLED_APPS += ('kombu.transport.django', )
Finally, launch the worker with:
./manage.py celery worker --loglevel=info
Source: http://docs.celeryproject.org/en/latest/getting-started/brokers/django.html
回答2:
I got this error because rabbitmq
was not started. If you installed rabbitmq
via brew you can start it using brew services start rabbitmq
回答3:
If you are workling on a production environment,
You have to first install and setup a rabbitmq server. You can refer rabbitmq website for installation steps.
In settings you have to write this lines:
CELERY_RESULT_BACKEND='djcelery.backends.database:DatabaseBackend',
BROKER_URL = 'amqp://guest:guest@localhost:5672//'
After all setup of rabitmq server you have to run this two command,
export C_FORCE_ROOT='true'
celery -A transcoder(name of app) worker --loglevel=info
来源:https://stackoverflow.com/questions/18133249/django-celery-cannot-connect-to-amqp-guest127-0-0-80005672