2017-06-25 3 views
1

Wenn ich eine Azure-Funktion erstelle, die von Speicherwarteschlangennachrichten ausgelöst wird ... startet das System mehrere parallele Funktionen, um jede Nachricht aus der Warteschlange zu erreichen, oder wird eine einzelne Funktion aufgerufen, die alle verfügbaren Nachrichten einliest?Werden von der Speicherwarteschlange ausgelöste Azure-Funktionen eine einzelne Nachricht oder alle Nachrichten empfangen?

Kurz gesagt, werden Nachrichten in der Warteschlange einzeln oder im Stapel verarbeitet?

Antwort

4

API-weise wird Ihre Funktion einmal pro einzelne Nachricht in der Warteschlange aufgerufen.

Aber Azure Functions Runtime wird Nachrichten in Batches abrufen und verarbeiten und mehrere Instanzen Ihrer Funktion parallel aufrufen.

2

Zuerst, wie Mikhail sagte, Azure-Funktionen Laufzeit abrufen und Warteschlange Nachrichten in Batches verarbeiten. Und der Standardwert batchSize ist 16.

Darüber hinaus können wir Konfiguration für 'Warteschlange' Auslöser tun und batchSize in host.json file angeben/ändern.

Konfigurationseinstellungen für ‚Warteschlange‘ löst

"queues": { 
    "maxPollingInterval": 2000, 
    "visibilityTimeout" : "00:00:10", 
    "batchSize": 16, 
    "maxDequeueCount": 5, 
    "newBatchThreshold": 8 
} 
0

Es ist nicht die Nachrichten in einem Rutsch umgehen kann, aber es unterstützt die Meldung Dosierung. Um die Stapelverarbeitung zu aktivieren, müssen Sie der Eingabe der Funktion ein Array des Typs und nicht den Typ selbst zuweisen. (z. B. EventData [] anstelle von EventData), dann gilt das Batching. Sie können die Batch-Größe bis zu 32 als @Fei erwähnt festlegen. Kasse folgende Link spricht über kurz:

https://docs.microsoft.com/en-us/azure/azure-functions/functions-best-practices

Verwandte Themen