Wie können Push-Warteschlangentasks nach dem Einreihen so schnell wie möglich zur Ausführung geplant werden?Vermeiden von Ausführungsverzögerungen in Aufgabenwarteschlangen
Müssen wir stattdessen auf Cron-Jobs mit Pull-Warteschlangen zurückgreifen?
Wir sehen regelmäßig sehr lange Verzögerungen (20 Minuten) beim Ausführen von Aufgaben, die in unseren Push-Warteschlangen warten. Wir werden mehr als 6.000 Aufgaben in der Warteschlange sehen, von denen keine ausgeführt und in letzter Minute nicht ausgeführt wird. Dann werden die Tasks endlich ausgeführt und wir bekommen einen großen Burst-Spike, wenn die Warteschlange schnell leer ist.
Als Beispiel sieht eine Warteschlange Definition wie folgt:
<queue>
<name>example</name>
<target>1</target>
<rate>20/s</rate>
<bucket-size>40</bucket-size>
<max-concurrent-requests>10</max-concurrent-requests>
<retry-parameters>
<min-backoff-seconds>10</min-backoff-seconds>
<max-backoff-seconds>60</max-backoff-seconds>
<max-doublings>2</max-doublings>
</retry-parameters>
</queue>
Wir sehen gerade 2 Stunden Verzögerungen in Push Queues. @Eric - warum hätten Pull Queues eine Verzögerung? Ich dachte, ein dediziertes Backend könnte beliebig viele gewünschte Teile bearbeiten, ohne von der GAE-Aufgabenplanung abhängig zu sein. –
@Caster - Auch bei Pull-Warteschlangen muss das System die Aufgaben verfolgen, die hinzugefügt, geleast und gelöscht wurden. Wie schreibgeschützte Zeiträume in einem Master/Slave-Datenspeicher gibt es Zeiten, zu denen keine Leases ausgegeben werden. –