Da die Google Docs API ein gemeinsam genutzter Dienst ist, gelten Kontingente und Einschränkungen, damit sie von allen Nutzern fair genutzt wird und das Google Workspace-System insgesamt störungsfrei funktioniert.
Wenn Sie ein Kontingent überschreiten, erhalten Sie in der Regel den HTTP-Statuscode 429: Too many requests
. In diesem Fall sollten Sie einen exponentiellen Backoff-Algorithmus verwenden und es später noch einmal versuchen.
In der folgenden Tabelle sind die Anfragelimits aufgeführt:
Kontingente | |||||
---|---|---|---|---|---|
Leseanfragen |
|
||||
Schreibanfragen |
|
Zeitbasierte Kontingentfehler beheben
Bei allen zeitbasierten Fehlern (maximal N Anfragen pro X Minuten) empfehlen wir, dass der Code die Ausnahme abfängt und einen abgeschnittenen exponentiellen Backoff verwendet, damit Ihre Geräte keine übermäßige Last erzeugen.
Exponentielle Backoffs bilden eine Standard-Fehlerbehandlungsstrategie für Netzwerkanwendungen. Ein exponentieller Backoff-Algorithmus wiederholt Anfragen mit exponentiell zunehmenden Wartezeiten zwischen den Anfragen bis zur maximalen Backoff-Zeit. Wenn Anfragen immer noch nicht erfolgreich sind, ist es wichtig, dass die Verzögerungen zwischen Anfragen mit der Zeit größer werden, bis die Anfrage erfolgreich ist.
Beispielalgorithmus
Ein exponentieller Backoff-Algorithmus wiederholt Anfragen exponentiell und verlängert dabei die Wartezeit zwischen zwei Wiederholungen bis zur maximalen Backoff-Zeit. Beispiel:
- Stellen Sie eine Anfrage an die Google Docs API.
- Wenn die Anfrage fehlschlägt, wartet das System 1 +
random_number_milliseconds
Sekunden und wiederholt dann die Anfrage. - Wenn die Anfrage fehlschlägt, wartet das System 2 +
random_number_milliseconds
Sekunden und wiederholt dann die Anfrage. - Wenn die Anfrage fehlschlägt, wartet das System 4 +
random_number_milliseconds
Sekunden und wiederholt dann die Anfrage. - Und so weiter bis zur
maximum_backoff
-Zeit. - Das System wartet weiter und führt erneute Versuche bis zu einer maximalen Anzahl an Wiederholungsversuchen aus, jedoch ohne den zeitlichen Abstand zwischen zwei Versuchen zu erhöhen.
Dabei gilt:
- Die Wartezeit beträgt
min(((2^n)+random_number_milliseconds), maximum_backoff)
, wobein
bei jeder Iteration (Anfrage) um 1 erhöht wird. random_number_milliseconds
ist eine zufällige Anzahl von Millisekunden,die kleiner oder gleich 1.000 ist. So lassen sich Situationen vermeiden, in denen viele Clients synchronisiert werden und alle gleichzeitig Anfragen wiederholen und diese in synchronisierten Wellen senden. Der Wert vonrandom_number_milliseconds
wird nach jeder Anfragewiederholung neu berechnet.maximum_backoff
ist normalerweise 32 oder 64 Sekunden lang. Der geeignete Wert hängt vom jeweiligen Anwendungsfall ab.
Der Client kann den Vorgang wiederholen, nachdem er die maximum_backoff
-Zeit erreicht hat.
Die Backoff-Zeit muss dabei nicht mehr verlängert werden. Wenn ein Client beispielsweise eine maximum_backoff
-Zeit von 64 Sekunden verwendet, kann er nach Erreichen dieses Werts alle 64 Sekunden einen neuen Versuch starten. Sie sollten jedoch dafür sorgen, dass er dies nicht unbegrenzt tut.
Die Wartezeit zwischen Wiederholungen und die Anzahl der Wiederholungen hängen vom Anwendungsfall und den Netzwerkbedingungen ab.
Preise
Die Nutzung der Google Docs API ist kostenlos. Wenn Sie die Kontingentlimits für Anfragen überschreiten, fallen keine zusätzlichen Kosten an und es werden keine Kosten in Ihrem Konto in Rechnung gestellt.
Kontingenterhöhung anfordern
Je nach Ressourcennutzung Ihres Projekts können Sie eine Kontingenterhöhung beantragen. Es wird davon ausgegangen, dass API-Aufrufe durch ein Dienstkonto ein einzelnes Konto verwenden. Wenn Sie ein höheres Kontingent beantragen, bedeutet dies nicht automatisch, dass Ihr Antrag genehmigt wird. Bei großen Kontingenterhöhungen kann die Genehmigung länger dauern.
Es gelten nicht für alle Projekte dieselben Kontingente. Wenn Sie Google Cloud im Laufe der Zeit immer mehr nutzen, müssen Sie möglicherweise Ihre Kontingente erhöhen. Falls Sie eine deutlich stärkere Auslastung erwarten, können Sie auf der Seite Kontingente der Google Cloud Console eine Anpassung Ihres Kontingents anfordern.
Weitere Informationen finden Sie in den folgenden Ressourcen:
- Anfragen zur Kontingenterhöhung
- Aktuelle Kontingentnutzung und -limits aufrufen
- Höheres Kontingentlimit anfordern