Python 2 wird von der Community nicht mehr unterstützt. Wir empfehlen die Migration von Python 2-Anwendungen zu Python 3.

Referenz zu queue.yaml

Regions-ID

REGION_ID ist ein Abkürzungscode, den Google basierend auf der Region zuweist, die Sie beim Erstellen Ihrer Anwendung ausgewählt haben. Der Code bezieht sich nicht auf ein Land oder eine Provinz, auch wenn einige Regionen-IDs häufig verwendeten Länder- und Provinzcodes ähneln. Das Einbinden von REGION_ID.r in App Engine-URLs ist für vorhandene Anwendungen optional und wird bald für alle neuen Anwendungen erforderlich sein.

Für einen reibungslosen Übergang wird App Engine nach und nach für die Verwendung von Regions-IDs aktualisiert. Wenn wir Ihr Google Cloud-Projekt noch nicht aktualisiert haben, wird für Ihre Anwendung keine Regions-ID angezeigt. Da die ID für vorhandene Anwendungen optional ist, müssen Sie keine URLs aktualisieren oder andere Änderungen vornehmen, sobald die Regions-ID für Ihre vorhandenen Anwendungen verfügbar ist.

Hier finden Sie weitere Informationen zu Regions-IDs.

In Anwendungen, in denen die Verwaltung von Warteschlangen mit dem App Engine SDK erfolgt, werden diese Warteschlangen in einer Konfigurationsdatei namens "queue.yaml" definiert. Sie können queue.yaml verwenden, um sowohl Push-Warteschlangen als auch Pull-Warteschlangen zu konfigurieren. Diese Konfigurationsdatei ist für Push-Warteschlangen, die eine Standardwarteschlange haben, optional. Pull-Warteschlangen müssen eigens in queue.yaml konfiguriert werden.

Beispiel

Das folgende grundlegende Beispiel definiert eine benannte Warteschlange und überschreibt die Standardverarbeitungsrate:

queue:
- name: my-push-queue
  rate: 1/s

Im Folgenden sehen Sie ein komplexeres Beispiel für eine queue.yaml-Konfiguration, die das Einrichten der Anzahl der Aufgabenversuche und das Ändern der Standardverarbeitungsrate veranschaulicht.

queue:
- name: fooqueue
  rate: 1/s
  retry_parameters:
    task_retry_limit: 7
    task_age_limit: 2d
- name: barqueue
  rate: 1/s
  retry_parameters:
    min_backoff_seconds: 10
    max_backoff_seconds: 200
    max_doublings: 0
- name: bazqueue
  rate: 1/s
  retry_parameters:
    min_backoff_seconds: 10
    max_backoff_seconds: 200
    max_doublings: 3

Syntax

Die Datei queue.yaml ist eine YAML-Datei, deren Stammanweisung queue lautet. Diese Anweisung enthält null oder mehr benannte Warteschlangen. In jeder Warteschlangendefinition können die folgenden Elemente angegeben sein:

Element Beschreibung
bucket_size Push-Warteschlangen

Optional Eine Aufgabenwarteschlange steuert die Ausführungsrate von Aufgaben mit dem Token-Bucket-Algorithmus. Jede benannte Warteschlange hat einen Token-Bucket mit Tokens, deren maximale Anzahl durch den Wert von bucket_size angegeben wird. Bei jeder Ausführung einer Aufgabe durch die Anwendung wird ein Token aus dem Bucket entnommen. Die Verarbeitung der Aufgaben in der Warteschlange wird fortgesetzt, bis keine Tokens mehr im Bucket der Warteschlange vorhanden sind. App Engine füllt den Bucket auf der Basis der Rate, die Sie für die Warteschlange angegeben haben, kontinuierlich mit neuen Tokens auf.

Wenn die Warteschlange viele Aufgaben enthält und die Rate hoch ist, wird die Verarbeitungsgeschwindigkeit der Warteschlange von der Bucket-Größe beschränkt. Der maximale Wert für die Bucket-Größe beträgt 500. So können Sie eine hohe Rate festlegen, damit eine Aufgabe sofort nach Einreihung in der Warteschlange verarbeitet wird, gleichzeitig jedoch die Ressourcennutzung beschränken, wenn viele Aufgaben innerhalb eines kurzen Zeitraums in die Warteschlange eingereiht werden.

Wenn Sie für eine Warteschlange keinen Wert für bucket_size festlegen, beträgt der Standardwert 5. Es empfiehlt sich, einen größeren Wert anzugeben, da die Standardgröße für viele Anwendungsfälle eventuell zu klein ist. Die empfohlene Größe ist die Verarbeitungsrate geteilt durch 5 (Rate/5).

Weitere Informationen zu diesem Element finden Sie in der vergleichenden Beschreibung von max_burst_size.

in der Cloud Tasks API-Referenz.
max_concurrent_requests Push-Warteschlangen

Optional Legt die maximale Anzahl von Aufgaben fest, die in der angegebenen Warteschlange gleichzeitig ausgeführt werden können. Bei dem Wert handelt es sich um eine ganze Zahl. Das Limit liegt standardmäßig bei 1.000 Aufgaben pro Warteschlange. Die empfohlene Obergrenze liegt bei 5.000 Aufgaben pro Warteschlange. Beachten Sie, dass die Warteschlangen möglicherweise langsam anlaufen, wenn sie neu erstellt oder längere Zeit nicht verwendet wurden.

Durch Beschränkung der Anzahl gleichzeitig ausgeführter Aufgaben können Sie die Ausführungsrate der Warteschlange besser kontrollieren und verhindern, dass zu viele Aufgaben gleichzeitig ausgeführt werden. Außerdem lassen sich damit Konflikte im Datenspeicher vermeiden und Ressourcen für andere Warteschlangen oder für die Onlineverarbeitung verfügbar machen.

Weitere Informationen zu diesem Element finden Sie in der vergleichenden Beschreibung von max_concurrent_dispatches in der Cloud Tasks API-Referenz.

mode

Optional Gibt den Warteschlangenmodus an. Für diese Einstellung ist standardmäßig push festgelegt, womit eine Warteschlange als Push-Warteschlange gekennzeichnet wird. Wenn Sie Pull-Warteschlangen verwenden möchten, wählen Sie den Modus pull aus.

name

Erforderlich Der Name der Warteschlange. Dies ist der Name, den Sie beim Aufrufen von QueueFactory.getQueue() angeben.

Ein Warteschlangenname kann Groß- und Kleinbuchstaben, Zahlen und Bindestriche enthalten. Warteschlangennamen dürfen maximal 100 Zeichen lang sein.

Alle Anwendungen haben eine Push-Warteschlange namens "default". Bei dieser Warteschlange ist eine Rate von 5 Aufgaben pro Sekunde voreingestellt, sie können Sie jedoch ändern, indem Sie in queue.yaml eine Standardwarteschlange definieren. Wenn Sie keine Standardwarteschlange in queue.yaml festlegen, wird die Warteschlange erst bei der ersten Verwendung in der Google Cloud Console angezeigt. Sie können die Einstellungen für diese Warteschlange anpassen, indem Sie eine Warteschlange mit dem Namen default definieren.

rate Push-Warteschlangen

Erforderlich Die Häufigkeit, mit der Aufgaben in dieser Warteschlange verarbeitet werden. Der Wert ist eine Zahl, nach der ein Schrägstrich und eine Zeiteinheit folgen: s für Sekunden, m für Minuten, h für Stunden oder d für Tage. Zum Beispiel gibt der Wert 5/m an, dass Aufgaben mit einer Rate von fünfmal pro Minute verarbeitet werden. Der Maximalwert für rate ist 500/s.

Wenn die Zahl 0 lautet (also 0/s), gilt die Warteschlange als "angehalten" und es werden keine Aufgaben verarbeitet.

Weitere Informationen zu diesem Element finden Sie in der vergleichenden Beschreibung von max_dispatches_per_second in der Cloud Tasks API-Referenz.

retry_parameters

Optional Konfiguriert Wiederholungsversuche für fehlgeschlagene Aufgaben in Push-Warteschlangen. Durch diese Ergänzung können Sie die maximale Anzahl an erneuten Versuchen für nicht ausgeführte Aufgaben in einer bestimmten Warteschlange angeben. Sie können auch ein Zeitlimit für Wiederholungsversuche festlegen und den Zeitabstand zwischen den Versuchen steuern.

Die Wiederholungsparameter können folgende Unterelemente enthalten:

task_retry_limit
Die Anzahl der Wiederholungen. Wenn beispielsweise 0 angegeben ist und die Aufgabe fehlschlägt, wird sie nicht wiederholt. Wenn 1 angegeben ist und die Aufgabe fehlschlägt, wird die Aufgabe einmal wiederholt. Wenn dieser Parameter nicht angegeben ist, wird die Aufgabe unbegrenzt wiederholt. Wenn task_retry_limit mit task_age_limit angegeben wird, wird die Aufgabe wiederholt, bis beide Limits erreicht sind.
task_age_limit Push-Warteschlangen
Das Zeitlimit für die Wiederholung einer fehlgeschlagenen Aufgabe, gemessen ab der ersten Ausführung der Aufgabe. Der Wert ist eine Zahl, auf die eine Zeiteinheit folgt: s für Sekunden, m für Minuten, h für Stunden oder d für Tage. Der Wert 5d gibt beispielsweise ein Zeitlimit von fünf Tagen nach dem ersten Ausführungsversuch der Aufgabe an. Falls dieser Parameter nicht angegeben ist, wird die Aufgabe unbegrenzt wiederholt. Bei Angabe mit task_retry_limit wiederholt App Engine die Ausführung der Aufgabe, bis beide Limits erreicht sind.
min_backoff_seconds Push-Warteschlangen
Die minimale Wartezeit in Sekunden, bevor eine fehlgeschlagene Aufgabe wiederholt wird. Der Standardwert ist 0.1.
max_backoff_seconds Push-Warteschlangen
Die maximale Wartezeit in Sekunden, bevor eine fehlgeschlagene Aufgabe wiederholt wird. Der Standardwert ist 3600.
max_doublings Push-Warteschlangen
Die maximale Häufigkeit, mit der das Intervall zwischen fehlgeschlagenen Aufgabenwiederholungen verdoppelt wird, bevor die Erhöhung konstant wird. Die Konstante lautet 2**max_doublings * min_backoff_seconds. Der Standardwert ist 16.
target Push-Warteschlangen

Optional Ein String mit dem Namen eines Dienstes/einer Version, einer Front-End-Version oder eines Back-Ends für die Ausführung aller Aufgaben in der jeweiligen Warteschlange. Der Standardwert ist ein leerer String.

Der String wird beim Erstellen der HTTP-Anfrage für eine Aufgabe dem Domainnamen der Anwendung vorangestellt. Beispiel: Wenn Ihre Anwendungs-ID my-app lautet und Sie das Ziel auf my-version-dot-my-service setzen, wird der URL-Hostname auf my-version-dot-my-service-dot-my-app.REGION_ID.r.appspot.com gesetzt.

Wird kein Ziel angegeben, werden Aufgaben in der gleichen Version der Anwendung aufgerufen, aus der sie in die Warteschlange gestellt wurden. Wenn Sie also eine Aufgabe aus der Standardversion der Anwendung in die Warteschlange stellen, ohne ein Ziel für die Warteschlange anzugeben, wird die Aufgabe in der Standardversion der Anwendung aufgerufen. Wenn sich die Standardversion der Anwendung zwischen dem Zeitpunkt, an dem die Aufgabe in die Warteschlange gestellt wurde, und dem Zeitpunkt ihrer Ausführung ändert, wird die Aufgabe in der neuen Standardversion ausgeführt.

Wenn Sie Dienste zusammen mit einer Weiterleitungsdatei verwenden, kann die HTTP-Anfrage der Aufgabe abgefangen und an einen anderen Dienst weitergeleitet werden.

Folgende Elemente können für alle Warteschlangen in einer Anwendung angegeben werden:

Element Beschreibung
total_storage_limit

Optional. Ein String, der das Standardlimit für das Speicherkontingent überschreibt, das für die Speicherung von Aufgabenwarteschlangen verfügbar ist (100 MB). Beispiel:


total_storage_limit: 1.2G
queue:
  - name: fooqueue

Dieses Kontingent ist Teil des Gesamtspeicherkontingents der Anwendung (einschließlich des Kontingents für Datenspeicher und Blobstore).

Wenn kein Suffix angegeben ist, wird die von Ihnen angegebene Zahl als Byte interpretiert. Folgende Suffixe werden unterstützt:

  • B (Byte)
  • K (Kilobyte)
  • M (Megabyte)
  • G (Gigabyte)
  • T (Terabyte)

Wenn total_storage_limit den gesamten für eine Anwendung verfügbaren Speicher überschreitet, wird das Limit auf den verfügbaren Speicher beschränkt.

Konfigurationsdatei für Warteschlangen erstellen

Die Datei queue.yaml sollte sich im Stammverzeichnis oder im Verzeichnis befinden, das den Standarddienst definiert.

Mit dem folgenden Befehl stellen Sie die Warteschlangenkonfigurationsdatei bereit:

gcloud

gcloud app deploy queue.yaml

appcfg

Wenn Sie das ursprüngliche App Engine SDK installiert haben, können Sie Folgendes ausführen:

appcfg.py update_queues [YOUR_APP_DIR]

Warteschlangen löschen

So löschen Sie eine Warteschlange:

  1. Entfernen Sie die Warteschlangendefinition aus der Datei queue.yaml.

  2. Laden Sie die Änderung in Ihre queue.yaml-Datei hoch.

    gcloud app deploy queue.yaml
    
  3. Löschen Sie die Warteschlange in der Cloud Console, wählen Sie die Warteschlange aus und klicken Sie auf Warteschlange löschen:

    Zur Seite "Aufgabenwarteschlangen"

Wenn Sie eine Warteschlange über die Cloud Console löschen, können Sie erst nach sieben Tagen eine Warteschlange mit dem gleichen Namen erstellen.