【发布时间】:2012-11-08 14:46:05
【问题描述】:
我将 RabbitMQ.Client(运行时版本 v2.0.50727,版本 2.8.1.0)与 C# .NET 应用程序一起使用。
我这样创建连接:
using (IConnection connection = _factory.CreateConnection())
{
using (IModel channel = connection.CreateModel())
{
// code...
}
}
如果我正确关闭应用程序,它只会关闭通道和连接。但如果应用程序关闭不正确(例如按下 PC 上的重新启动按钮),则不是。我想确保在我启动我的应用程序之前关闭所有不必要的连接(来自以前的会话甚至其他应用程序,如果错误地应用程序的其他实例正在其他地方运行)。
我知道我可能会使用心跳,但我的应用程序可能需要很长时间才能开始执行任何操作(打开连接数小时且未使用)。所以我认为心跳不是最好的。
如何关闭所有打开的 RMQ 连接? (或者,更好的是,所有打开的连接,一个给定的 IP 除外)?
问候!
【问题讨论】: