2016-08-24 90 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

不止欢迎。 –