客户端一直在等待RabbitMQ响应

时间:2016-02-08 14:55:47

标签: python rabbitmq celery amqp

我正在使用rabbitMQ在位于世界其他地方的远程主机中启动进程。例如,RabbitMQ在俄勒冈主机上运行,​​它接收客户端消息以启动爱尔兰和加利福尼亚的流程。

大多数情况下,进程都会启动,当它们完成时,rabbitMQ会将输出返回给客户端。但是,有时候,作业成功完成,但是RabbitMQ没有将输出返回给客户端,并且客户端一直在等待响应。这些过程可能需要10分钟才能执行,因此客户端会等待响应10分钟。

我使用celery连接到rabbitMQ,客户端调用使用task.get()进行阻止。换句话说,客户端会挂起,直到收到其呼叫的响应。我想了解为什么客户端在工作完成后没有得到响应。我该如何调试此问题?

这是我的celeryconfig.py

import os
import sys

# add hadoop python to the env, just for the running
sys.path.append(os.path.dirname(os.path.basename(__file__)))

# broker configuration
# medusa-rabbitmq is the name of the hosts where rabbitmq is running
BROKER_URL = "amqp://celeryuser:celery@medusa-rabbitmq/celeryvhost"

CELERY_RESULT_BACKEND = "amqp"
TEST_RUNNER = 'celery.contrib.test_runner.run_tests'

# for debug
# CELERY_ALWAYS_EAGER = True

# module loaded
CELERY_IMPORTS = ("medusa.mergedirs", "medusa.medusasystem",
                  "medusa.utility", "medusa.pingdaemon", "medusa.hdfs", "medusa.vote.voting")

0 个答案:

没有答案