Cloud Tasks

Auf dieser Seite werden Cloud Tasks-Aufgaben und -Warteschlangen sowie deren Verwendung beschrieben. Mit Cloud Tasks können Sie Aufgaben, die unabhängig vom Hauptanwendungsablauf ausgeführt werden können, trennen und asynchron mit von Ihnen erstellten Handlern zur Verarbeitung senden. Diese unabhängigen Aufgaben werden als Aufgaben bezeichnet. Beispielsweise müssen Sie eine Datenbank im Rahmen der Verarbeitung einer Nutzeranfrage aktualisieren, aber Aktualisierungen können zeitaufwendig sein. Wenn Sie dieses Detail als Aufgabe auslagern, können Sie schneller von der Anfrage zurückkehren.

Die ausgelagerte Aufgabe wird einer Warteschlange hinzugefügt, die die Aufgabe so lange fortbehält, bis sie erfolgreich ausgeführt wurde. Je nach Anfangskonfiguration kann die Warteschlange auch als Steuerung des Weiterleitungsablaufs dienen. Sie erstellen und konfigurieren die Warteschlange, die dann vom Cloud Tasks-Dienst verwaltet wird. Sobald Aufgaben hinzugefügt wurden, werden sie von der Warteschlange weitergeleitet und von den Mitarbeitern zuverlässig verarbeitet. Die mit diesem Prozess verbundenen Kosten, wie z. B. Kosten für die Latenz des Nutzers, Serverabstürze, Beschränkungen des Ressourcenverbrauchs und die Verwaltung von Wiederholungen, werden vom Dienst verarbeitet.

Cloud Tasks bietet „mindestens einmal“ Lieferung, Das heißt, wenn eine Aufgabe erfolgreich hinzugefügt wurde, liefert die Warteschlange sie mindestens einmal. In seltenen Fällen ist eine mehrfache Ausführung von Aufgaben möglich. muss sichergestellt werden, dass bei wiederholter Ausführung keine schädlichen Nebenwirkungen auftreten. Ihre Handler sollten idempotent ist.

Die Aufgaben selbst bestehen aus einem eindeutigen Namen und Konfigurationsinformationen sowie optional aus Daten der ursprünglichen Anfrage. Diese Informationen werden als Nutzlast bezeichnet, die zur Verarbeitung der Anfrage erforderlich ist. Da die Nutzlast im Anfragetext gesendet wird, müssen Aufgaben, die Nutzlasten enthalten, POST oder PUT als HTTP-Methode verwenden.

Für den Zugriff auf den Cloud Tasks-Dienst über die Cloud Tasks API benötigen Sie ein Google Cloud-Projekt.

Anwendungsfälle

Zu den typischen Anwendungsfällen gehören:

  • Beschleunigung von Nutzerreaktionszeiten durch Delegieren potenziell langsamer Hintergrundvorgänge wie Datenbankaktualisierungen an einen Worker
  • Beibehaltung von Anfragen bei unerwarteten Vorfällen im laufenden Betrieb
  • Ausgleich von Trafficspitzen durch Entfernen nicht nutzerbezogener Aufgaben aus der Hauptaufrufabfolge von Webseiten
  • API-Aufrufraten von Drittanbietern verwalten

Cloud Tasks-Warteschlangen mit HTTP-Zielen

Bei generischen HTTP-Zielen leitet der Cloud Tasks-Dienst Die Aufgabenanfrage an den Worker, die sich an einem beliebigen generischen HTTP-Endpunkt befindet, basierend auf wie die Aufgabe konfiguriert ist. Dieser Endpunkt kann sich auf Cloud Run-Funktionen, Cloud Run, GKE, Compute Engine oder sogar auf einem lokalen Webserver befinden, je nachdem, wie die Aufgabe konfiguriert ist. Diese Warteschlangen leiten Anfragen mit einer zuverlässigen, konfigurierbaren Rate weiter. Sie garantieren eine zuverlässige Aufgabenausführung: Bei Erfolg müssen alle Worker einen HTTP-Antwortcode (200-299) an den Cloud Tasks-Dienst senden, vor dem Standardzeitlimit von 10 Minuten und maximal 30 Minuten. Wird eine andere Antwort oder keine Antwort gesendet, wird die Aufgabe wiederholt.

HTTP-basierte Warteschlangen

Das Ziel muss das Skalieren von Workern und das Bereinigen von Aufgaben verwalten, sobald diese abgeschlossen sind.

Wenn für Ihr Ziel eine Authentifizierung erforderlich ist, müssen Sie zwei Dienstkonten einrichten, eines für Ihre Anwendung, den Client, und eines für die Warteschlange selbst. Beide Konten müssen die erforderlichen Berechtigungen haben. Außerdem muss eine Kennzeichnung für das Client-Dienstkonto in der Aufgabenanfrage enthalten sein. Weitere Informationen finden Sie unter Erstellen Sie HTTP Target-Aufgaben für mehr Informationen.

Cloud Tasks-Warteschlangen mit App Engine-Zielen

Cloud Tasks ist mit der folgenden App Engine kompatibel Umgebungen:

  • Laufzeiten der zweiten Generation für die App Engine-Standardumgebung
  • Flexible App Engine-Umgebung

Nutzer von App Engine-Laufzeiten der ersten Generation, die derzeit die Task Queue API verwenden, können zu Cloud Tasks migrieren. Weitere Informationen dazu finden Sie unter Von gebündelten Legacy-Diensten migrieren Nutzer von App Engine-Laufzeiten der ersten Generation, die den gebündelten Aufgabendienst nicht verwenden, können auf Laufzeiten der zweiten Generation umstellen, um Cloud Tasks zu verwenden.

Bei App Engine-Zielen leitet der Cloud Tasks-Dienst die Aufgabenanfrage auch an den Handler weiter, dieser Worker befindet sich jedoch innerhalb der App Engine. Alle Warteschlangen, die auf App Engine-Handler ausgerichtet sind, eine App Engine-Anwendung haben. Die Handler müssen in der Region ausgeführt werden, in der der Die App Engine-Anwendung wird ausgeführt. Diese Region dient auch als LOCATION_ID-Parameter für Ihre Cloud Tasks-Anfragen.

Die Aufgaben werden basierend auf der Art geroutet, wie die Aufgabe (oder seltener, der Warteschlange selbst) geroutet wird. konfiguriert ist. Die Warteschlangen leiten Anfragen mit einer zuverlässigen, konfigurierbaren Rate weiter. Sie garantieren eine zuverlässige Aufgabenausführung. Nach erfolgreicher Ausführung müssen alle Worker einen HTTP-Antwortcode 200–299 an den Cloud Tasks-Dienst senden, in diesem Fall innerhalb einer Frist, die auf dem Typ der Instanzskalierung basiert: 10 Minuten für die automatische Skalierung und bis zu 24 Stunden für die manuelle Skalierung. Wird eine andere Antwort oder keine Antwort gesendet, wird die Aufgabe wiederholt.

App Engine-basierte Warteschlangen

Da die Handler Teil von App Engine sind, sind die Cloud Tasks kann einen Großteil der Prozessverwaltung für die Aufgabe übernehmen, in Bezug auf den Traffic hoch- und herunterfahren und Aufgaben löschen, abgeschlossen.

Unterstützte Regionen nach Ziel

Wenn Ihr Ziel ein HTTP/S-Endpunkt ist, ist Cloud Tasks in allen unterstützten Google Cloud-Regionen verfügbar.

Wenn Ihr Ziel eine App Engine-Anwendung in der Aktuelles Projekt:

  • Eine auf App Engine ausgerichtete Aufgabe kann nur im Feld App Engine-Region

  • Ein Google Cloud-Projekt kann nur eine App Engine-Anwendung enthalten. Die Region, in der sich die App Engine-Anwendung befindet, kann nicht geändert werden. sobald die Anwendung erstellt ist.

  • App Engine ist regional. Das bedeutet, dass sich die Infrastruktur, in der Ihre Anwendung ausgeführt wird, in einer bestimmten Region befindet. Wenn Sie Compute- und Warteschlangen auf mehrere Regionen verteilen möchten, sollten Sie stattdessen einen HTTP/S-Endpunkt anvisieren.

  • Wenn Sie App Engine nicht als Ziel verwenden, müssen Sie eine App Engine-Anwendung bereitstellen und alle vorhandenen App Engine-Anwendung

Workflows

Dies ist der allgemeine Workflow:

  1. Sie erstellen einen Worker, um die Aufgaben zu bearbeiten.
  2. Sie erstellen eine Warteschlange.
  3. Sie erstellen programmgesteuert Aufgaben und fügen sie zur Warteschlange hinzu.
  4. Der Cloud Tasks-Dienst gibt eine Bestätigung an die ursprüngliche Anwendung zurück. Diese signalisiert, dass die Aufgabe erfolgreich in den Cloud Task-Speicher geschrieben wurde. Damit ist die Anfrage zur Aufgabenerstellung hochverfügbar und langlebig.
  5. Die Aufgabe wird an den Worker übergeben.
  6. Der Worker verarbeitet die Aufgabe.
  7. Zum Abschließen der Sequenz gibt der Worker den Erfolgsstatuscode 2xx an den Cloud Tasks-Dienst zurück.

Sobald die Aufgabe an die Warteschlange übergeben wurde, werden der ursprünglichen Anfrage keine Daten mehr zur Verfügung gestellt.

Produkte

Mit Cloud Tasks können Sie asynchrone Arbeitsaufgaben mit den folgenden Steuerelementen weiterleiten:

  • Bestimmte Lieferzeiten planen
  • Zustellungsraten verwalten
  • Wiederholungsprozess konfigurieren
  • Auf einzelne Aufgaben in einer Warteschlange zugreifen und verwalten
  • Deduplizierung von Aufgaben aktivieren

Nutzungsbedingungen

Die folgende Tabelle enthält wichtige Begriffe zur Beschreibung bestimmter Aspekte von Cloud Tasks.

Begriff Definition
Warteschlange Eine Reihe von Aufgaben mit demselben Zieltyp, die von einer einzelnen Konfiguration verwaltet werden.
Zieltyp Festlegung, wo und wie eine Aufgabe verarbeitet wird.
Worker Ein Dienst, der Aufgaben verarbeitet.
Versuch Ein Versuch, eine Aufgabe auszuführen.
Weiterleitung Der Zeitpunkt, an dem eine Aufgabe von Cloud Tasks an ihr Ziel gesendet wurde.
Antwort Eine Antwort von einem Worker, die angibt, dass die mit dem Aufgabe erfolgreich abgeschlossen oder fehlgeschlagen.
Wiederholen Mehrere Versuche, eine Aufgabe auszuführen. Die Anzahl der Wiederholungen wird über die Wiederholungskonfiguration festgelegt.
Ratenbegrenzungen Die Ratenbegrenzungen für eine Warteschlange.

Messwerte

Die folgenden vordefinierten Google Tasks-Messwerte sind mit Cloud Monitoring verfügbar.

Metriktyp
Anzeigename
Art, Typ, Einheit
Beschreibung
Labels
api/request_count
API-Anfragen
DELTA, INT64, 1
Anzahl der Cloud Tasks API-Aufrufe
api_method: Die aufgerufene API-Methode (z. B. CreateTask).
response_code: Kanonischer Antwortcode als String (z. B. "ok").
queue/depth
BETA-Warteschlangentiefe
GAUGE, INT64, 1
Anzahl der Aufgaben in der Warteschlange Alle 60 Sekunden wird eine Stichprobe erstellt. Nachher Stichprobenerhebung werden die Daten bis zu 120 Sekunden lang nicht angezeigt.
queue/task_attempt_count
Anzahl der Aufgabenversuche
DELTA, INT64, 1
Anzahl der Aufgaben, die über die Warteschlange versucht wurden zu senden, aufgeschlüsselt nach Antwortcode der Aufgabe.
response_code: Kanonischer Antwortcode als String (z. B. "ok").
queue/task_attempt_delays
Verzögerungen von Aufgabenversuchen
DELTA, DISTRIBUTION, ms
Verzögerung zwischen dem Zeitpunkt des geplanten Versuchs und des tatsächlichen Versuchs