列表 <POCO> 存储队列的 Azure 函数触发器

Azure Function Trigger for List<POCO> Storage Queue

我们订阅了事件网格,其端点类型为存储队列(比如 xyz-queue)。我们还有一个 Azure 函数,它是一个队列 (xyz-queue) 触发器。 xyz-queue存储Queue中的每条消息都是EventGridEvent对象。我有如下所示的 Azure Function 触发器:

public static void Run([QueueTrigger(xyz-queue, Connection = "connnection")] EventGridEvent ege)

因为,将有 1000 条消息具有相同的 POCO 对象(在本例中为 EventGridEvent),有没有一种方法可以让我们读取多条消息,一起处理它们,并确保我们不会读取超过 5 条消息,所以该功能不需要很长时间来处理。

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

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

更多细节,你可以参考这个article

另外,如果你想用poco输出队列消息倍数,你可以使用ICollector and IAsyncCollector