2011-09-23 246 views
1

如果我選擇在NServiceBus pub子模型中使用自動訂閱,系統在客戶端存在時不會自動取消訂閱。如何取消訂閱NServiceBus訂閱?

我總是可以做一個手動取消訂閱,但我無法找出現有的訂閱列表,我不想硬編碼取消訂閱。

所以我的問題是:在nservicebus有沒有自動取消訂閱功能?如果沒有,我如何獲得客戶當前訂閱的列表?

+0

rushui出於好奇你爲什麼要取消訂閱? –

+0

您是否看了TimeToBeReceived屬性 - 它將保證在給定時間段內未處理的消息將被自動丟棄。 –

+1

休 - 我注意到,如果客戶端沒有取消訂閱,發佈者將始終將事件發送到客戶端msmq。當客戶端應用程序未運行時,我不想使用網絡和服務器資源。 –

回答

3

我不認爲你會找到一個自動退訂。 Udi和公司有意設計了NServiceBus,以使它很難做到不符合異步,pub/sub SOA模式的事情。通常,客戶端正在運行或未運行的事實不會影響訂閱是否仍然有效。如果這真的是你需要的,你可能必須自己編碼。

+0

實質上你在說什麼Eric在面向消息中間件的術語中所有訂閱都是持久的。 –

+2

取消訂閱的一個原因是,如果您已經實施了替換消息類型,並且不再希望將舊消息發送給您。但是,我想可以保留它的處理程序,並且如果有人到達,調用Bus.Unsubscribe(message.GetType())? –