J'essaie de configurer Django-Celery. Je passe par le tutoriel
http://docs.celryproject.org/en/latest/Django/first-steps-with-Django.html
lorsque j'exécute $ python manage.py celery worker --loglevel = info
Je reçois
[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://[email protected]:5672/celeryvhost: [Errno 61] Connection refused.
Trying again in 2.00 seconds...
quelqu'un at-il déjà rencontré ce problème?
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()
Le problème est que vous essayez de vous connecter à une instance locale de RabbitMQ. Regardez cette ligne dans votre settings.py
BROKER_URL = 'amqp: // guest: guest @ localhost: 5672 /'
Si vous travaillez actuellement sur le développement, vous pouvez éviter de configurer Rabbit et tout le désordre autour de lui, et simplement utiliser une version de développement d'une file d'attente de messages avec la base de données Django.
Pour ce faire, remplacez votre configuration précédente par
BROKER_URL = 'Django: //' et ajoutez cette application:
INSTALLED_APPS + = ('kombu.transport.Django',)
Enfin, lancez le travailleur avec
./manage.py céleri ouvrier --loglevel = info
Source: http://docs.celryproject.org/en/latest/getting-started/brokers/Django.html
J'ai eu cette erreur car rabbitmq
n'a pas été démarré. Si vous avez installé rabbitmq
via brew, vous pouvez le démarrer à l'aide de brew services start rabbitmq
Si vous travaillez sur un environnement de production,
Vous devez d'abord installer et configurer un serveur rabbitmq. Vous pouvez consulter le site Web de rabbitmq pour les étapes d'installation.
Dans les paramètres, vous devez écrire ces lignes:
CELERY_RESULT_BACKEND='djcelery.backends.database:DatabaseBackend',
BROKER_URL = 'amqp://guest:guest@localhost:5672//'
Après toute configuration du serveur rabitmq, vous devez exécuter ces deux commandes,
export C_FORCE_ROOT='true'
celery -A transcoder(name of app) worker --loglevel=info