我在rabbitmq-server上执行celery时遇到问题.我搜索并找到了一个链接,但它对我没有帮助.我的环境是ubuntu 14.04,python 2.7.6,芹菜3.1.15,Django 1.7.引用链接,我在本地安装了rabbitmq-server.我在rabbitmq-server中添加了用户,vhost并设置了权限.
$ sudo rabbitmqctl add_user tonyg password $ sudo rabbitmqctl add_vhost vir_host $ sudo rabbitmqctl set_permissions -p vir_host tonyg ".*" ".*" ".*"
我的芹菜在django的设置如下.
BROKER_URL = 'amqp://tonyg:password@localhost:5672//vir_host' CELERY_RESULT_BACKEND = 'amqp://tonyg:password@localhost:5672//vir_host' CELERY_ACCEPT_CONTENT = [u'application/x-python-serialize', u'image/jpeg', u'image/bmp', u'image/png', u'image/tiff'] CELERY_TIMEZONE = 'Asia/Tokyo' CELERY_ENABLE_UTC = True CELERY_IGNORE_RESULT = False
除了默认配置之外,我没有设置关于rabbitmq-server的任何内容.
我像这样执行芹菜.
$ celery -A MyProj worker -l info -------------- celery@ip-172-31-3-10 v3.1.15 (Cipater) ---- **** ----- --- * *** * -- Linux-3.13.0-36-generic-x86_64-with-Ubuntu-14.04-trusty -- * - **** --- - ** ---------- [config] - ** ---------- .> app: MyProj:0x7f7453328b10 - ** ---------- .> transport: amqp://tonyg:**@localhost:5672//vir_host - ** ---------- .> results: amqp://tonyg:password@localhost:5672//vir_host - *** --- * --- .> concurrency: 1 (prefork) -- ******* ---- --- ***** ----- [queues] -------------- .> celery exchange=celery(direct) key=celery [tasks] . MyProj.tasks. ...... . MyProj.tasks. ...... [2014-10-29 15:07:50,241: ERROR/MainProcess] consumer: Cannot connect to amqp://tonyg:**@127.0.0.1:5672//vir_host: [Errno 104] Connection reset by peer. Trying again in 2.00 seconds... [2014-10-29 15:07:55,251: ERROR/MainProcess] consumer: Cannot connect to amqp://tonyg:**@127.0.0.1:5672//vir_host: [Errno 104] Connection reset by peer. Trying again in 4.00 seconds...
当我使用默认访客标识符设置芹菜时,
BROKER_URL = 'amqp://guest:guest@localhost:5672//' CELERY_RESULT_BACKEND = 'amqp://guest:guest@localhost:5672//'
它运作良好.我不知道为什么.谁能帮助我?谢谢.