我在C#.NET應用程序中使用RabbitMQ.Client(運行時版本v2.0.50727,版本2.8.1.0)。即使應用程序沒有正常結束,關閉RabbitMQ連接
我創建的連接是這樣的:
using (IConnection connection = _factory.CreateConnection())
{
using (IModel channel = connection.CreateModel())
{
// code...
}
}
如果我關閉應用程序正確,它只是關閉通道和連接。但是,如果應用程序關閉不正確(例如,按下PC上的重啓按鈕),則不是。我希望確保所有不必要的連接(從以前的會話甚至其他應用程序,如果錯誤的其他應用程序實例正在其他地方運行)在我開始我的應用程序之前關閉。
我知道我可能會使用心臟跳動,但是我的應用程序可能需要很多時間才能開始做任何事情(打開連接數小時而未使用)。所以我認爲心跳不是最好的。
如何關閉所有打開的RMQ連接? (或者,更好的是,所有打開的連接,除了一個給定的IP)?
問候!