小编sam*_*929的帖子

Azure函数host.json队列batchSize小于newBatchThreshold

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

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

{
    "queues": {
        "batchSize": 1,
        "newBatchThreshold": 7
    }
}
Run Code Online (Sandbox Code Playgroud)

从理论上讲,这使得只要7个或更少的函数实例正在运行,那么另外1个消息将被出列,直到有8个消息被处理.我现在正在运行,它似乎正在运行,但我无法在host.json文档或WebJobs SDK文档中找到任何位置,以确定是否batchSize可以小于newBatchThreshold.我只知道建议是newBatchThreshold一半batchSize(这显然不是我在做什么).

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

azure azure-queues azure-webjobssdk azure-functions

2
推荐指数
1
解决办法
1310
查看次数