上下文:我在celery
+ rabbitmq
堆栈上有一个主干系统。
系统已被docker化(此处未提供worker
服务)
version: '2'
services:
rabbit:
hostname: rabbit
image: rabbitmq:latest
environment:
- RABBITMQ_DEFAULT_USER=admin
- RABBITMQ_DEFAULT_PASS=mypass
ports:
- "5672:5672"
master:
build:
context: .
dockerfile: dockerfile
volumes:
- .:/app
links:
- rabbit
depends_on:
- rabbit
问题:但是我不能使用docker-compose up
,我需要使用docker-compose master
和docker-compose worker
(用于工作机和主控机的两个独立命令)。因此,当我执行docker-compose master
时-容器启动,但是挂断了!:
研究:我发现它挂在任务提交上了:
result = longtime_add.delay(count)
其中longtime_add
是一项任务。
完整代码:https://github.com/waryak/MastersDiploma/tree/vlad
另外,请编辑标题-我觉得它需要更清晰的标题
答案 0 :(得分:2)
以下几点要点:(1)我没有看到github中的生产者代理URL的预期输出消息; (2)我找不到将/src/network
添加到您的pythonpath的位置; (3)在celery.py
文件中加载生产者经纪人url的代码看起来错误,因为它正在寻找CONFIG
变量,而不是PRODUCE_BROKER_URL
文件中的变量。 。生产者超时的原因是如果它无法连接到代理,那么通过打印出生产者和工作者代理URL,您将走上正确的轨道。您可能更容易先尝试在生产者中对variables.env
进行硬编码:
broker_url
答案 1 :(得分:0)
我刚刚尝试了docker-compose up rabbit master
,但结果成功了。这很奇怪,因为我看不到经纪人日志或任何其他日志的外部差异。另外,码头工人文件保证,所有依赖的服务都会启动...