Limity wykorzystania

Interfejs Google Formularzy API jest usługą współużytkowaną, dlatego stosujemy pewne limity, aby mieć pewność, że jest on wystarczająco wykorzystywany przez wszystkich użytkowników, a także aby chronić ogólny stan systemu Google Workspace.

Jeśli przekroczysz limit, zazwyczaj otrzymasz odpowiedź z kodem stanu HTTP 429: Too many requests. W takim przypadku użyj algorytmu wykładniczego ponowienia i spróbuj ponownie później. Jeśli zmieścisz się w poniższych limitach na minutę, nie ma ograniczeń co do liczby żądań, które możesz przesłać na dzień.

Uwaga: zegarki z formularzami mają dodatkowe ograniczenia. Więcej informacji znajdziesz w artykule Konfigurowanie i odbieranie powiadomień push.

Limity żądań znajdziesz w tej tabeli:

Limity
Żądania odczytu
Na dzień na projekt Bez limitu
Za minutę na projekt 975
Za minutę na użytkownika na projekt 390
Kosztowne żądania odczytu

(Używane w przypadku forms.responses.list żądań).

Na dzień na projekt Bez limitu
Za minutę na projekt 450
Za minutę na użytkownika na projekt 180
Żądania zapisu
Na dzień na projekt Bez limitu
Za minutę na projekt 375
Za minutę na użytkownika na projekt 150

Napraw błędy limitu zależne od czasu

W przypadku wszystkich błędów uzależnionych od czasu (maksymalnie N żądań na X minut) zalecamy, aby Twój kod wyłapał wyjątek i używał skróconego wykładniczego ponowienia, aby urządzenia nie wygenerowały nadmiernego obciążenia.

Wykładniczy czas ponowienia to standardowa strategia obsługi błędów w aplikacjach sieciowych. Algorytm wykładniczego ponowienia ponawia próbę żądań, zwiększając w sposób wykładniczy czas oczekiwania między żądaniami, aż do osiągnięcia maksymalnego czasu do ponowienia. Jeśli żądania nadal nie są realizowane, ważne jest, aby opóźnienia między żądaniami wzrastały z czasem do momentu zrealizowania prośby.

Przykładowy algorytm

Algorytm wykładniczego ponowienia powoduje wykładnicze ponowne wysyłanie żądań, co zwiększa czas oczekiwania między kolejnymi próbami do osiągnięcia maksymalnego czasu ponowienia. Na przykład:

  1. Wyślij żądanie do interfejsu Google Formularzy API.
  2. Jeśli żądanie się nie powiedzie, poczekaj 1 + random_number_milliseconds i spróbuj jeszcze raz.
  3. Jeśli żądanie się nie powiedzie, poczekaj 2 + random_number_milliseconds i spróbuj jeszcze raz.
  4. Jeśli żądanie się nie powiedzie, poczekaj 4 + random_number_milliseconds i spróbuj jeszcze raz.
  5. I tak dalej, do maximum_backoff raz.
  6. Zaczekaj i ponawiaj próby do maksymalnej liczby ponownych prób, ale nie wydłużaj czasu oczekiwania między kolejnymi próbami.

gdzie:

  • Czas oczekiwania wynosi min(((2^n)+random_number_milliseconds), maximum_backoff), a wartość n zwiększa się o 1 dla każdej iteracji (żądania).
  • random_number_milliseconds to losowa liczba milisekund,mniejsza lub równa 1000. Pomaga to uniknąć przypadków, w których wiele klientów jest zsynchronizowanych w pewnej sytuacji i wszystkie ponawiają próby jednocześnie, wysyłając żądania w zsynchronizowanych falach. Wartość random_number_milliseconds jest ponownie obliczana po każdym żądaniu ponowienia.
  • Wartość maximum_backoff wynosi zwykle 32 lub 64 sekundy. Odpowiednia wartość zależy od przypadku użycia.

Klient może kontynuować ponawianie próby po osiągnięciu maximum_backoff raza. Ponowne próby po tym punkcie nie muszą wydłużać czasu do ponowienia. Jeśli na przykład klient używa czasu maximum_backoff wynoszącego 64 sekundy, po osiągnięciu tej wartości klient może ponawiać próbę co 64 sekundy. W pewnym momencie należy zablokować klientom możliwość ponawiania prób w nieskończoność.

Czas oczekiwania między kolejnymi próbami i ich liczbą zależy od przypadku użycia i warunków sieci.

Ceny

Z interfejsu API Formularzy Google można korzystać bez dodatkowych opłat. Przekroczenie limitów liczby żądań limitu nie wiąże się z dodatkowymi opłatami, a konto nie jest obciążane.

Poproś o zwiększenie limitu

W zależności od wykorzystania zasobów w projekcie możesz poprosić o zwiększenie limitu. Uznaje się, że wywołania interfejsu API przez konto usługi korzystają z 1 konta. Zgłoszenie się o zwiększenie limitu nie gwarantuje jego zatwierdzenia. Zatwierdzenie dużego zwiększenia limitu może potrwać dłużej.

Nie wszystkie projekty mają takie same limity. W miarę jak z czasem korzystasz z Google Cloud, Twoje limity mogą być wyższe. Jeśli spodziewasz się znacznego wzrostu wykorzystania, możesz aktywnie poprosić o korektę limitów na stronie Limity w konsoli Google Cloud.

Więcej informacji znajdziesz w tych materiałach: