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 |
|
||||
Żądania zapisu |
|
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:
- Wyślij żądanie do interfejsu API Dokumentów Google.
- Jeśli prośba się nie powiedzie, odczekaj 1 +
random_number_milliseconds
i ponownie ją prześlij. - Jeśli prośba nie powiedzie się, odczekaj 2 +
random_number_milliseconds
i spróbuj ponownie. - Jeśli prośba zakończy się niepowodzeniem, odczekaj 4 +
random_number_milliseconds
i ponownie ją wyślij. - I tak dalej, aż do
maximum_backoff
razy. - 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:
- Prośby o zwiększenie limitu
- Wyświetlanie bieżącego wykorzystania limitu i limitów
- Wysyłanie prośby o zwiększenie limitu