Tôi sử dụng RabbitMQ.Client (phiên bản thời gian chạy v2.0.50727, phiên bản 2.8.1.0) với ứng dụng C# .NET.Đóng kết nối RabbitMQ ngay cả khi ứng dụng không kết thúc một cách duyên dáng
tôi có thể tạo kết nối như thế này:
using (IConnection connection = _factory.CreateConnection())
{
using (IModel channel = connection.CreateModel())
{
// code...
}
}
Nếu tôi đóng ứng dụng đúng cách, nó chỉ đơn giản là đóng kênh và kết nối. Nhưng nếu ứng dụng bị đóng không chính xác (ví dụ: nhấn nút khởi động lại trên PC), nó không phải. Tôi muốn đảm bảo rằng tất cả các kết nối không cần thiết (từ các phiên trước hoặc thậm chí các ứng dụng khác, nếu do nhầm lẫn trường hợp ứng dụng đang chạy ở nơi khác) được đóng trước khi tôi khởi động ứng dụng của mình.
Tôi biết tôi có thể sử dụng nhịp tim nhưng có thể ứng dụng của tôi cần nhiều thời gian để bắt đầu làm bất cứ điều gì (nhiều giờ kết nối mở và không được sử dụng). Vì vậy, tôi nghĩ nhịp tim không phải là điều tốt nhất.
Làm cách nào để đóng tất cả các kết nối đã mở cho RMQ? (Hoặc, thậm chí tốt hơn, tất cả các kết nối đã mở, ngoại trừ một IP đã cho)?
Trân trọng!