Limity wykorzystania

Interfejs Events API w Google Workspace to usługa współdzielona, dlatego stosujemy limity i ograniczenia, aby zapewnić sprawiedliwe korzystanie z niej przez wszystkich użytkowników oraz chronić ogólną wydajność Google Workspace.

Jeśli przekroczysz limit, otrzymasz odpowiedź z kodem stanu HTTP 429: Too many requests. Dodatkowe kontrole limitu szybkości na zapleczu interfejsu Google Workspace Events API mogą też generować tę samą odpowiedź z błędem. Jeśli wystąpi ten błąd, użyj algorytmu wzrastającego czasu do ponowienia i spróbuj ponownie później. Dopóki nie przekroczysz limitów na minutę podanych w poniższych tabelach, nie ma limitu liczby próśb, które możesz przesłać w ciągu dnia.

Limity według projektu

Limity na projekt ograniczają częstotliwość zapytań w przypadku projektu Google Cloud, dlatego mają zastosowanie do pojedynczej aplikacji wywołującej określone metody interfejsu Google Workspace Events API w ramach każdego limitu.

W tabeli poniżej znajdziesz limity zapytań na projekt. Te limity znajdziesz też na stronie Limity w konsoli Google Cloud.

Limit na projekt

Metody Google Workspace Events API

Limit

Pisanie na minutę

Subscriptions.create

Subscriptions.patch

Subscriptions.delete

Subscriptions.reactivate

600

Zapisy na minutę na użytkownika

Subscriptions.create

Subscriptions.patch

Subscriptions.delete

Subscriptions.reactivate

100

Odczyty na minutę

Subscriptions.get

Subscriptions.list

600

Odczyty na minutę na użytkownika

Subscriptions.get

Subscriptions.list

100

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

W przypadku wszystkich błędów związanych z czasem (maksymalnie N żądań na X minut) zalecamy, aby kod przechwytywał wyjątki i używał odciętej ujemnej funkcji wykładniczej, aby urządzenia nie generował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 nie są skuteczne, ważne jest, aby opóźnienia między żądaniami zwiększały się z czasem, aż żądanie zostanie zrealizowane.

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. Prześlij żądanie do interfejsu Events API w Google Workspace.
  2. Jeśli prośba się nie powiedzie, odczekaj 1 + random_number_milliseconds i ponownie ją prześlij.
  3. Jeśli prośba się nie powiedzie, 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. Kontynuuj oczekiwanie i próby do maksymalnej liczby prób, ale nie wydłużaj czasu oczekiwania pomiędzy próbami.

gdzie:

  • Czas oczekiwania wynosi min(((2^n)+random_number_milliseconds), maximum_backoff), a wartość n zwiększa się o 1 za każdą iterację (żądanie).
  • 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 ponownie obliczana po każdym żądaniu ponownego próby.
  • 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 należy zablokować klientom możliwość nieograniczonego powtarzania prób.

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

Poproś o zwiększenie limitu na projekt

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 korzystanie z jednego konta. Wysłanie wniosku 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ę znacznego wzrostu wykorzystania, możesz poprosić o zmianę limitu na stronie Limity w konsoli Google Cloud.

Więcej informacji znajdziesz w tych materiałach: