Auf dieser Seite wird gezeigt, wie Sie einen App Engine-Aufgaben-Handler erstellen. Der Aufgaben-Handler ist der Worker-Code, der App Engine-Aufgaben verarbeitet. Die Cloud Tasks-Warteschlange sendet HTTP-Anfragen an Ihren Aufgaben-Handler. Nach erfolgreicher Verarbeitung muss der Handler einen HTTP-Status zwischen 200
und 299
an die Warteschlange zurücksenden. Jeder andere Wert gibt an, dass die Aufgabe fehlgeschlagen ist und die Warteschlange die Aufgabe wiederholt.
Anfragen der App Engine Task Queue werden von der IP-Adresse 0.1.0.2
gesendet.
Weitere Informationen finden Sie unter IP-Bereich für Anfragen, die an die App Engine-Umgebung gesendet werden.
C#
Go
Java
Node.js
PHP
Python
Ruby
Zeitlimits
Für App Engine-Aufgaben sind bestimmte Zeitüberschreitungen festgelegt, die vom Skalierungstyp des Dienstes abhängen, der sie ausführt.
Für Worker-Dienste, die in der Standardumgebung ausgeführt werden:
- Automatische Skalierung: Die Verarbeitung der Aufgabe muss in zehn Minuten abgeschlossen sein.
- Manuelle und grundlegende Skalierungsanfragen können bis zu 24 Stunden ausgeführt werden.
Für Worker-Dienste, die in der flexiblen Umgebung ausgeführt werden: Alle Typen haben eine Zeitüberschreitung von 60 Minuten.
Wenn die Frist für Ihren Handler verstrichen ist, geht die Warteschlange davon aus, dass die Aufgabe fehlgeschlagen ist, und versucht die Ausführung noch einmal.
App Engine-Aufgabenanfrage-Header lesen
Anfragen, die von einer Cloud Tasks-Warteschlange an Ihren App Engine-Handler gesendet werden, haben spezielle Header, die aufgabenspezifische Informationen enthalten, die Ihr Handler möglicherweise verwenden möchte.
Diese Header werden intern festgelegt. Wenn einer dieser Header in einem externen Nutzer-Request an Ihre Anwendung vorhanden ist, wird dieser durch einen internen Header ersetzt. Eine Ausnahme sind Requests von angemeldeten Administratoren der Anwendung, die Header für Testzwecke angeben dürfen.
App Engine-Aufgabenanfragen enthalten immer die folgenden Header:
Header | Beschreibung |
---|---|
X-AppEngine-QueueName |
Der Name der Warteschlange. |
X-AppEngine-TaskName |
Der "kurze" Name der Aufgabe oder, wenn bei der Erstellung kein Name festgelegt wurde, eine vom System generierte eindeutige ID. Dies ist der my-task-id -Wert im vollständigen Aufgabennamen, z. B. task_name = projects/my-project-id/locations/my-location/queues/my-queue-id/tasks/my-task-id . |
X-AppEngine-TaskRetryCount |
Die Anzahl der Ausführungsversuche für die Aufgabe. Für den ersten Versuch lautet dieser Wert 0 . Diese Anzahl enthält Versuche, bei denen die Aufgabe aufgrund fehlender verfügbarer Instanzen fehlgeschlagen ist und die Ausführungsphase nicht erreicht wurde. |
X-AppEngine-TaskExecutionCount |
Die Anzahl der Ausführungen der Aufgabe, bei denen eine Antwort vom Handler empfangen wurde. Da Cloud Tasks eine Aufgabe löscht, sobald eine erfolgreiche Antwort empfangen wurde, sind alle vorherigen Handler-Antworten fehlgeschlagen. Für diesen Wert werden Fehler aufgrund fehlender verfügbarer Instanzen nicht berücksichtigt. X-AppEngine-TaskExecutionCount kann gleich X-AppEngine-TaskRetryCount sein, wenn es vor einem Ausführungsversuch aktualisiert wird. |
X-AppEngine-TaskETA |
Die geplante Zeit für eine Aufgabe, angegeben in Sekunden seit dem 1. Januar 1970. |
Wenn Ihr Anfrage-Handler einen der oben aufgeführten Header findet, kann er davon ausgehen, dass es sich bei der Anfrage um eine Cloud Tasks-Anfrage handelt.
Außerdem können Anfragen von Cloud Tasks die folgenden Header enthalten:
Header | Beschreibung |
---|---|
X-AppEngine-TaskPreviousResponse |
Der HTTP-Antwortcode aus der vorangegangenen Wiederholung. |
X-AppEngine-TaskRetryReason |
Der Grund für die Wiederholung der Aufgabe. |
X-AppEngine-FailFast |
Zeigt an, dass eine Aufgabe sofort fehlschlägt, wenn eine vorhandene Instanz nicht verfügbar ist. |
Ziel-Routing
Bei App Engine-Aufgaben werden die Warteschlange und der Aufgaben-Handler innerhalb desselben Google Cloud -Projekts ausgeführt. Der Traffic wird während des Transports verschlüsselt und verlässt die Google-Rechenzentren zu keinem Zeitpunkt. Sie können das Protokoll nicht explizit festlegen (z. B. HTTP oder HTTPS). Es erscheint jedoch so, als ob die Anfrage an den Handler das HTTP-Protokoll verwendet hätte.
Aufgaben können an sichere Aufgaben-Handler, unsichere Aufgaben-Handler und in unterstützten Laufzeiten an URIs mit der Einschränkung login: admin
weitergeleitet werden.
Da Aufgaben nicht im Namen von Nutzern ausgeführt werden, können sie nicht an URIs mit der Einschränkung login: required
weitergeleitet werden.
Auch folgen Aufgabenweiterleitungen nicht den sonstigen Weiterleitungen.
Nächste Schritte
- Weitere Informationen zu Aufgaben in der RPC-API-Referenz
- Weitere Informationen zu Aufgaben finden Sie in der Referenz zur REST API.