首页 文章

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

提问于
浏览
0

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

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

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

1 回答

  • 1

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

    正如Gaurave Mantri所说,你可以将 Max delivery count 设置为你想要的vaule . The default value is 10 . 有关更多详细信息,请参阅Exceeding MaxDeliveryCount . 如果重试次数达到Max delivery,则队列消息将自动移至dead letter queue .

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

相关问题