Sie können HTTP-Aufgaben mit der Methode BufferTask
oder CreateTask
erstellen. Auf dieser Seite finden Sie eine Anleitung zur Auswahl zwischen den beiden Methoden zum Erstellen von HTTP-Aufgaben.
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. In den meisten Anwendungsfällen muss das Aufgabenobjekt nicht explizit erstellt werden. Welche Methode am besten zum Erstellen von Aufgaben geeignet ist, hängt davon ab, ob die Warteschlange Routing auf Warteschlangenebene bietet.
Hinweise
Sehen Sie sich die folgende Liste von Anwendungsfällen an, um herauszufinden, ob welche für Sie zutreffen:
- Sie möchten Aufgaben mit der RPC API oder den Clientbibliotheken (statt mit der REST API) erstellen.
- Sie möchten Aufgaben als App Engine-Task-Objekte erstellen und nicht als typische Aufgabenobjekte für generische HTTP-Ziele, die App Engine-Ziele sein können oder nicht.
Wenn eine dieser Anforderungen auf Sie zutrifft, müssen Sie die Methode zum Erstellen von Aufgaben nicht auswählen, da nur eine Methode (die Methode CreateTask
) unterstützt wird. Rufen Sie die CreateTask
-Dokumentation für Ihren Aufgabentyp direkt auf:
Prüfen, ob die Warteschlange Routing auf Warteschlangenebene bietet
Führen Sie den folgenden gcloud CLI-Befehl in Ihrem Terminal aus:
gcloud tasks queues describe QUEUE_NAME
Ersetzen Sie
QUEUE_NAME
durch den Namen der Warteschlange.Suchen Sie in der Ausgabe nach dem Feld
httpTarget
und prüfen Sie, oburiOverride
festgelegt wurde.Enthält die Ausgabe eine Zeile für
uriOverride
und einen Wert fürhost
, dann bietet die Warteschlange Routing auf Warteschlangenebene. Informationen zur Auswahl der Methode zur Aufgabenerstellung finden Sie im Abschnitt Warteschlangen mit Routing auf Warteschlangenebene.Wenn die Ausgabe keine Zeile für
uriOverride
enthält oder in der BeschreibunguriOverride
keinhost
angegeben ist, hat die Warteschlange kein Routing auf Warteschlangenebene. Informationen zur Auswahl der Aufgabenerstellungsmethode 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 zur Aufgabenerstellung von den Routinganforderungen der Aufgabe ab:
- Für die Aufgabe gelten die gleichen Routinganforderungen wie auf Warteschlangenebene: Verwenden Sie
BufferTask
. Weitere Informationen zum Erstellen von Aufgaben mit der MethodeBufferTask
- Für die Aufgabe gelten andere Routinganforderungen als auf Warteschlangenebene: Legen Sie den UriOverrideEnforceMode der Warteschlange auf
IF_NOT_EXISTS
fest, um sicherzustellen, dass das Routing auf Warteschlangenebene für Aufgaben gilt, 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. Weitere Informationen zum Erstellen von Aufgaben mit der MethodeCreateTask
Warteschlangen ohne Routing auf Warteschlangenebene
Bei Warteschlangen ohne Routing auf Warteschlangenebene erstellen Sie Aufgaben mit der Methode CreateTask
(oder configure Sie das Routing auf Warteschlangenebene). Bei der Methode CreateTask
muss das Routing für die Aufgabe angegeben werden. Dies ist für Warteschlangen erforderlich, die noch keine Routinginformationen auf Warteschlangenebene haben. Weitere Informationen zum Erstellen von Aufgaben mit der Methode CreateTask
Informationen zum Routing auf Warteschlangenebene
Beim Routing auf Warteschlangenebene können Sie Standardroutinginformationen für Aufgaben basierend auf der Warteschlange angeben, in der sie sich befinden. Sie können angeben, ob das Standardrouting nur auf Aufgaben ohne eigene Routinginformationen oder auf alle Aufgaben angewendet werden soll.
Wählen Sie das Routing auf Warteschlangenebene aus, wenn Sie:
- Aufgaben mit Standard-HTTP-Anfragen erstellen, anstatt ein Aufgabenobjekt zu erstellen
- Warteschlange als Puffer vor einem Zieldienst verwenden
Der Ansatz pro Ziel
Das Routing auf Warteschlangenebene funktioniert am besten bei Architekturen, die für jeden Zieldienst eine einzige Warteschlange verwenden. Mit diesem Modell können Sie:
- Aufgaben anhand ihres Ziels verwalten (z. B. Weiterleitung einer Gruppe von Aufgaben, wenn der Zieldienst ausgefallen ist)
- Alle Aufgaben in einer Warteschlange an dasselbe Ziel senden
- Mit der Methode
BufferTask
Aufgaben 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, indem Sie den UriOverrideEnforceMode der Warteschlange konfigurieren.
IF_NOT_EXISTS
: Das Routing auf Warteschlangenebene gilt nur, wenn eine Aufgabe keine eigenen Routinginformationen enthält. Verwenden Sie diese Einstellung, wenn die Warteschlange Aufgaben an verschiedene Ziele weiterleiten können soll.ALWAYS
: Das Routing auf Warteschlangenebene gilt immer, auch wenn eine Aufgabe ihre eigenen Routinginformationen enthält. Alle auf Aufgabenebene festgelegten Routinginformationen werden durch das Routing auf Warteschlangenebene überschrieben. Verwenden Sie diese Einstellung, wenn Sie möchten, dass Aufgaben in einer bestimmten Warteschlange dieselben Routinginformationen verwenden.