Azure 服务总线:一次处理 1 条消息

Anw*_*esh 1 c# azure azureservicebus .net-core azure-functions

现在,我们使用 Azure 服务总线来触发我们的函数应用程序。传入消息的速率非常高,但我们希望一次仅触发函数应用程序一条消息(按照我们自己的节奏进行处理,而不是处理太多请求错误)。如何配置服务总线一次只向接收者发送一条消息?这是我们的基本功能应用程序代码:

    [FunctionName("ServiceBusListener")]
    public void Run([ServiceBusTrigger("myqueue", Connection = "MyConnection")]string queueContent, ILogger log)
    {
        _myService.ProcessMessage(queueContent);
        log.LogInformation($"C# ServiceBus queue trigger function processed message: {queueContent}");
    }
Run Code Online (Sandbox Code Playgroud)

Raf*_*ffy 7

您不必将服务总线设置为一次发送一条消息,而是将函数应用设置为一次处理一条服务总线消息。转到host.json函数应用程序的 ,然后添加以下内容:

"extensions": {
        "serviceBus": {
            "messageHandlerOptions": {
                "maxConcurrentCalls": 1
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)