如果rabbitmq客户端连接到服务器并且不长时间发送消息,是否可以通过编程来监视和关闭其连接?如何获取这些相关信息?
答案 0 :(得分:0)
有两件事可以确保不会发生这种情况:
您的数据包无法在适当的时候通过TCP。这将由内核处理,您将收到连接关闭错误。如果您正确配置客户端,它会告诉您这种情况,然后您可以处理该问题。最简单的方法是监控你拥有的频道的Pid
,然后如果它死了就会做出反应,但也许还有其他方法(我记不起细节了)。
RabbitMQ keepalive数据包未及时到达。这将强制终止连接。与上述相同。有一台显示器会有所帮助。 rabbitmq Erlang客户端中的“频道”为Pid
,因此可以对其进行监控(erlang:monitor(process, Pid)
)。
您设法发送邮件,但没有邮件传递到的队列。这可以通过订阅频道事件来处理。您将从RabbitMQ收到312 - No Route
消息。