我不能经营芹菜工人+码头工人+ django。我下载图像兔子和链接工人,在运行中我得到错误:无法连接到amqp:// guest:** @ 127.0.0.1:5672 //:[Errno 111]连接被拒绝。 worker_1。 Django:1.11,calary:4.1.0。做错了什么?
搬运工-撰写
rabbit:
image: rabbitmq:latest
ports:
- "5672:5672"
worker:
build: ./project
volumes:
- ./main:/src/app
depends_on:
- rabbit
links:
- web #django project
entrypoint: /src/app/calery.sh
calery
from __future__ import absolute_import, unicode_literals
import os
from celery import Celery
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'app.settings')
app = Celery('app')
app.config_from_object('django.conf:settings', namespace='APP')
app.autodiscover_tasks()
@app.task(bind=True)
def add():
print('Task')
celery.sh
#!/bin/bash
cd app
celery -A app worker -l info
答案 0 :(得分:1)
错误是由CELERY_BROKER_URL
的无效主机引起的。根据您提供的错误,您的代理网址中的主机似乎是127.0.0.1
,因为您使用的是docker,除非您提供主机的公共IP,否则这将无效。您需要更新CELERY_BROKER_URL
中的主机以使用撰写文件中的服务名称。在您的情况下,它是rabbit
。像下面这样的东西应该有效:
CELERY_BROKER_URL = 'amqp://guest:guest@rabbit:5672/%2F'
更改用户名和密码以及其他详细信息。
答案 1 :(得分:0)
如果您无法访问guest:guest,请将您自己的用户添加到系统中。此文档可以帮助您在RabbitMQ服务器中设置自己的用户,密码和虚拟主机。
http://docs.celeryproject.org/en/latest/getting-started/brokers/rabbitmq.html#broker-rabbitmq