[英]Azure Functions - grouping messages from Azure Service Bus
當您必須處理大量消息時,最好將它們分組以優化性能(但保持在消息鎖定持續時間之內)。
例如,如果對於每條消息,您都必須調用外部服務(elasticsearch?)以獲得出色的性能,那么將對外部服務的 1000 個請求組合成一個。
但是這種分組應該由 Azure Function 處理,因為如果您自己對消息進行分組:消息已成功從服務總線讀取,並且您已超出消息鎖定持續時間。 換句話說,如果在處理我們丟失的整組消息的過程中出現問題,您不能自動將它們死信。
我們可以將Azure 函數綁定配置為一次接收一組消息而不是一條消息嗎?
您可以配置 Azure 服務總線觸發器來接收批次。
[FunctionName("TriggerBatch")]
public static void Run(
[ServiceBusTrigger("<queue_name>", Connection = "<connection_name>")] ServiceBusReceivedMessage[] messages,
ILogger logger)
{
foreach (ServiceBusReceivedMessage message in messages)
{
logger.LogInformation($"Function triggered to process a message with body: {message.Body}");
logger.LogInformation($"EnqueuedTime={message.EnqueuedTime}");
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.