上下文:I在celery
+ rabbitmq
堆栈上有一个主工作系统。
系统已被停靠(此处不提供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
时-一切都好!
Problems:,但我不能使用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
另外,请编辑标题-我觉得它需要更清晰的标题。
发布于 2019-01-08 20:31:10
我刚试过docker-compose up rabbit master
,结果成功了。这很奇怪,因为我看不到代理日志或任何其他日志中的外部差异。此外,码头文件保证,所有依赖的服务都将启动.
发布于 2019-01-08 18:19:44
有几点是简单的:(1)我没有看到您在github中为producer broker url提供的预期输出消息;(2)我找不到/src/network
添加到您的pythonpath中的位置;(3)在celery.py
中加载producer broker url的代码看上去是错误的,因为它正在寻找CONFIG
变量,而不是variables.env
文件中的PRODUCE_BROKER_URL
。生产者超时的原因是如果它无法连接到代理,那么您就可以通过打印produce和worker broker URL来正确地运行。对您来说,首先在生产者中对broker_url
进行硬编码可能更容易一些:
from celery.app import Celery
app = Celery(broker_url='amqp://admin:mypass/rabbit:56772')
app.send_task(name='messages.tasks.longtime_add', kwargs={})
https://stackoverflow.com/questions/54096653
复制相似问题