Methode zur Aufgabenerstellung auswählen

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

  1. 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.

  2. Suchen Sie in der Ausgabe nach dem Feld httpTarget und prüfen Sie, ob uriOverride festgelegt wurde.

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 Methode BufferTask
  • 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 dann CreateTask. Mit dieser Methode können Sie ein individuelles Routing für die Aufgabe angeben. Weitere Informationen zum Erstellen von Aufgaben mit der Methode CreateTask

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.