6.3. 配置重新连接
重新连接允许客户端从丢失的连接中恢复。它用于确保分布式系统中的组件在临时网络或组件失败后重新建立通信。
默认情况下,AMQ Python 启用重新连接。如果连接丢失或连接尝试失败,客户端会在短暂延迟后重试。每次新尝试时,延迟呈指数级增长,默认为 10 秒。
要禁用重新连接,将 reconnect
连接选项设置为 False
。
示例:禁用重新连接
container.connect("amqp://example.com", reconnect=False)
要控制连接尝试之间的延迟,请定义实现 reset()
和 next()
方法的类,并将 reconnect
连接选项设置为该类的实例。
示例:配置重新连接
class ExampleReconnect(object): def __init__(self): self.delay = 0 def reset(self): self.delay = 0 def next(self): if self.delay == 0: self.delay = 0.1 else: self.delay = min(10, 2 * self.delay) return self.delay container.connect("amqp://example.com", reconnect=ExampleReconnect())
next
方法以秒为单位返回下一个延迟。在重新连接进程开始前调用 reset
方法一次。