2012-11-02 37 views
6

Kịch bản mà tôi có trong tâm trí là: Service Bus được sử dụng cho các giao tiếp cá thể, do đó, đăng ký là duy nhất cho mỗi cá thể dịch vụ. Kết quả cuối cùng là nếu một cá thể không tắt một cách duyên dáng, đăng ký của nó sẽ không bị xóa.Thuê bao mồ côi tự động hết hạn (Azure ServiceBus Messaging SubscriptionClient)

Khi phiên bản dịch vụ "chết" và khởi động lại, nội dung trước của đăng ký không liên quan và có thể bị hủy. Vì vậy, có cách nào để đặt "thời gian sống" cho Đăng ký dịch vụ xe buýt hoặc mô phỏng một cái gì đó tương tự, mà không cần phải sử dụng đến một số cơ chế phát hiện trẻ mồ côi tùy chỉnh không? Không.

Trả lời

4

tính năng chính xác đó là việc tồn đọng cho một trong các bản phát hành tiếp theo. mà nói, trong azure bạn có thể sử dụng cá thể-id fro môi trường vai trò để tạo ra tên của thuê bao của bạn và do đó có một ví dụ khởi động lại tái sử dụng một thuê bao. tên instance-id ổn định.

Chỉnh sửa: Tính năng này rất AutoDeleteOnIdle https://docs.microsoft.com/en-us/dotnet/api/microsoft.servicebus.messaging.subscriptiondescription

+0

Cảm ơn câu trả lời của bạn, Clemens. Sử dụng ID cá thể để tạo tên đăng ký là chính xác những gì chúng ta đang làm, nhưng vẫn còn khá nhiều rác còn lại từ tất cả các phiên gỡ rối với các tên cá thể vải phát triển được tạo ra bằng cách sử dụng các số PID. –

+1

@ Giữ bất kỳ ý tưởng nào khi điều này có thể được phát hành? –

+0

Tôi cũng đang tìm kiếm khi nào điều này có thể được phát hành. Tôi có một ứng dụng tương tự cho đăng ký ứng dụng khách Silverlight cho mỗi khách hàng. Có thể có một tùy chọn để cuộn dọn dẹp của riêng bạn nếu bạn biết tên chủ đề bằng cách tìm kiếm các đăng ký cũ. : http://stackoverflow.com/questions/15871119/cleaning-up-stale-azure-service-bus-topic-subscriptions – kjsteuer

0

tôi đã có vấn đề chính xác cùng, giải quyết xem trước nó được phát hành đầu năm 2013: http://msdn.microsoft.com/en-us/library/microsoft.servicebus.messaging.subscriptiondescription.autodeleteonidle.aspx

Nó rất dễ sử dụng (xem ví dụ dưới đây). Thật không may có vẻ như là thời gian đăng ký ra nếu không có tin nhắn được công bố cho thời gian AutoDeleteOnIdle, ngay cả khi bạn có một số quá trình đang chờ tin nhắn (theo Azure Servicebus AutoDeleteOnIdle).

NamespaceManager manager=NamespaceManager.CreateFromConnectionString(serviceBusConnectionString); 
if(!manager.SubscriptionExists(topic,subscriptionName)) 
{ 
    manager.CreateSubscription(new SubscriptionDescription(topic,subscriptionName) { 
     AutoDeleteOnIdle=TimeSpan.FromDays(2) 
    }); 
} 
6

Bắt đầu với Azure SDK 2.0 hoạt động như mong đợi.

Ngoài ra, trái với các báo cáo khác, trong thử nghiệm của tôi, đăng ký không bị xóa miễn là có một người nhận đang chờ xử lý đang nghe đăng ký đó.

var description = new SubscriptionDescription(topicPath, subscriptionId); 
description.AutoDeleteOnIdle = TimeSpan.FromSeconds(600); 
namespaceManager.CreateSubscription(description); 
Các vấn đề liên quan