首页 文章

存储队列触发的Azure功能是单个消息还是所有消息?

提问于
浏览
2

如果我创建一个由存储队列消息触发的Azure功能...系统是否会启动多个并行功能以从队列中获取每条消息,或者是否会调用一个函数来读取所有可用消息?

简而言之,排队的邮件是单独处理还是分批处理?

3 回答

  • 7

    从API开始,每个队列中的每条消息都会调用一次函数 .

    但Azure Functions运行时将批量检索和处理消息,并行调用函数的多个实例 .

  • 0

    首先,正如Mikhail所说,Azure Functions运行时批量检索和处理队列消息 . 默认 batchSize 为16,最大batchSize为32

    此外,我们可以为'queue'触发器进行配置,并在host.json file中指定/修改 batchSize .

    Configuration settings for 'queue' triggers

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

    它不会一次处理所有消息,但它支持消息批处理 . 为了启用批处理,您需要使函数的输入成为类型的数组而不是类型本身 . (例如EventData []而不是EventData)然后批处理适用 . 您可以将批量大小设置为最大为32,如提到的@Fei . 查看以下链接简要介绍一下:

    https://docs.microsoft.com/en-us/azure/azure-functions/functions-best-practices

相关问题