首页 > 解决方案 > Azure 函数的 Host.json 中的 MaxBatchSize 不起作用

问题描述

我在 host.json 中对我的 Azure 函数进行了以下配置,并且我正在向 EvenHub 发送多批 30000 条消息,但我看到我的 azure 函数选择的值不超过 64,这是默认值。它没有选择 maxbtachsize 值的任何特定原因。

事件中心配置为单个事件中心的分区计数为 25,单个 TU 为 15

"version": "2.0",
"extensions": {
    "eventHubs": {
      "batchCheckpointFrequency": 5,
      "eventProcessorOptions": {
        "maxBatchSize": 256,
        "prefetchCount": 512
      }
    }
}

标签: azureazure-functionsazure-eventhub

解决方案


对于 dotnet core,我遇到了这个问题,即应用程序没有采用 host.json 中提到的 maxBatchSize 或其他参数。我无法从 host.json 做到这一点。但它是使用依赖注入(IOptions)完成的

public override void Configure(IFunctionsHostBuilder builder)
{
    builder.Services.PostConfigure<EventHubOptions>(o =>
    {
        o.EventProcessorOptions.MaxBatchSize = 256;
        o.EventProcessorOptions.PrefetchCount = 512;
    });
}

现在,它对我有用!如果可用,它正在绘制 256 个事件。


推荐阅读