Interfejs Google Drive API jest usługą współdzieloną, więc stosujemy limity, aby mieć pewność, że wszyscy użytkownicy będą z niego w równym stopniu korzystać, a także aby chronić ogólną wydajność systemu Google Workspace.
Powiadomienia dostarczane na adres określony podczas otwierania kanału powiadomień nie wliczają się do limitów. Wywołania metod changes.watch
, channels.stop
i files.watch
są jednak wliczane do limitu.
Jeśli przekroczysz limit, otrzymasz odpowiedź z kodem stanu HTTP 403: User rate limit
exceeded
. Dodatkowe kontrole limitu liczby żądań w backendzie Dysku mogą też generować odpowiedź 429: Too many
requests
. W takim przypadku użyj algorytmu wykładniczego wycofywania i spróbuj ponownie później. Jeśli zmieścisz się w poniższych limitach na minutę, nie będzie limitu liczby żądań, które możesz przesłać dziennie.
Limity zapytań znajdziesz w tej tabeli:
Limity | |||||
---|---|---|---|---|---|
Zapytania |
|
Napraw błędy limitu ograniczonego czasowo
W przypadku wszystkich błędów czasowych (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 powodowały nadmiernego obciążenia.
Wykładniczy czas ponowienia to standardowa strategia obsługi błędów w aplikacjach sieciowych. Algorytm wykładniczy ponawiania prób ponawiania żądań, w wyniku których rośnie wykładniczo czas oczekiwania między żądaniami aż do maksymalnego czasu do ponowienia. Jeśli żądania wciąż nie są realizowane, ważne jest, aby opóźnienia między żądaniami wzrastały w miarę upływu czasu do momentu ich zrealizowania.
Przykładowy algorytm
Algorytm wykładniczy ponawiania prób wykładniczych, wydłużając czas oczekiwania między kolejnymi próbami aż do osiągnięcia maksymalnego czasu do ponowienia. Na przykład:
- Wyślij żądanie do interfejsu Google Drive API.
- Jeśli żądanie się nie powiedzie, zaczekaj 1 +
random_number_milliseconds
i spróbuj jeszcze raz. - Jeśli żądanie się nie powiedzie, zaczekaj 2 +
random_number_milliseconds
i spróbuj jeszcze raz. - Jeśli żądanie się nie powiedzie, poczekaj 4 +
random_number_milliseconds
i spróbuj jeszcze raz. - I tak dalej, do
maximum_backoff
raz. - Zaczekaj i ponów próbę, maksymalnie 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)
, przy czymn
dla każdej iteracji (żądania) zwiększa się o 1. random_number_milliseconds
to losowa liczba milisekund,mniejsza lub równa 1000. Pomaga to uniknąć sytuacji, w której wielu klientów jest synchronizowanych w określonej sytuacji i wszystkie ponawiają próby jednocześnie, wysyłając żądania w zsynchronizowanych falach. Wartośćrandom_number_milliseconds
jest przeliczana po każdym ponownym żądaniu.maximum_backoff
to zwykle 32 lub 64 sekundy. Odpowiednia wartość zależy od przypadku użycia.
Klient może kontynuować ponawianie próby po osiągnięciu limitu maximum_backoff
.
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, to po osiągnięciu tej wartości klient może ponawiać próbę co 64 sekundy. W pewnym momencie klienty powinny utracić możliwość ponawiania prób w nieskończoność.
Czas oczekiwania między kolejnymi próbami a liczbą ponownych prób zależy od konkretnego przypadku użycia i warunków sieci.
Ceny
Z interfejsu Google Drive API można korzystać bez dodatkowych opłat. Przekroczenie limitów żą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. Wywołania interfejsu API przez konto usługi są uznawane za korzystające z jednego konta. Zgłoszenie do programu o zwiększonym limicie 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 będziesz korzystać z Google Cloud, Twoje limity mogą wymagać zwiększenia. 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:
- Prośby o zwiększenie limitu
- Wyświetlanie bieżącego wykorzystania limitu i związanych z nim limitów
- Wysyłanie prośby o zwiększenie limitu