我正在使用NServiceBus,我需要知道有多少客戶訂閱了特定的消息類型(甚至更好的訂戶名稱)。我在一個pub \ sub場景中講話。如何獲取NServiceBus中的訂戶總數?
是否有可能在NServiceBus中獲取此信息?
THX
我正在使用NServiceBus,我需要知道有多少客戶訂閱了特定的消息類型(甚至更好的訂戶名稱)。我在一個pub \ sub場景中講話。如何獲取NServiceBus中的訂戶總數?
是否有可能在NServiceBus中獲取此信息?
THX
你可以拉這個權利從你訂閱的存儲空間。對數據庫的查詢或隊列中的.GetAllMessages()都會爲您提供計數和用戶地址。如果您想要在代碼中執行此操作,則可以爲訂閱消息編寫一個處理程序並對它們進行計數。
我需要知道在某個時間點有多少用戶存在。我應該在處理程序中處理哪種類型的消息? – rguerreiro 2010-12-27 10:50:13
我已經使用ISubscriptionStorage成功。
public class SubscribersForMessageHandler :
IHandleMessages<SubscribersForMessageRequest>
{
public ISubscriptionStorage Storage { get; set; }
public IBus Bus { get; set; }
public void Handle(SubscribersForMessageRequest message)
{
Bus.Reply<SubscribersForMessageResponse>(m=>
{
m.SagaId = message.SagaId;
m.MessageType = message.MessageType;
m.SubscriberEndpoints = GetSubscribersForMessage(message.MessageType);
});
}
private List<string> GetSubscribersForMessage(string type)
{
return Storage.GetSubscribersForMessage(
new List<string> { type }).ToList();
}
}
您是否需要此目的用於監控目的或因業務需求? – 2010-12-24 10:02:23