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.
App Engine-Anfragen an die Aufgabenwarteschlange werden von der IP-Adresse 0.1.0.2
gesendet.
Weitere Informationen finden Sie im Hilfeartikel 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 Flex-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 einer externen Nutzeranfrage an Ihre Anwendung vorhanden ist, wird dieser durch einen internen Header ersetzt. Eine Ausnahme sind Anfragen 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 Male, die die Aufgabe ausgeführt und eine Antwort vom Handler erhalten hat. 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. Hinweis: X-AppEngine-TaskExecutionCount kann mit X-AppEngine-TaskRetryCount übereinstimmen, wenn es aktualisiert wird, bevor eine Ausführung versucht wird. |
X-AppEngine-TaskETA |
Die geplante Zeit für eine Aufgabe, angegeben in Sekunden seit dem 1. Januar 1970. |
Wenn der Anfrage-Handler einen der oben aufgeführten Header erkennt, kann er davon ausgehen, dass es sich bei der Anfrage um eine Anfrage von Cloud Tasks 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 und unsichere Aufgaben-Handler sowie 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.