Methode zum Erstellen von Aufgaben auswählen

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

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

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.