我正在尝试使用 pika 连接到我的远程 rabbitmq,但出现 Connectionclosed() 错误。我已经为 guest 用户在 rabbit.config 中进行了必要的更改,以允许所有连接,并且相同的连接也适用于我的 Java 代码。我什至尝试创建一个具有所有权限的新用户并连接它,但它仍然不起作用。不过,相同的代码在我的本地主机上运行良好。任何人都可以让我知道我在这里做错了什么吗?
def queue_message(message, queue):
credentials = pika.PlainCredentials('xxxx', 'xxxx')
parameters = pika.ConnectionParameters('remote-server',
5672,
'/',
credentials)
connection = pika.BlockingConnection(parameters)
channel = connection.channel()
channel.queue_declare(queue='python_update_queue')
channel.basic_publish(exchange='update.fanout',
body=message)
logger.info("Sent message: {} to queue: {}".format(message, queue))
print 'message sent'
connection.close()
下面是我得到的错误:
app/project/rabbitmq.py" in queue_message
connection = pika.BlockingConnection(parameters)
env/lib/python2.7/site-packages/pika/adapters/blocking_connection.py" in __init__
self._process_io_for_connection_setup()
env/lib/python2.7/site-packages/pika/adapters/blocking_connection.py" in ss_io_for_connection_setup
self._open_error_result.is_ready)
env/lib/python2.7/site-packages/pika/adapters/blocking_connection.py" in _flush_output
raise exceptions.ConnectionClosed
请您参考如下方法:
将连接超时添加到您的连接参数 - 您可能会遇到超时问题,即跨网络的连接速度不够快。
此外,您的代码显式调用了 connection.close() ... 所以这可能就是您的连接正在关闭的原因
