如何使用NServiceBus.FLRetries标头(NSB 5.2)

时间:2017-03-20 22:39:21

标签: nservicebus

我有一个PowerShell脚本,用于重放错误队列中的MSMQ消息。我希望 NServiceBus.FLRetries 更新并进一步失败。然而,这种情况并非如此。

我已阅读documentation但无法完全理解此特定标题。

我希望看到的是,当邮件继续无法处理时(例如,网络服务不可用),重试次数会增加。

我正在使用NSB 5.2。

如果以上标题不可用,我可以对此进行建模。

1 个答案:

答案 0 :(得分:0)

不幸的是,这不起作用。

NServiceBus通过在发生异常时将接收事务针对队列滚动来实现第一级重试(FLR)。回滚事务意味着消息“永远不会离开”队列。因此,您无法修改消息,包括添加/更新任何标头,例如 NServiceBus.FLRetries 。 NServiceBus会在内存中跟踪此计数。

如果消息一直失败并移至二级重试(SLR),NServiceBus将添加 NServiceBus.FLRetries 标头以显示 FLR < / strong>总共尝试重试。

如果您确实需要跟踪重试次数,可以禁用 FLR ,而只使用 SLR SLR 重试会为每次重试增加 NServiceBus.Retries 标头,因为它们不依赖于回滚接收事务。