Auf dieser Seite erfahren Sie, wie Sie die Konfiguration der Standardeinstellungen für Zeitlimits überschreiben und wie Sie mit den Spanner-Clientbibliotheken eine Wiederholungsrichtlinie konfigurieren.
Die Clientbibliotheken verwenden die Standardeinstellungen für Zeitlimits und Wiederholungsversuche, die in den folgenden Konfigurationsdateien definiert sind.
- spanner_grpc_service_config.json
- spanner_admin_instance_grpc_service_config.json
- spanner_admin_database_grpc_service_config.json
In den Konfigurationsdateien wird die Standardzeitüberschreitung für Vorgänge festgelegt, die eine kurze
Zeit, z. B. CreateSession
, beträgt 30 Sekunden. Längere Vorgänge wie
wie Abfragen oder Lesevorgänge, haben ein Standardzeitlimit von 3.600 Sekunden. Wir empfehlen die Verwendung von
diese Standardeinstellungen. Sie können jedoch bei Bedarf ein benutzerdefiniertes Zeitlimit oder eine Wiederholungsrichtlinie in Ihrer Anwendung festlegen.
Wenn Sie das Zeitlimit ändern möchten, stellen Sie den Wert auf den Zeit, die die Anwendung so konfiguriert ist, dass sie auf das Ergebnis wartet.
Konfigurieren Sie keine Wiederholungsrichtlinie, die aggressiver ist als die Standardeinstellung, da zu viele Wiederholungen das Back-End überlasten und Ihre Anfragen gedrosselt werden können.
Für jedes Snippet ist eine Wiederholungsrichtlinie definiert, die Folgendes enthält: Eigenschaften:
- Die anfängliche oder Startwartezeit, bevor die Anfrage wiederholt wird.
- Eine maximale Verspätung.
- Ein Multiplikator, der mit der vorherigen Wartezeit verwendet wird, um die nächste Wartezeit zu berechnen, bis die maximale Wartezeit erreicht ist.
- Eine Reihe von Fehlercodes für Wiederholungsvorgänge.
Im folgenden Beispiel wird ein Zeitlimit von 60 Sekunden für den jeweiligen Vorgang festgelegt.
Wenn der Vorgang länger als dieses Zeitlimit dauert, schlägt er mit dem Fehler DEADLINE_EXCEEDED
fehl.
Wenn der Vorgang mit einem UNAVAILABLE
-Fehlercode fehlschlägt, z. B. bei einem vorübergehenden Netzwerkproblem, wird er wiederholt. Der Kunde
wartet 500 ms, bevor der erste Wiederholungsversuch gestartet wird. Wenn der erste Wiederholungsversuch
schlägt er 1,5 × 500 ms = 750 ms vor, bevor der zweite
noch einmal versuchen. Diese Verzögerung wird immer weiter erhöht, bis der Vorgang entweder erfolgreich abgeschlossen wird oder die maximale Verzögerung von 16 Sekunden erreicht wird. Der Vorgang schlägt fehl
mit einem DEADLINE_EXCEEDED
-Fehler, wenn die Gesamtzeit, die für das Testen des
Vorgang überschreitet das Gesamtzeitlimit von 60 Sekunden.