Azure队列和功能:向队列添加消息但不自动执行函数

时间:2018-03-27 22:22:16

标签: azure xamarin azure-functions azure-queues

我在本地运行azure函数,但每当我向队列发送消息时,该函数都不会执行队列中的项目。只有在我重新运行该功能时才会触发。我在host.json中设置了batchSize来一次执行一条消息。是因为BatchSize导致了这种情况。

1 个答案:

答案 0 :(得分:0)

最有可能的不是Batchsize,请确保设置NewBatchThreshold:

  

函数运行时同时检索并并行处理的队列消息数。当正在处理的数字下降到newBatchThreshold时,运行时将获得另一个批处理并开始处理这些消息。因此,每个函数处理的最大并发消息数是batchSize加newBatchThreshold。此限制分别适用于每个队列触发的功能。

     

如果要避免在一个队列上收到的消息的并行执行,可以将batchSize设置为1.但是,只要您的功能应用程序在单个虚拟机(VM)上运行,此设置就会消除并发性。如果功能应用程序扩展到多个VM,则每个VM可以运行每个队列触发功能的一个实例。

示例:

{
"queues": {
  "maxPollingInterval": 2000,
  "visibilityTimeout" : "00:00:30",
  "batchSize": 16,
  "maxDequeueCount": 5,
  "newBatchThreshold": 8
}

} 我建议您查看以下文档:https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-storage-queue