c# - Azure服务总线: Process 1 message at a time

标签 c# azure .net-core azure-functions azureservicebus

现在,我们使用 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}");
    }

最佳答案

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

"extensions": {
        "serviceBus": {
            "messageHandlerOptions": {
                "maxConcurrentCalls": 1
            }
        }
    }

关于c# - Azure服务总线: Process 1 message at a time,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73901181/

相关文章:

带有容器的 Azure 应用服务不遵守使用 udp 进行端口转发的 docker-compose 语法

c# - 如何在 Visual Studio 中解析 "NuGet package restore failed"?

entity-framework - 在 EF Core 中添加没有外键的导航属性,使用 .NET Core Web API 进行数据库优先迁移

c# - 使用 System.IO.Directory.GetFiles() 计算文件的性能问题

C#:显式命名空间未出现在生成的 XML 中

asp.net-mvc-3 - Azure 网站将公共(public) IP 地址传递到支付网关

git - Github 操作中的 git remote add 权限被拒绝

windows - Jenkins Blue Ocean 工作区路径太长

c# - .NET 中 GC 如何收集静态成员中的资源?

c# - TIME(2) 列的值显示为带有额外的精度零,而查询仅返回 2