Auf dieser Seite wird gezeigt, wie Sie einen App Engine-Aufgaben-Handler, den
Worker-Code, der eine App Engine-Aufgabe verarbeitet. Cloud Tasks
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
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 den Handler verstrichen ist, geht die Warteschlange davon aus, dass die Aufgabe fehlgeschlagen ist und versucht.
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 an Ihre App senden, werden sie durch die internen Anfragen ersetzt. mit Ausnahme von Anfragen von angemeldeten Administratoren der Anwendung, die Header zu Testzwecken festlegen.
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 Wert my-task-id im vollständigen Aufgabennamen. Beispiel: task_name = projects/my-project-id/locations/my-location/queues/my-queue-id/tasks/my-task-id . |
X-AppEngine-TaskRetryCount |
Die Anzahl der Wiederholungsversuche 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 die Aufgabe löscht, sobald eine erfolgreiche Antwort eingegangen ist, 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 vor dem Versuch einer Ausführung 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 zuvor aufgelisteten Header findet, kann er Es wird davon ausgegangen, dass die Anfrage eine Cloud Tasks-Anfrage ist.
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). Die Anfrage an den Handler erscheint jedoch in das HTTP-Protokoll verwendet haben.
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 weitergeleitet werden.
eingeschränkt durch login: required
.
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.