C# .NET アプリケーションで RabbitMQ.Client (ランタイム バージョン v2.0.50727、バージョン 2.8.1.0) を使用しています。
次のような接続を作成します。
using (IConnection connection = _factory.CreateConnection())
{
using (IModel channel = connection.CreateModel())
{
// code...
}
}
アプリケーションを適切に閉じると、チャネルと接続が閉じられます。ただし、アプリケーションが誤って閉じられた場合 (PC の再起動ボタンを押すなど) は、そうではありません。アプリケーションを起動する前に、すべての不要な接続 (アプリケーションの他のインスタンスが誤って別の場所で実行されている場合は、以前のセッションまたは他のアプリケーションから) を確実に閉じたいと思います。
ハートビートを使用する可能性があることはわかっていますが、アプリケーションが何かを開始するのに非常に長い時間がかかる可能性があります (何時間も接続を開いて使用していません)。だから私はハートビートは最高のものではないと思います。
RMQ で開かれているすべての接続を閉じるにはどうすればよいですか? (または、さらに良いことに、特定の 1 つの IP を除いて、すべての開いている接続)?
よろしく!