我在哪里指定 Azure 服务总线中的 MaxConcurrent 调用

Where do I specify MaxConcurrent calls in Azure Service bus

下面是我的 Azure Function App 代码,它在服务总线主题上触发。经过一定的延迟后,我 运行 在我的控制台中遇到此错误“提供的锁无效。锁已过期,或者消息已从队列中删除。删除消息时".

在谷歌搜索和引用其他堆栈溢出帖子时,一个被要求尝试的解决方案是指定 Maxconcurrent 调用,但我不知道我在哪里指定它以及如何在下面的代码中指定它。如果有人可以帮助我解决这个问题,如果还有其他选择,我应该尝试解决这个错误。

 public class TabularData
{
    

    [FunctionName( "ProcessTableData" )]
    public async Task Run( [ServiceBusTrigger("twister-events", "tabulardata-processor",
        Connection = "AzureServiceBusString")]
        string SbMsg, ExecutionContext context,
        ILogger log )
    {
        try
        {
            MyProject.CreateDefaultLoggerFactory();
            TableStorageManager manager = new TableStorageManager();
            if( !string.IsNullOrEmpty( SbMsg ) )
            {
                log.LogInformation( $"C# ServiceBus topic trigger function processed message: {SbMsg}" );
                TableStorageConfiguration rulesList = GetConfiguration( context.FunctionAppDirectory, "DataFileConfiguration.json" );
                await ProcessServiceBusMessage( SbMsg, rulesList, manager );
            }
        }
        catch( Exception Ex )
        {
            log.LogError( $"Error while uploading tabular data; {Ex.Message}" );
            throw;
        }
    }

更新:这是我的 host.json 文件的样子,但我仍然 运行 遇到同样的错误。

{
  "functionTimeout": "05:05:00",
  "logging": {
    "applicationInsights": {
      "samplingSettings": {
        "isEnabled": true,
        "excludedTypes": "Request"
      }
    }
  },
  "version": "2.0",
  "extensions": {
    "serviceBus": {
      "prefetchCount": 100,
      "messageHandlerOptions": {
        "autoComplete": false,        
        "maxConcurrentCalls": 32,
        "maxAutoRenewDuration": "05:00:00"
      },
      "sessionHandlerOptions": {
        "autoComplete": false,
        "messageWaitTimeout": "05:00:30",
        "maxAutoRenewDuration": "05:55:00",
        "maxConcurrentSessions": 16
      }
    }
  }

该错误基本上意味着 Function App 无法在默认为 30 秒的锁定持续时间内处理消息,另一种解决方案是将锁定持续时间从 30 增加到 60,看看是否有帮助减少锁无效异常的数量。 关于在 host.json 设置文件

中指定“maxConcurrentCalls”的位置
 },
  "version": "2.0",
  "extensions": {
    "serviceBus": {
      "maxConcurrentCalls": "1"
    }
  }
}