c# - Azure EventHub函数触发默认重试机制

标签 c# azure azure-functions azure-eventhub azure-functions-runtime

我正在开发一个 Azure EventHub 函数触发器来批量使用消息。我想了解以下两件事。

  1. 事件中心触发器中是否有默认的重试策略/机制,以便在引发未处理的异常时重试,无需在 host.json 或 on 上执行任何其他配置触发级别作为属性(FixedDelayRetry/ExponentialBackoffRetry)?

  2. 如何配置host.json而不添加功能级别属性?以下是我使用的host.json文件

    {
      "version": "2.0",
      "logging": {
        "logLevel": {
          "default": "Information",
          "Host.Results": "Error",
          "Function": "Error",
          "Function.MyEventHubTrigger": "Information",
          "Host.Aggregator": "Trace"
        },
        "applicationInsights": {
          "samplingSettings": {
            "isEnabled": true,
            "excludedTypes": "Request;Trace;Exception"
          }
        }
      },
      "extensions": {
        "eventHubs": {
          "clientRetryOptions": {
            "mode": "exponential",
            "tryTimeout": "00:01:00",
            "delay": "00:00:00.80",
            "maximumDelay": "00:01:00",
            "maximumRetries": 3
          }
        }
      }
    }
    
    

以下是我的项目中使用的包,函数运行时版本是4.26.0 enter image description here

我已经检查了以下有关重试机制配置的文档,并且能够将 FixedDelayRetry 配置为属性,并且它按预期工作。但是,我无法使 host.json 配置正常工作(我尝试了指数模式和固定模式)

如有任何帮助,我们将不胜感激。

最佳答案

上面的示例中有两种不同的重试机制。您在 host.json 中定义的配置控制着管理事件中心 SDK 执行的服务操作的隐式重试。这些对您的函数代码不可见,也不适用于您的处理代码中发生的错误。

该属性控制函数重试策略,该策略监视您的处理代码并对从中出现的错误使用react。据我所知,这不能在 host.json 中配置,并且需要该属性。更多上下文可以在 Retry policies 中找到Azure Functions 错误处理和重试部分。

关于c# - Azure EventHub函数触发默认重试机制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/77173543/

相关文章:

Azure 备份还原

使用应用程序设置 json 的 Azure Function 2.0

azure - 找不到任何在 Cosmos db 本地存储/Azure 门户中创建集合的选项

带链接的 C# WPF 文本

azure - 运行容器化应用程序时的 IIdentity?

c# - 如何将 .NET 4 WinForm 应用程序分配给 Delphi 7 窗体的所有者属性?

azure - 启用二进制日志记录 Azure mysql 服务器

Azure函数: How to add row to cloud table on blob creating?

c# - 如何在 C# 中枚举音频输出设备

c# - 日期时间选择器阻止较早的日期