2024-05-29 00:14:30 发布
网友
我有一些脚本,使用pika.SelectConnection与RabbitMq服务器通信。在
有没有办法让这些脚本自动重新连接到rmq服务器,以防服务器宕机,而脚本工作?在
我有很多脚本使用以下方法重新连接:
while True: try: mqExch.channel.connection.drain_events(timeout=25) except socket.timeout: hb.beat() # let our supervisor know we are not hung
它不是用鼠兔,而是用公布,不过原则是可以应用的。drain_events方法是消息消费的核心,也就是说,它永远循环接收消息并运行回调来处理消息。正如你在这里看到的,我每25秒就有一个低级套接字库超时。对于一些库,我不得不修补几行代码,以使这种行为正常工作,而不会在模块内部崩溃。在
drain_events
在任何情况下心跳由一个管理程序进程监视,如果在太短的时间内出现过多的失败,此进程将终止脚本。在杀死脚本之后,主管重新启动它。这在处理间歇性网络错误或mqbroker重新启动时非常有效。虽然我可以让我的脚本重新连接,但终止并重新启动更简单。在
我有很多脚本使用以下方法重新连接:
它不是用鼠兔,而是用公布,不过原则是可以应用的。
drain_events
方法是消息消费的核心,也就是说,它永远循环接收消息并运行回调来处理消息。正如你在这里看到的,我每25秒就有一个低级套接字库超时。对于一些库,我不得不修补几行代码,以使这种行为正常工作,而不会在模块内部崩溃。在在任何情况下心跳由一个管理程序进程监视,如果在太短的时间内出现过多的失败,此进程将终止脚本。在杀死脚本之后,主管重新启动它。这在处理间歇性网络错误或mqbroker重新启动时非常有效。虽然我可以让我的脚本重新连接,但终止并重新启动更简单。在
相关问题 更多 >
编程相关推荐