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

时间:2020-07-15 04:13:19

标签: .net azure asp.net-core azure-functions azure-storage-queues

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

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

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

1 个答案:

答案 0 :(得分:1)

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

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

有关更多详细信息,请参阅此article

此外,如果要通过poco输出多个队列消息,则可以使用ICollector and IAsyncCollector