Übersicht über Aufgabenwarteschlangen

Auf dieser Seite wird beschrieben, was Aufgabenwarteschlangen sind und wann und wie sie verwendet werden können. Aufgabenwarteschlangen ermöglichen Anwendungen, Aufträge asynchron, d. h. nicht direkt nach Nutzeranfragen, auszuführen. Diese Aufträge werden hier Aufgaben genannt. Wenn eine Anwendung im Hintergrund arbeitet, fügt sie Aufgaben in Aufgabenwarteschlangen ein. Die Aufgaben werden dann später von Worker-Diensten ausgeführt.

Der Dienst für Aufgabenwarteschlangen ist für asynchrone Aufgaben ausgelegt. Er bietet keine zuverlässigen Garantien hinsichtlich des Zeitpunkts der Aufgabenabarbeitung und eignet sich daher nicht für interaktive Anwendungen, bei denen ein Nutzer auf das Ergebnis wartet.

Push- und Pull-Warteschlangen

Aufgabenwarteschlangen gibt es in zwei Varianten: Push und Pull. Der Dienst für Aufgabenwarteschlangen gibt die Aufgabenanfragen an die Worker-Dienste je nach Warteschlange unterschiedlich aus.

Push-Warteschlangen führen Aufgaben aus, indem sie HTTP-Anfragen an App Engine-Worker-Dienste senden. Sie leiten diese Anfragen zuverlässig und kontinuierlich weiter und garantieren eine sichere Aufgabenausführung. Sie können die Geschwindigkeit, mit der Aufgaben aus der Warteschlange gesendet werden, individuell festlegen. Auf diese Weise bestimmen Sie das Skalierungsverhalten der Worker und damit Ihre Kosten.

Da Aufgaben als Anfragen für App Engine-Dienste ausgeführt werden, unterliegen sie strengen Zeitlimits. Aufgaben, die von automatischen Skalierungsdiensten verarbeitet werden, müssen in zehn Minuten abgeschlossen sein. Aufgaben, die von einfachen und manuellen Skalierungsdiensten verarbeitet werden, können bis zu 24 Stunden dauern.

Pull-Warteschlangen werden in PHP 5 nicht unterstützt.

Alle Aufgaben in Aufgabenwarteschlangen werden asynchron ausgeführt. Die Aufgabe wird von der Anwendung, von der sie erstellt wurde, an die Warteschlange übergeben. Die ursprüngliche Anwendung wird nicht entsprechend benachrichtigt, ob die Aufgabe abgeschlossen wurde bzw. erfolgreich war.

Der Dienst für Aufgabenwarteschlangen enthält einen Wiederholungsmechanismus. Wenn eine Aufgabe fehlschlägt, kann sie beliebig oft wiederholt werden.

Anwendungsfälle

Push-Warteschlangen

Ein typischer Anwendungsfall für eine Push-Warteschlange ist ein „langsamer“ Vorgang. Sehen wir uns das Messaging-System in einem sozialen Netzwerk an. Wenn ein Nutzer eine Nachricht sendet, muss das Netzwerk die Follower des Absenders informieren. Dies kann sehr lange dauern. Über eine Push-Warteschlange stellt die Anwendung für jede eingehende Nachricht eine Aufgabe in die Warteschlange, damit sie von dort an einen Worker-Dienst zur Verarbeitung weitergeleitet werden kann. Wenn der Worker die Aufgabenanfrage empfängt, kann er die Liste der Follower des Senders abrufen und die Datenbank für jeden einzelnen Follower aktualisieren. Der Worker arbeitet effizienter, wenn für jede Datenbankaktualisierung eine eigene Push-Aufgabe in die Warteschlange gestellt wird.

Ein weiterer Anwendungsfall für Push-Warteschlangen sind geplante Aufgaben. Sehen wir uns eine Anwendung an, mit der eine Werbekampagne umgesetzt wird. Sie haben eine Gruppe von Aufgaben zum Senden von E-Mails erstellt. Sie können die Aufgaben in eine Push-Warteschlange einfügen und die Anweisung geben, die Aufgaben erst zu einem festen späteren Zeitpunkt zu senden. Wenn der Fälligkeitszeitpunkt erreicht ist, beginnt der Dienst der Aufgabenwarteschlange mit der Ausgabe der Anfragen zur Ausführung der Aufgaben.

Weitere Informationen