列表 <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
。
我们订阅了事件网格,其端点类型为存储队列(比如 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
。