lr_*_*tim 4 django rabbitmq celery docker docker-compose
我正在尝试设置我的 Django 应用程序以具有推送通知功能。对于安排通知,我尝试使用 Celery,对于消息代理,我选择 RabbitMQ。我的应用程序在 Docker 容器中运行,我正在努力让 RabbitMQ 正常工作。Cannot connect to amqp://guest:**@127.0.0.1:5672//: [Errno 111] Connection refused.我在运行时收到错误消息docker-compose up。以下是我的celery以及rabbitmq3我的服务docker-compose.yml:
celery:
restart: always
build:
context: .
command: celery -A test_celery worker -l info
volumes:
- .:/test_celery
env_file:
- ./.env
depends_on:
- app
- rabbitmq3
rabbitmq3:
container_name: "rabbitmq"
image: rabbitmq:3-management-alpine
ports:
- 5672:5672
- 15672:15672
Run Code Online (Sandbox Code Playgroud)
在我的test_celery-app 中,我有一个名为的文件celery.py,其中包含以下内容:
import os
from celery import Celery
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'test_celery.settings')
app = Celery('test_celery')
app.config_from_object('django.conf:settings', namespace='CELERY')
app.autodiscover_tasks()
Run Code Online (Sandbox Code Playgroud)
最后,在我的settings.pyI 有这个:CELERY_BROKER_URL = 'amqp://localhost'。
我应该定义CELERY_BROKER_URL不同的东西吗?我的 docker-compose 文件有问题吗?如果有任何帮助,我将不胜感激,我的设置有什么问题吗?
小智 8
这应该可以解决问题
CELERY_BROKER_URL=amqp://guest:guest@rabbitmq3:5672/
Run Code Online (Sandbox Code Playgroud)
如果你在rabbit上有一个虚拟主机
CELERY_BROKER_URL=amqp://guest:guest@rabbitmq3:5672/vhost
Run Code Online (Sandbox Code Playgroud)
如果它不起作用,请检查兔子容器的控制台以获取线索
| 归档时间: |
|
| 查看次数: |
6444 次 |
| 最近记录: |