Auf dieser Seite werden einige Probleme und Einschränkungen beschrieben, auf die Sie stoßen könnten. wenn Sie Cloud Tasks verwenden.
Ausführungsreihenfolge
Mit Ausnahme von Aufgaben, die in der Zukunft ausgeführt werden sollen, sind Aufgabenwarteschlangen die Ausführungsreihenfolge völlig plattformunabhängig ist. Die Ausführung von Aufgaben in einer bestimmten Reihenfolge kann weder garantiert noch erzwungen werden. Insbesondere gibt es keine Garantie, dass alte Aufgaben ausgeführt werden, solange eine Warteschlange nicht vollständig geleert wird. Es gibt eine Reihe von Fällen, in denen neuere Aufgaben früher ausgeführt werden als ältere Aufgaben, und die Muster, die dies umgeben, können sich ohne vorherige Ankündigung.
Doppelte Ausführung
Cloud Tasks folgt nach Möglichkeit der Regel der einmaligen Ausführung. In Situationen, in denen ein Design-Kompromiss zwischen garantiertem und doppelte Ausführung vorliegt, liegt der Dienst im Zweifelsfall eher Ausführung. In diesem Fall treten doppelte Ausführungen auf. Entwickler sollten entsprechende Maßnahmen ergreifen, um sicherzustellen, dass doppelte Ausführungen nicht zu katastrophalen Ereignissen führen. In der Produktion werden über 99,999 % der Aufgaben nur einmal ausgeführt.
Ressourceneinschränkungen
Der gängigste Grund für Rückstände in unmittelbaren Verarbeitungswarteschlangen ist die Erschöpfung der Ressourcen auf den Zielinstanzen. Wenn ein Nutzer versucht, auf Frontend-Instanzen, die nur zehn Anfragen pro Sekunde verarbeiten können, 100 Aufgaben pro Sekunde auszuführen, kommt es zu einem Rückstand. Dies äußert sich in der Regel auf eine von zwei Arten. Beides lässt sich normalerweise durch Erhöhen der Anzahl der Instanzen lösen, die Anfragen verarbeiten.
Backoff-Fehler und erzwungene Raten
Server können bei Überlastung Backoff-Fehler zurückgeben: HTTP 503
(für App Engine-Ziele) oder HTTP 429
oder 5xx
(für externe Ziele).
Als Reaktion auf diese Fehler verlangsamt Cloud Tasks die Ausführung, bis die Fehler behoben sind. Durch diese Systemdrosselung wird eine Überlastung des Workers verhindert. Hinweis
dass benutzerdefinierte Einstellungen
nicht geändert werden.
Die Systemdrosselung tritt unter folgenden Umständen auf:
Cloud Tasks hält alle Fehler zurück. Normalerweise wird die in
rate limits
angegebene Backoff-Zeit verwendet. Wenn der Worker jedoch HTTP429 Too Many Requests
oder503 Service Unavailable
zurückgibt oder die Fehlerrate hoch ist, verwendet Cloud Tasks eine höhere Backoff-Rate. Der imRetry-After
-HTTP-Antwortheader angegebene Wiederholungsversuch wird berücksichtigt.Um Trafficspitzen zu vermeiden und plötzliche Traffic-Anstiege auszugleichen, Weiterleitungen langsam anlaufen, wenn die Warteschlange neu erstellt wird oder inaktiv ist, und wenn sie groß ist wird plötzlich eine Vielzahl von Aufgaben für die Verteilung zur Verfügung gestellt (aufgrund von Spitzen in der Erstellung von Aufgabenraten, das Fortsetzen der Pausierung der Warteschlange oder viele Aufgaben, die am gleichzeitig).
Latenzspitzen und maximale Gleichzeitigkeit
Auch die Latenz kann sich bei überlasteten Servern drastisch erhöhen.
Anfragen bleiben in diesem Fall länger offen. Da in Warteschlangen eine maximale Anzahl von Aufgaben gleichzeitig ausgeführt wird, können Aufgaben gegebenenfalls nicht mit der erwarteten Rate ausgeführt werden. Wenn max_concurrent_tasks
zu niedrig gewählt und die Rate somit künstlich begrenzt wurde, kann eine Erhöhung dieses Werts für die betroffenen Warteschlangen Abhilfe schaffen. Eventuell zugrunde liegende Ressourcenprobleme lassen sich durch eine Erhöhung von max_concurrent_tasks
aber meist nicht beheben.
Erhöhungsprobleme mit lang andauernden Aufgaben
Cloud Tasks-Warteschlangen erhöhen ihre Ausgabe teilweise anhand der Anzahl der zuvor erfolgreich weitergeleiteten Aufgaben. Wenn der Aufgaben-Handler einen erheblichen Zeitraum – in der Größenordnung von Minuten – benötigt, um eine Aufgabe abzuschließen und eine Erfolgsantwort zurückzugeben, kann es zu einer Verzögerung bei der Erhöhungsrate der Warteschlange kommen.
Mehr als 5.000 Aufgaben werden angezeigt
Wenn Sie mehr als 5.000 Aufgaben haben, sind einige davon nicht in der Google Cloud Console gcloud CLI verwenden um alle Aufgaben zu sehen.