如何在C#中或使用Windows命令杀死RabbitMQ连接?

问题描述 投票:0回答:1

我正在使用RabbitMQ.Net进行消息传递,我想测试不同的情况。在一种情况下,我想看看连接断开时会发生什么。在测试过程中如何强制连接断开?

the "Hello World" example here为例,我想这样做:

  1. 设置发送者和接收者
  2. 发送消息
  3. 进行C#调用或运行Windows命令以终止连接。在接收者有机会接收消息之前执行此操作
  4. 查看发送者和接收者会发生什么

我该如何执行第3步?

c# windows rabbitmq
1个回答
1
投票

在这方面,RabbitMQ的行为已得到很好的定义,因此我不确定测试的重点是什么(该版本可能已经对此行为进行了自动测试。

如果将RabbitMQ设置为heartbeat,则在经过两个心跳间隔后,将拾取掉落的TCP套接字。如果不是这样,则在尝试进行下一个网络操作时,将提取失效的套接字。这是由于TCP的工作原理。

一旦拾取了丢弃的套接字,将触发应用程序连接关闭逻辑。这涉及发送连接关闭和通道关闭事件。我快速浏览了.NET client documentation,看来他们已经实现了一些自动恢复。您可能必须通读代码以查明它的确切功能,并且坦率地说,我不会相信它。我希望手动处理重新连接。

© www.soinside.com 2019 - 2024. All rights reserved.