配置NServiceBus重试不要打扰ApplicationException

时间:2015-03-07 03:56:05

标签: nservicebus

我理解NSe​​rviceBus的重试机制主要用于连接问题或数据库死锁问题,这很好,我喜欢它。

但是,我想配置NServiceBus'如果异常是typeof(ApplicationException),则重试机制不打扰重试。当存在破坏的业务规则时(例如暂停的客户),我的代码会抛出此类异常,因此无论NServiceBus'是否重试此消息多少次。快速重试机制,它将失败。此方案要求用户对数据执行操作,然后使用ServiceInsight重新排队消息以进行处理。

可以这样做吗?

1 个答案:

答案 0 :(得分:3)

我会重新考虑使用您的应用程序逻辑,在处理程序中使用Reply或Return来告知用户此类错误,这应该位于catch(ApplicationException)部分。然后,用户使用您的应用程序更改数据并再次发送消息,而不是ServiceInsight。在这种情况下,不要在catch块中重新抛出ApplicationException,这将阻止NServiceBus重试您的消息处理。