Probleme und Einschränkungen

Auf dieser Seite werden einige der Probleme und Einschränkungen beschrieben, die bei der Verwendung von Cloud Tasks auftreten können.

Ausführungsreihenfolge

Mit Ausnahme von Aufgaben, deren Ausführung in der Zukunft geplant ist, spielt die Ausführungsreihenfolge in Aufgabenwarteschlangen keine Rolle. 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 vor älteren Aufgaben ausgeführt werden. Die diesbezüglichen Muster können sich ohne vorherige Mitteilung ändern.

Verzögerung bei der Ausführung

Bei der Ausführung von Cloud Tasks kann es aufgrund interner Systemneustarts gelegentlich zu geringfügigen Verzögerungen kommen, die in der Regel nur wenige Minuten dauern. Aufgaben werden verzögert, aber es gehen keine Aufgaben verloren. Dies sind Ereignisse auf Systemebene, für die es keine Problemumgehung gibt. Diese Ereignisse werden nicht protokolliert und es gibt keinen festgelegten Zeitrahmen für ihr Eintreten.

Doppelte Ausführung

Cloud Tasks folgt nach Möglichkeit der Regel der einmaligen Ausführung. Wenn jedoch ein Kompromiss zwischen garantierter und doppelter Ausführung erforderlich ist, entscheidet der Dienst zugunsten einer garantierten 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). Cloud Tasks reagiert auf diese Fehler, indem die Ausführung verlangsamt wird, bis die Fehler behoben sind. Diese Systemdrosselung verhindert eine Überlastung des Workers. Von Nutzern angegebene Einstellungen werden nicht geändert.

Eine Systemdrosselung tritt unter folgenden Umständen auf:

  • Cloud Tasks führt bei allen Fehlern einen Backoff durch. Normalerweise wird der in rate limits angegebene Backoff verwendet. Wenn der Worker jedoch HTTP 429 Too Many Requests oder 503 Service Unavailable zurückgibt oder die Fehlerrate hoch ist, verwendet Cloud Tasks eine höhere Backoff-Rate. Die im Retry-After-HTTP-Antwortheader angegebene Wiederholung wird berücksichtigt.

  • Um Traffic-Spitzen zu vermeiden und plötzliche Traffic-Anstiege auszugleichen, werden die Weiterleitungen langsam hochgefahren, wenn die Warteschlange neu erstellt wird oder inaktiv ist und wenn plötzlich eine große Anzahl von Aufgaben zur Weiterleitung verfügbar wird (aufgrund von Spitzen bei den Raten für das Erstellen von Aufgaben, der Warteschlange, die nicht pausiert wird, oder vielen Aufgaben, die gleichzeitig geplant sind).

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 die max_concurrent_dispatches 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_dispatches 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 ansehen

Wenn Sie mehr als 5.000 Aufgaben haben, sind einige Aufgaben in derGoogle Cloud -Konsole nicht sichtbar. Verwenden Sie die gcloud CLI, um alle Aufgaben aufzurufen.

Warteschlange mit demselben Namen neu erstellen

Wenn Sie eine Warteschlange löschen, müssen Sie drei Tage warten, bevor Sie sie mit demselben Namen neu erstellen können. Google Cloud Diese Wartezeit verhindert unerwartetes Verhalten bei Aufgaben, die zum Zeitpunkt des Löschens ausgeführt werden oder auf die Ausführung warten. Außerdem werden so Fehler bei internen Prozessen im Lösch- oder Neuerstellungszyklus vermieden.