使用服务总线队列强制 Azure Functions 一次仅处理一条消息

问题描述 投票:0回答:2

我已按照链接此处中的说明尝试获取 Azure 函数来逐一处理队列中的消息

我正在使用 Azure 服务总线队列

我故意在函数中添加了延迟以减慢速度,但我可以看到,尽管我在函数中添加了一秒的延迟,但 250 条消息的队列处理得非常快

有人在尝试这样做时遇到问题吗?

我的 host.json 中有这个

 "queues": {
      "batchSize": 1,
      "newBatchThreshold": 0,
      "maxPollingInterval": "00:00:30",
      "visibilityTimeout": "00:01:00",
      "maxDequeueCount": 3
    }

保罗

azure azure-functions azure-servicebus-queues
2个回答
2
投票

您引用的链接是关于 Azure 存储队列的。对于 Azure 服务总线,您应该检查多个配置设置,例如

maxConcurrentCalls
(默认情况下为 16)和
maxConcurrentSessions
(如果您使用会话)。更多信息请参见官方文档这里


0
投票

对于任何希望在本地进行配置以进行调试的人,您可以将以下内容添加到

Values
中的
local.settings.json
部分:

"AzureFunctionsJobHost__extensions__serviceBus__maxConcurrentCalls": 1,
"AzureFunctionsJobHost__extensions__serviceBus__maxConcurrentSessions": 1,

原文如此。 https://learn.microsoft.com/en-us/azure/azure-functions/functions-host-json#override-hostjson-values

© www.soinside.com 2019 - 2024. All rights reserved.