如果从天蓝色服务总线队列导致未处理的异常,如何删除消息?

时间:2018-02-16 02:15:41

标签: azure servicebus

我正在构建一个使用Azure Service Bus Queue的azure应用程序,我遇到了以下情况:

我的worker角色从服务总线队列接收消息并开始处理它。在此过程中,发生未处理的异常(无法捕获)。这会导致worker角色实例回收。由于实例被回收,我的消息从未完成,仍然在队列中。一旦我的实例循环并启动,它会抓取队列中的第一条消息,这是导致未处理异常的原因。

有没有办法处理这种情况并从队列中删除消息?

1 个答案:

答案 0 :(得分:1)

  

有没有办法处理这种情况并从队列中删除消息?

正如Gaurave Mantri所说,您可以将最大交货数设置为您想要的vaule。 默认值为10 。有关详细信息,请参阅Exceeding MaxDeliveryCount。如果重试次数达到最大传递次数,则队列消息将自动移至dead letter queue

  

队列和订阅分别具有QueueDescription.MaxDeliveryCount和SubscriptionDescription.MaxDeliveryCount属性; 默认值为10. 每当邮件在锁(ReceiveMode.PeekLock)下传递,但已被明确放弃或锁已过期时,消息BrokeredMessage.DeliveryCount将递增。   无法禁用此行为。