2016-08-24 44 views
0

我正在使用NServiceBus作爲Azure服務總線的抽象層(以防我們離開Azure)。我發現,在與多個訂閱者(訂閱相同事件)一起工作時,重複郵件的數量會增加。我知道Azure服務總線(ASB)有一種檢測這些重複的方法,我可以看到該功能可以通過NServiceBus(根據文檔)進行配置。但是,我只能通過配置部分獲得重複檢測的樣本。我需要的是如何用代碼實現這一點的示例。在Azure服務總線上使用NServiceBus進行重複檢測

感謝

蘇拉傑

+0

您使用的是什麼版本的NServiceBus和Azure服務總線傳輸? –

回答

1

可以使用基於代碼的方法以及指定配置。 NServiceBus必須籤合同,可以幫助IConfigurationSourceIProvideConfiguration<T>。這裏是an example如何獲取配置文件部分(UnicastBusConfig)並通過代碼指定值。

具體來說,根據你的要求,執行IProvideConfiguration<AzureServiceBusQueueConfig>將允許你configure ASB transport,指定重複等。

由於用戶數量增加而導致重複次數增加的現象被視爲症狀,而不是問題。這可能是一個不同的問題,與配置無關。說,我會在啓用本地解除應用程序之前進行調查。雖然您可以指定RequiresDuplicateDetectionDuplicateDetectionHistoryTimeWindow請注意,ASB僅對ID屬性執行重複檢測。此外,最好將您的處理程序構建爲冪等性的,而不是依賴於本機重複數據刪除。

+0

嗨肖恩,謝謝你的幫助和建議。 –

+0

不止歡迎。 –