1

在遇到我的 rabbitmq 服务器达到其文件描述符限制并停止接受任何新连接的问题后,我注意到我的客户端从队列中消费的行为非常不受欢迎。

当试图打开他们的连接时,他们无限期地挂起而不会抛出任何错误..

我目前正在使用 Kombu 库,并且在重新创建问题后,再怎么调整连接参数都不会阻止连接实例化无限期阻塞。超时不会触发,启用心跳也无济于事。看着strace我看到它打开了与rabbitmq服务器的连接,然后永远等待数据。

我也刚刚尝试使用 Pika 库并遇到了同样的问题。不同之处在于strace显示正在轮询的连接。但是,连接实例化仍然无限期地阻塞。

有什么我想念的吗?当出现问题时,打开与您的 rabbitmq 服务器的连接而不会永远挂起的正确方法是什么?

编辑:

这是一些代码,它几乎是你好世界..

鼠兔:

import pika
connection = pika.BlockingConnection(pika.ConnectionParameters(
               'localhost', socket_timeout=2, heartbeat_interval=1))
channel = connection.channel()  # Hangs indefinitely

昆布:

import kombu
connection = kombu.Connection('amqp://guest:guest@localhost:5672//')
connection.connect()  # Hangs indefinitely
4

0 回答 0