在Azure BrokeredMessage上调用Abandon会增加传递计数

Ric*_*363 4 servicebus azure

当我放弃BrokeredMessage时,消息传递计数是否会增加,从而有助于将其放入Dead Message Queue中?

Erk*_*rel 7

当我放弃BrokeredMessage时,消息传递计数是否会增加,从而有助于将其放入Dead Message Queue中?

是的,确实如此.每当您放弃一条消息时,交付计数将增加1.当它达到最大交付计数(默认为10)时,它将被发送到死队列.

  • 对于未来的读者。如果您想要一种“放弃”的方法而不增加传递计数,请参见此处的“重新提交消息”。http://markheath.net/post/defer-processing-azure-service-bus-message克隆消息,完成原始消息,然后发送克隆的消息,并选择添加自定义属性以增加自己的重试计数。不是原子的,但是最好的解决方法。 (2认同)

小智 5

BrokeredMessage.Abandon()仅在队列中解锁消息,以便其他使用者可以找到并锁定该消息以进行处理。它只能在peekLock模式下工作。

如果接收方应用程序由于某种原因无法处理该消息,则可以对接收到的消息调用Abandon方法(而不是Complete方法)。这将导致服务总线将队列中的消息解锁,并使其可以由同一使用方应用程序或另一个使用方应用程序再次接收。

您可以参考以下文章:https : //azure.microsoft.com/zh-cn/documentation/articles/service-bus-dotnet-how-to-use-queues/以查看如何从队列接收消息。

有关如何使用BorkerMessage.Abandon(),请参考https://msdn.microsoft.com/en-us/library/azure/hh181837.aspx