Nutzungsbeschränkungen

Da die Google Formulare API ein gemeinsam genutzter Dienst ist, wenden wir Kontingente und Beschränkungen an, damit sie von allen Nutzern fair verwendet wird und um den Gesamtzustand des Google Workspace-Systems zu schützen.

Wenn Sie ein Kontingent überschreiten, erhalten Sie in der Regel den HTTP-Statuscode 429: Too many requests. Verwenden Sie in diesem Fall einen exponentiellen Backoff-Algorithmus und versuchen Sie es später noch einmal. Solange Sie die unten aufgeführten Kontingente pro Minute einhalten, ist die Anzahl der Anfragen, die Sie pro Tag stellen können, nicht begrenzt.

Hinweis:Für die Wiedergabezeit von Formularen gelten zusätzliche Beschränkungen. Weitere Informationen finden Sie unter Push-Benachrichtigungen einrichten und erhalten.

In der folgenden Tabelle sind die Anfragelimits aufgeführt:

Kontingente
Leseanfragen
Pro Tag und Projekt Unbegrenzt
Pro Minute und Projekt 975
Pro Minute, Nutzer und Projekt 390
Teure Leseanfragen

(Wird für forms.responses.list-Anfragen verwendet.)

Pro Tag und Projekt Unbegrenzt
Pro Minute und Projekt 450
Pro Minute, Nutzer und Projekt 180
Schreibanfragen
Pro Tag und Projekt Unbegrenzt
Pro Minute und Projekt 375
Pro Minute, Nutzer und Projekt 150

Fehler aufgrund von zeitbasierten Kontingenten beheben

Bei allen zeitbasierten Fehlern (maximal N Anfragen pro X Minuten) wird empfohlen, dass der Code die Ausnahme abfängt und einen abgeschnittenen exponentiellen Backoff verwendet, damit Ihre Geräte keine übermäßige Last generieren.

Der exponentielle Backoff ist eine standardmäßige Fehlerbehandlungsstrategie für Netzwerkanwendungen. Ein exponentieller Backoff-Algorithmus wiederholt Anfragen mit exponentiell zunehmenden Wartezeiten zwischen Anfragen bis zur maximalen Backoff-Zeit. Wenn Anfragen immer noch nicht erfolgreich sind, ist es wichtig, dass die Verzögerungen zwischen Anfragen im Laufe der Zeit zunehmen, bis die Anfrage erfolgreich ist.

Beispielalgorithmus

Ein exponentieller Backoff-Algorithmus wiederholt Anfragen exponentiell und verlängert dabei die Wartezeit zwischen Wiederholungen bis zur maximalen Backoff-Zeit. Beispiel:

  1. Senden Sie eine Anfrage an die Google Formulare API.
  2. Wenn die Anfrage fehlschlägt, wird auf „1 + random_number_milliseconds“ gewartet, bevor die Anfrage wiederholt wird.
  3. Wenn die Anfrage fehlschlägt, wartet das System auf „2 + random_number_milliseconds“ und wiederholt dann die Anfrage.
  4. Wenn die Anfrage fehlschlägt, wartet das System auf „4 + random_number_milliseconds“ und wiederholt dann die Anfrage.
  5. Und so weiter bis zur maximum_backoff-Zeit.
  6. Warten Sie weiter und wiederholen Sie die Wiederholungsversuche bis zu einer bestimmten maximalen Anzahl von Wiederholungsversuchen. Erhöhen Sie jedoch nicht die Wartezeit zwischen den Wiederholungsversuchen.

wobei

  • Die Wartezeit beträgt min(((2^n)+random_number_milliseconds), maximum_backoff), wobei n bei jedem Durchlauf (Anfrage) um 1 erhöht wird.
  • random_number_milliseconds ist eine zufällige Anzahl von Millisekunden,die kleiner oder gleich 1.000 ist. Dadurch wird vermieden, dass in bestimmten Situationen viele Clients synchronisiert werden und alle gleichzeitig Anfragen wiederholen und Anfragen in synchronisierten Wellen senden. Der Wert von random_number_milliseconds wird nach jeder Wiederholungsanfrage neu berechnet.
  • maximum_backoff ist normalerweise 32 oder 64 Sekunden lang. Der geeignete Wert hängt vom Anwendungsfall ab.

Der Client kann den Vorgang wiederholen, nachdem er die maximum_backoff-Zeit erreicht hat. Nach diesem Zeitpunkt muss die Backoff-Zeit nicht mehr verlängert werden. Wenn ein Client beispielsweise eine maximum_backoff-Zeit von 64 Sekunden verwendet, kann er es nach Erreichen dieses Werts alle 64 Sekunden noch einmal versuchen. Sie sollten verhindern, dass Clients es irgendwann noch einmal auf unbestimmte Zeit versuchen.

Die Wartezeit zwischen den Wiederholungsversuchen und die Anzahl der Wiederholungen hängen von Ihrem Anwendungsfall und den Netzwerkbedingungen ab.

Preise

Die Nutzung der Google Formulare API ist kostenlos. Bei Überschreitung der Anfragelimits für das Kontingent fallen keine zusätzlichen Kosten an und Ihr Konto wird nicht belastet.

Kontingenterhöhung anfordern

Abhängig von der Ressourcennutzung Ihres Projekts können Sie eine Kontingenterhöhung anfordern. Es wird davon ausgegangen, dass API-Aufrufe durch ein Dienstkonto ein einzelnes Konto nutzen. Wenn Sie ein höheres Kontingent beantragen, garantiert dies nicht, dass dies auch genehmigt wird. Bei großen Kontingenterhöhungen kann die Genehmigung länger dauern.

Es gelten nicht für alle Projekte dieselben Kontingente. Da Sie Google Cloud im Laufe der Zeit zunehmend nutzen, müssen Ihre Kontingente möglicherweise erhöht werden. Wenn Sie eine deutlich stärkere Auslastung erwarten, können Sie proaktiv auf der Seite „Kontingente“ der Google Cloud Console eine Anpassung Ihres Kontingents anfordern.

Weitere Informationen finden Sie in den folgenden Ressourcen: