我们订阅了事件网格,其端点类型为存储队列(例如xyz-queue)。我们还有一个Azure函数,它是一个队列(xyz队列)触发器。 xyz队列存储队列中的每个消息都是EventGridEvent对象。我有Azure函数触发器,如下所示:
public static void Run([QueueTrigger(xyz-queue, Connection = "connnection")] EventGridEvent ege)
因为,将有1000个具有相同POCO对象的消息(在本例中为EventGridEvent),有一种方法可以读取多条消息,一起处理它们,并确保我们读取的消息不超过5条,因此该函数不需要很长时间来处理。
答案 0 :(得分:1)
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
。