gpt4 book ai didi

Azure Functions host.json 队列batchSize小于newBatchThreshold

转载 作者:行者123 更新时间:2023-12-04 17:17:59 27 4
gpt4 key购买 nike

我有一个 Azure 函数,可以调用虚拟机上托管的 Web 服务。由于这种依赖性,并发运行的 Azure Function 实例不得超过 8 个(VM 只有 8 个核心,每次调用 Web 服务都使用一个核心),这一点很重要。如果生成的实例超过 8 个,则 Web 服务调用将开始备份,触发 Azure Function 的队列中的项目将开始超时,并且消息将被丢弃。但是,我还希望尽可能多地利用可用资源来最大化队列的处理,因此我希望每当队列中有 8 个或更多项目时,始终有 8 个 Azure 函数实例在运行。

为了完成所需的限制,我已将 Azure Function 计划设置为在应用服务计划而不是消耗计划上运行,并且我已在 Azure Function 服务的 host.json 中设置以下值:

{
"queues": {
"batchSize": 1,
"newBatchThreshold": 7
}
}

理论上,只要运行 7 个或更少的函数实例,就会有 1 条消息出队,直到有 8 条消息正在处理。我现在正在运行它,它似乎正在工作,但我在host.json中找不到任何地方。文档或 WebJobs SDK documentation这表示 batchSize 是否可以小于 newBatchThreshold。我只知道建议将 newBatchThreshold 设为 batchSize 的一半(这显然不是我正在做的)。

我的问题是:这个配置可以吗?或者有更好的方法来实现我的节流目标吗?

最佳答案

是的,完全没问题。每个标志都有精确的(尽管有点令人困惑)语义,任何组合都是有效的,并且将遵循记录的语义。

请注意,使用消费 Azure Functions 时,您可能最终会扩展到多个实例,每个实例都有这些限制。如果您想避免这种情况,请尝试将 WEBSITE_MAX_DYNAMIC_APPLICATION_SCALE_OUT 设置为 1,按照 https://github.com/Azure/azure-webjobs-sdk-script/wiki/Configuration-Settings

关于Azure Functions host.json 队列batchSize小于newBatchThreshold,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46452692/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com