在Docker容器中使用Pika在Python中运行RabbitMQ的问题

我正尝试从交易所消费。 我正在遵循本指南: 在rabbitmq.com上 。 创build交换,但它不会消耗任何我通过网页pipe理页面手动发布。

这是我的代码:

# external libs import pika def receive(mq_addr, exchange): print('receive message begin, consume from:', exchange, 'at', mq_addr) connection = pika.BlockingConnection(pika.ConnectionParameters(host=mq_addr)) channel = connection.channel() channel.exchange_declare(exchange=exchange, type='fanout') result = channel.queue_declare(exclusive=True) queue_name = result.method.queue channel.queue_bind(exchange=exchange, queue=queue_name) print(' [*] Waiting for logs. To exit press CTRL+C') def callback(ch, method, properties, body): print(" [x] %r" % body) channel.basic_consume(callback, queue=queue_name, no_ack=True) channel.start_consuming() receive('mq', 'my_exchange') 

如果我在一个线程中调用receive(..., ...) ,它将不会连接。 如果我这样称呼它,没有任何反应。 它与channel.start_consume() ,我想。