Referenz zu queue.yaml

Für Anwendungen, die das App Engine SDK zum Verwalten von Aufgabenwarteschlangen verwenden, werden diese Warteschlangen mithilfe einer Konfigurationsdatei namens queue.yaml definiert. In queue.yaml können Sie sowohl Push-Warteschlangen als auch Pull-Warteschlangen konfigurieren. Für Push-Warteschlangen ist diese Konfigurationsdatei optional, da sie eine Standardwarteschlange haben. Pull-Warteschlangen müssen eigens in queue.yaml konfiguriert werden.

Beispiel

Im Folgenden sehen Sie ein einfaches Beispiel, in dem eine benannte Warteschlange definiert und die standardmäßige Verarbeitungsrate überschrieben wird:

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

Das folgende Beispiel einer queue.yaml-Konfiguration ist etwas komplexer. Hier wird die Anzahl der Wiederholungsversuche für Aufgaben festgelegt und die standardmäßige Verarbeitungsrate geändert.

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 Root-Direktive queue ist. Diese Direktive 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 Aufruf 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 mit dem Namen "default". Für diese Warteschlange gilt eine voreingestellte Rate von fünf Aufgaben pro Sekunde. Diese Rate können Sie durch Definition einer Standardwarteschlange in queue.yaml ändern. Wenn Sie keine Standardwarteschlange in queue.yaml festlegen, wird die Warteschlange erst bei der ersten Verwendung in der Google Cloud Platform Console angezeigt. Sie können die Einstellungen für diese Warteschlange durch Definition einer Warteschlange mit dem Namen default anpassen.

rate (Push-Warteschlangen)

Erforderlich. Die Häufigkeit, mit der Aufgaben in dieser Warteschlange verarbeitet werden. Der Wert ist eine Zahl, gefolgt von einer Zeiteinheit, wobei die Einheit s für Sekunden, m für Minuten, h für Stunden und d für Tage steht. Der Wert 5/m gibt beispielsweise an, dass fünf Aufgaben pro Minute verarbeitet werden. Der Höchstwert für rate beträgt 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. Falls dieser Parameter nicht angegeben ist, wird die Aufgabe unbegrenzt wiederholt. Ist task_retry_limit mit task_age_limit angegeben, 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 dem Zeitpunkt der ersten Ausführung der Aufgabe. Der Wert ist eine Zahl, gefolgt von einer Zeiteinheit, wobei die Einheit s für Sekunden, m für Minuten, h für Stunden und d für Tage steht. Beispielsweise gibt der Wert 5d ein Limit von fünf Tagen ab dem ersten Ausführungsversuch der Aufgabe an. Falls dieser Parameter nicht angegeben ist, wird die Aufgabe unbegrenzt wiederholt. Ist task_retry_limit angegeben, wiederholt App Engine die Aufgabe, bis beide Limits erreicht sind.
min_backoff_seconds (Push-Warteschlangen)
Die Mindestwartezeit in Sekunden, bevor eine fehlgeschlagene Aufgabe wiederholt wird. Der Standardwert ist 0.1.
max_backoff_seconds (Push-Warteschlangen)
Die Höchstwartezeit in Sekunden, bevor eine fehlgeschlagene Aufgabe wiederholt wird. Der Standardwert ist 3600.
max_doublings (Push-Warteschlangen)
Die maximale Anzahl an Verdopplungen des Zeitabstands zwischen Wiederholungen fehlgeschlagener Aufgaben, bevor der Zeitabstand konstant bleibt. 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. Wenn Ihre Anwendungs-ID beispielsweise my-app lautet und das Ziel my-version.my-service ist, wird der URL-Hostname auf my-version.my-service.my-app.appspot.com festgelegt.

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 in dem Verzeichnis befinden, das den Standarddienst festlegt.

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 queue.yaml-Datei.

  2. Laden Sie die geänderte queue.yaml-Datei hoch.

    gcloud app deploy queue.yaml
    
  3. Löschen Sie die Warteschlange aus der GCP Console. Wählen Sie die Warteschlange aus und klicken Sie auf Warteschlange löschen:

    Zur Seite "Aufgabenwarteschlangen"

Wenn Sie eine Warteschlange aus der GCP Console löschen, können Sie diese erst nach sieben Tagen wieder mit dem gleichen Namen erstellen.

Hat Ihnen diese Seite weitergeholfen? Teilen Sie uns Ihr Feedback mit:

Feedback geben zu...

App Engine-Standardumgebung für Python 2