如何让Pika在第一次连接RabbitMQ失败后重新尝试连接?

2024-10-01 15:31:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图让我的程序,它使用Pika,在失败时不断尝试连接到RabbitMQ。从我所看到的Pika文档来看,有一个SimpleReconnectionStrategy类可以用来处理这个问题,但它似乎工作得不太好。在

strategy        = pika.SimpleReconnectionStrategy()
parameters      = pika.ConnectionParameters(server)

self.connection = pika.AsyncoreConnection(parameters, True, strategy)
self.channel    = self.connection.channel()

连接应该wait_for_open并设置重新连接策略。在

但是,当我运行此程序时,会抛出以下错误:

^{pr2}$

当Pika试图连接时,这些错误不断地被抛出。如果我在客户机运行时启动RabbitMQ服务器,它将连接。我只是不喜欢看到这些错误。。。它们正常吗?我做错了吗?在


Tags: 文档self程序server错误channelrabbitmqconnection
1条回答
网友
1楼 · 发布于 2024-10-01 15:31:09
import socket

...

while True:
    connectSucceeded = False
    try:
        self.channel    = self.connection.channel()
        connectSucceeded = True
    except socket.error:
        pass
    if connectSucceeded:
        break

通常会用到类似上面的东西。您还可以每次通过循环添加time.sleep(),以减少尝试频率,因为有时服务器确实会停机。在实际的生产代码中,我也会计算重试次数(或跟踪重试所花费的时间),并在一段时间后放弃。有时最好记录错误和崩溃。在

相关问题 更多 >

    热门问题