Sie können HTTP-Aufgaben entweder mit der Methode BufferTask
oder der Methode CreateTask
erstellen. Auf dieser Seite erfahren Sie, wie Sie zwischen den beiden Methoden zum Erstellen von HTTP-Aufgaben wählen.
Mit der Methode BufferTask
können Sie eine Aufgabe erstellen, indem Sie eine HTTP-Anfrage an die Warteschlange senden. Mit der Methode CreateTask
können Sie eine Aufgabe erstellen, indem Sie das Aufgabenobjekt erstellen. Für die meisten Anwendungsfälle ist es nicht erforderlich, das Aufgabenobjekt explizit zu erstellen. Die beste Methode zum Erstellen von Aufgaben hängt davon ab, ob Ihre Warteschlange ein Routing auf Warteschlangenebene hat.
Hinweis
Prüfen Sie in der folgenden Liste, ob einer der Anwendungsfälle auf Sie zutrifft:
- Sie möchten Aufgaben mit der RPC API oder Clientbibliotheken (nicht mit der REST API) erstellen.
- Sie möchten Aufgaben als App Engine-Aufgaben erstellen und nicht als die typischeren Aufgabenobjekte für allgemeine HTTP-Ziele, die App Engine-Ziele sein können oder nicht.
Wenn einer dieser Punkte auf Sie zutrifft, müssen Sie keine Methode zum Erstellen von Aufgaben auswählen, da nur eine Methode (die CreateTask
-Methode) unterstützt wird. Rufen Sie direkt die CreateTask
-Dokumentation für Ihren Aufgabentyp auf:
Prüfen, ob für die Warteschlange eine Weiterleitung auf Warteschlangenebene festgelegt ist
Führen Sie den Befehl gcloud tasks queues describe in Ihrem Terminal aus:
gcloud tasks queues describe QUEUE_NAME \ --location=LOCATION
Ersetzen Sie Folgendes:
QUEUE_NAME
: Der Name der Warteschlange.LOCATION
: die Region, in der sich die Warteschlange befindet. Wenn keine Angabe erfolgt und es eine zugehörige App gibt, wird der Speicherort der App Engine-Anwendung Ihres Projekts verwendet.
Suchen Sie in der Ausgabe nach dem Feld
httpTarget
und prüfen Sie, oburiOverride
festgelegt wurde.Wenn die Ausgabe eine Zeile für
uriOverride
mit einer angegebenenhost
enthält, gibt es in Ihrer Warteschlange ein Routing auf Warteschlangenebene. Informationen zur Auswahl der Methode zum Erstellen von Aufgaben finden Sie im Abschnitt Warteschlangen mit Routing auf Warteschlangenebene.Wenn die Ausgabe keine Zeile für
uriOverride
enthält oder in der Beschreibung vonuriOverride
keinhost
angegeben ist, gibt es für die Warteschlange kein Routing auf Warteschlangenebene. Informationen zur Auswahl der Methode zum Erstellen von Aufgaben finden Sie im Abschnitt Warteschlangen ohne Routing auf Warteschlangenebene (oder Routing auf Warteschlangenebene konfigurieren).
Warteschlangen mit Routing auf Warteschlangenebene
Bei Warteschlangen mit Routing auf Warteschlangenebene hängt die Methode zum Erstellen von Aufgaben von den Routinganforderungen der Aufgabe ab:
- Die Aufgabe hat dieselben Routinganforderungen wie auf Warteschlangenebene angegeben: Verwenden Sie
BufferTask
. Informationen zum Erstellen von Aufgaben mit der MethodeBufferTask
- Die Aufgabe hat andere Routinganforderungen als die auf Queueebene:
Legen Sie den Wert
IF_NOT_EXISTS
für UriOverrideEnforceMode fest, damit das Routing auf Queueebene auf Aufgaben angewendet wird, für die kein Routing vorhanden ist (z. B.BufferTask
-Aufgaben), aber das Routing von Aufgaben mit eigenen Routingspezifikationen berücksichtigt wird. Verwenden Sie dannCreateTask
. Mit dieser Methode können Sie ein individuelles Routing für die Aufgabe angeben. Informationen zum Erstellen von Aufgaben mit der MethodeCreateTask
Warteschlangen ohne Routing auf Warteschlangenebene
Für Warteschlangen ohne Routing auf Warteschlangenebene können Sie Aufgaben mit der Methode CreateTask
erstellen oder das Routing auf Warteschlangenebene konfigurieren. Die CreateTask
-Methode umfasst die Angabe des Routings für die Aufgabe. Dies ist für Warteschlangen erforderlich, die noch keine Routinginformationen auf Warteschlangenebene haben. Informationen zum Erstellen von Aufgaben mit der Methode CreateTask
Routing auf Warteschlangenebene
Mit dem Routing auf Warteschlangenebene können Sie standardmäßige Routinginformationen für Aufgaben basierend auf der Warteschlange angeben, in der sie sich befinden. Sie können angeben, ob das Standard-Routing nur auf Aufgaben angewendet werden soll, die keine eigenen Routinginformationen haben, oder auf alle Aufgaben.
Wählen Sie das Routing auf Warteschlangenebene aus, wenn Sie Folgendes tun möchten:
- Aufgaben mit Standard-HTTP-Anfragen erstellen (nicht durch Erstellen des Aufgabenobjekts)
- Eine Warteschlange als Puffer vor einem Zieldienst verwenden
Der Ansatz pro Ziel
Das Routing auf Queueebene funktioniert am besten mit Architekturen, bei denen für jeden Zieldienst eine eigene Warteschlange verwendet wird. Mit diesem Modell haben Sie folgende Möglichkeiten:
- Aufgaben basierend auf ihrem Ziel verwalten (z. B. eine Gruppe von Aufgaben umleiten, wenn der Zieldienst ausgefallen ist)
- Alle Aufgaben in einer Warteschlange an dasselbe Ziel senden
- Aufgaben mit der Methode
BufferTask
erstellen, ohne das Aufgabenobjekt explizit zu erstellen
Überschreibungsverhalten auf Warteschlangenebene aktivieren und deaktivieren
Nachdem Sie das Routing auf Warteschlangenebene konfiguriert haben, können Sie festlegen, wann es erzwungen wird. Legen Sie dazu den UriOverrideEnforceMode der Warteschlange fest.
IF_NOT_EXISTS
: Das Routing auf Warteschlangenebene gilt nur, wenn eine Aufgabe keine eigenen Routinginformationen enthält. Verwenden Sie diese Einstellung, wenn die Aufgabenliste Aufgaben an verschiedene Ziele senden soll.ALWAYS
: Das Routing auf Warteschlangenebene gilt immer, auch wenn eine Aufgabe eigene Routinginformationen enthält. Alle Routinginformationen, die auf Aufgabenebene festgelegt sind, werden vom Routing auf Warteschlangenebene überschrieben. Verwenden Sie diese Einstellung, wenn Aufgaben in einer bestimmten Warteschlange dieselben Routinginformationen verwenden sollen.