Azure 服务总线重试选项不起作用

分享于2022年07月17日 azure azure-servicebus-topics azureservicebus c# function 问答
【问题标题】:Azure Service Bus Retry Options Not Working (v5.2.0)Azure 服务总线重试选项不起作用 (v5.2.0)
【发布时间】:2022-07-15 21:59:50
【问题描述】:

我在 Azure Function 中使用 Microsoft.Azure.WebJobs.Extensions.ServiceBus 包的 5.2.0 版。 According to the docs here 新版本支持失败操作自动重试。这是我的 host.json:

{
  "version": "2.0",
  "extensions": {
    "serviceBus": {
      "clientRetryOptions": {
        "mode": "Exponential",
        "tryTimeout": "00:02:00",
        "delay": "00:00:02.00",
        "maxDelay": "00:30:00",
        "maxRetries": 10
      }
    }
  }
}

这 - 除了时间值 - 与文档中的完全相同。在由 ServiceBusTrigger 触发的函数中,我在某些情况下抛出异常。我希望消息被延迟,如文档中所述。但它被放回队列的头部并立即重试,没有延迟。我已经花了 2 个工作日来处理这个问题,我在网上找到的各种版本、不正确的文档和示例,我已经尝试了各种排列方式,但我就是无法让它发挥作用。

我再也看不到树木了。谁能看到我做错了什么?


【解决方案1】:

似乎有人问过这个问题并回答了 here 。似乎重试仅适用于它认为可以重试的某些错误,即瞬态错误。

【讨论】:

  • 是的,我看到了那个,但它与 Microsoft.Azure.WebJobs.Extensions.ServiceBus 的旧版本有关。据我所知,v5+ 中的 clientRetryOptions 是为了解决这个缺点而实现的。