Limity wykorzystania

Interfejs Google Document API jest usługą współdzieloną, dlatego stosujemy limity i ograniczenia, aby zapewnić, że wszyscy użytkownicy będą wykorzystywali go w odpowiedni sposób, oraz aby chronić ogólny stan systemu Google Workspace.

Jeśli przekroczysz limit, zwykle otrzymasz odpowiedź z kodem stanu HTTP429: Too many requests. W takim przypadku należy użyć wzrastającego algorytmu zmniejszania częstotliwości i spróbować ponownie później.

W tabeli poniżej znajdziesz szczegółowe informacje o limitach żądań:

Limity
Żądania odczytu
Na minutę na projekt 3000
Na minutę na użytkownika na projekt 300
Żądania zapisu
Na minutę na projekt 600
Za minutę na użytkownika na projekt 60

Rozwiązywanie błędów związanych z limitem czasowym

W przypadku wszystkich błędów zależnych od czasu (maksymalnie N żądań na X min) zalecamy, aby Twój kod wyłapywał ten wyjątek i korzystał z obciętego wykładniczego czasu do ponowienia, aby urządzenia nie wygenerowały nadmiernego obciążenia.

Wzrostowy czas do ponowienia to standardowa strategia obsługi błędów w przypadku aplikacji sieciowych. Algorytm Exponential back-off powtarza żądania, używając wykładniczo rosnących czasów oczekiwania między żądaniami, aż do maksymalnego czasu oczekiwania. Jeśli żądania nadal są nieudane, ważne jest, by opóźnienia między żądaniami zwiększały się z czasem aż do ich pomyślnego rozpatrzenia.

Przykładowy algorytm

Algorytm Exponential Backoff powtarza żądania wykładniczo, zwiększając czas oczekiwania między próbami do maksymalnego czasu oczekiwania. Na przykład:

  1. Wyślij żądanie do interfejsu API Dokumentów Google.
  2. Jeśli prośba się nie powiedzie, odczekaj 1 + random_number_milliseconds i ponownie ją prześlij.
  3. Jeśli prośba nie powiedzie się, odczekaj 2 + random_number_milliseconds i spróbuj ponownie.
  4. Jeśli prośba zakończy się niepowodzeniem, odczekaj 4 + random_number_milliseconds i ponownie ją wyślij.
  5. I tak dalej, aż do maximum_backoff razy.
  6. Zaczekaj i ponawiaj próby aż do określonej maksymalnej liczby, ale nie wydłużaj okresu 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 przy każdej iteracji (żądaniu).
  • random_number_milliseconds to losowa liczba w milisekundach mniejsza lub równa 1000. Pomaga to uniknąć sytuacji, w której wiele klientów jest synchronizowanych w jakiejś sytuacji i wszystkie próbują ponownie od razu, wysyłając żądania w zsynchronizowanych falach. Wartość random_number_milliseconds jest obliczana ponownie po każdym ponownym żądaniu.
  • maximum_backoff wynosi zwykle 32 lub 64 sekund. Odpowiednia wartość zależy od przypadku użycia.

Klient może kontynuować próby po upływie czasu maximum_backoff. Ponowne próby po tym momencie nie muszą zwiększać czasu oczekiwania. Jeśli na przykład klient używa wartości maximum_backoff wynoszącej 64 sekundy, po osiągnięciu tej wartości może próbować ponownie co 64 sekundy. W pewnym momencie ponawianie próby w nieskończoność powinno być zablokowane.

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

Ceny

Korzystanie z interfejsu Google Docs API jest całkowicie bezpłatne. Przekroczenie limitu próśb o przekroczenie limitu nie powoduje dodatkowych opłat, a Twoje konto nie zostanie obciążone.

Poproś o zwiększenie limitu

W zależności od wykorzystania zasobów w projekcie możesz poprosić o zwiększenie limitu. Wywołania interfejsu API przez konto usługi są uznawane za używane z 1 konta. Zgłoszenie prośby 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ę zwiększania się wykorzystania Google Cloud może być konieczne zwiększenie limitów. Jeśli spodziewasz się zauważalnego wzrostu wykorzystania, możesz poprosić o korektę limitów na stronie Limity w konsoli Google Cloud.

Więcej informacji znajdziesz w tych materiałach: