我有一个带有服务总线触发器的 azure 函数。我只希望 x 个函数实例同时运行。这是通过主机文件中的 maxConcurrentCalls=x 完成的。这也可以通过 Azure 存储队列来实现吗?
最佳答案
确保您已安装最新的 nuget 包(例如 Microsoft.Azure.WebJobs.Extensions.Storage
)并尝试以下设置。
如果该功能位于消耗计划中,请在应用程序设置中将
WEBSITE_MAX_DYNAMIC_APPLICATION_SCALE_OUT
设置为1
以避免添加主机实例。对于专用应用服务计划,我们可以将实例计数固定为 1。在 host.json ,根据运行时版本配置队列批量大小(在门户中查找,平台功能>功能应用程序设置)。
运行时~1
{ "queues": { "batchSize": x, "newBatchThreshold": 0 } }
运行时~2
{ "version":"2.0", "extensions": { "queues": { "batchSize": x, "newBatchThreshold": 0 } } }
关于Azure 存储队列最大并发客户端数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54135528/