Interfejs Drive Labels API jest usługą współdzieloną, więc stosujemy limity, aby mieć pewność, że wszyscy użytkownicy z niego korzystają, a także aby chronić ogólny stan ekosystemu Google Workspace.
W przypadku przekroczenia limitu otrzymasz zwykle 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 będzie limitu liczby żądań, które możesz przesłać w ciągu dnia.
Limity żądań znajdziesz w tej tabeli:
Limity | |||
---|---|---|---|
Żądania odczytu |
|
||
Żądania zapisu |
|
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 Drive Labels 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 Drive Labels 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