セロリワーカー+ドッカー+ジャンゴを実行できません。イメージrabbitとリンクされたワーカーをダウンロードしましたが、実行時にエラーが発生します:amqp:// guest:** @ 127.0.0.1:5672 //に接続できません:[Errno111]接続が拒否されました。 worker_1。 Django:1.11、カロリー:4.1.0。何が悪いの?
docker-compose
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
カロリー
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
このエラーは、CELERY_BROKER_URL
の無効なホストが原因で発生します。指定したエラーに基づくと、ブローカーURLのホストは127.0.0.1
のようです。これは、Dockerを使用しているため、ホストのパブリックIPを指定しない限り機能しません。作成ファイルでサービス名を使用するには、CELERY_BROKER_URL
のホストを更新する必要があります。あなたの場合はrabbit
です。以下のようなものが機能するはずです:
CELERY_BROKER_URL = 'amqp://guest:guest@rabbit:5672/%2F'
ユーザーとパスワードおよびその他の詳細を変更します。
Guest:guestでアクセスできない場合は、独自のユーザーをシステムに追加してください。このドキュメントは、RabbitMQサーバー内で独自のユーザー、パスワード、仮想ホストを設定するのに役立ちます。
http://docs.celeryproject.org/en/latest/getting-started/brokers/rabbitmq.html#broker-rabbitmq