Azure Functions 2.0中的Hosts.json似乎不尊重队列属性

时间:2018-12-17 10:10:32

标签: azure azure-functions

我的hosts.json文件是这样的:

{
  "version": "2.0",
  "extensions": {
    "queues": {
      "maxPollingInterval": "00:00:02",
      "visibilityTimeout": "00:01:00",
      "batchSize": 2,
      "maxDequeueCount": 2,
      "newBatchThreshold": 1
    }
  }
}

但是我可以看到至少有50个并发会话正在运行。是否存在已知问题,或者我应该做一些其他事情来限制从队列触发器运行的并发函数的数量?

如果看到WEBSITE_MAX_DYNAMIC_APPLICATION_SCALE_OUT,但似乎尚未完全支持。

1 个答案:

答案 0 :(得分:0)

来自MSDN - Azure Functions

  

batchSize

     

Functions运行时同时检索并并行处理的队列消息数。当要处理的数字降到newBatchThreshold时,运行时将获取另一个批处理并开始处理这些消息。因此,每个函数处理的并发消息的最大数量为batchSize加上newBatchThreshold。此限制分别适用于每个队列触发的函数。

因此,并发操作的数量受此约束限制。在样本配置的情况下,最多只能执行3个并发操作。但是,如果有更多的消息排队,则将在当前批处理之后对其进行处理。根据每条消息的处理速度,这可能是每秒大量的消息。

在监视最终结果时,这可能会因为在很小的时间范围内有大量操作而出现,但不一定是并发的。