Interfejs Google Chat API jest usługą współdzieloną, dlatego stosujemy limity i ograniczenia, aby zapewnić sprawiedliwe korzystanie z niego przez wszystkich użytkowników i chronić ogólną wydajność Google Workspace.
Jeśli przekroczysz limit, otrzymasz odpowiedź z kodem stanu HTTP 429: Too many requests. Dodatkowe sprawdzanie limitu żądań na backendzie usługi Chat może też generować tę samą odpowiedź o błędzie. Jeśli wystąpi ten błąd, użyj algorytmu wzrastającego czasu do ponowienia i spróbuj ponownie później. Jeśli nie przekroczysz limitów na minutę podanych w tabelach poniżej, możesz wysyłać nieograniczoną liczbę żądań dziennie.
Do metod interfejsu Chat API mogą mieć zastosowanie różne rodzaje limitów: limity na projekt, na pokój i na użytkownika.
Limity projektu
Limity dotyczące poszczególnych projektów ograniczają liczbę zapytań w projekcie Google Cloud, a tym samym dotyczą jednej aplikacji w Google Chat, która wywołuje określone metody interfejsu Chat API dla każdego limitu.
W tabeli poniżej znajdziesz limity zapytań dla poszczególnych projektów. Te limity znajdziesz też na stronie Limity.
Limit na projekt |
Metody interfejsu Chat API |
Limit (na 60 sekund) |
|---|---|---|
Zapisywanie wiadomości na minutę |
|
3000 |
Liczba odczytanych wiadomości na minutę |
|
3000 |
Zapisy dotyczące członkostwa na minutę |
|
300 |
Liczba odczytów w ramach subskrypcji na minutę |
|
3000 |
Zapisy w przestrzeni na minutę |
|
60 |
Odczyty przestrzeni na minutę |
|
3000 |
Zapisy załączników na minutę |
|
600 |
Odczyty załączników na minutę |
|
3000 |
Liczba zapisów reakcji na minutę |
|
600 |
Liczba odczytów reakcji na minutę |
|
3000 |
Zapisy CustomEmoji na minutę |
|
600 |
Odczyty niestandardowych emoji na minutę |
|
3000 |
Zapisy sekcji na minutę |
|
600 |
Odczyty sekcji na minutę |
|
3000 |
Limity dotyczące poszczególnych przestrzeni
Limity dotyczące poszczególnych pokoi ograniczają częstotliwość zapytań w danym pokoju i są współdzielone przez wszystkie aplikacje w Google Chat działające w tym pokoju, które wywołują wymienione metody interfejsu Chat API dla każdego limitu.
Tabela poniżej zawiera szczegółowe informacje o limitach zapytań w przestrzeni:
Limit na przestrzeń |
Metody interfejsu Chat API |
Limit (na sekundę) |
|---|---|---|
Odczyty na sekundę |
|
15 |
Zapisy na sekundę |
|
1 |
Operacje zapisu reakcji na sekundę |
|
5 |
Liczba zapisów wiadomości na sekundę podczas importowania danych do Google Chat |
|
10 |
Limity na użytkownika
Limity na użytkownika ograniczają liczbę zapytań użytkownika Google Chat. Zapytania dotyczą wszystkich aplikacji do obsługi czatu, które wywołują metodę interfejsu Chat API w imieniu użytkownika (przy użyciu uwierzytelniania użytkownika).
W tabeli poniżej znajdziesz szczegółowe informacje o limitach zapytań na użytkownika:
Limit na użytkownika |
Metody interfejsu Chat API |
Limit (na sekundę) |
|---|---|---|
Zapisy niestandardowych emoji na sekundę |
|
1 |
Odczyty niestandardowych emoji na sekundę |
|
15 |
Zapisy sekcji na sekundę |
|
1 |
Odczyty sekcji na sekundę |
|
15 |
Dodatkowe limity wykorzystania
Duży ruch w interfejsie API kierowany na tę samą przestrzeń może spowodować przekroczenie dodatkowych limitów wewnętrznych, które nie są widoczne na stronie Limity.
Rozwiązywanie błędów związanych z limitami czasowymi
W przypadku wszystkich błędów związanych z czasem (maksymalnie N żądań na X minut) zalecamy, aby kod przechwytywał wyjątek i używał skróconego wzrastającego czasu do ponowienia, aby urządzenia nie generowały nadmiernego obciążenia.
Wzrastający czas do ponowienia to standardowa strategia obsługi błędów w aplikacjach sieciowych. Algorytm wzrastającego czasu do ponowienia ponawia żądania z wykładniczo rosnącym czasem oczekiwania między żądaniami, aż do maksymalnego czasu do ponowienia. Jeśli żądania nadal są odrzucane, ważne jest, aby opóźnienia między żądaniami z czasem się zwiększały, aż żądanie zostanie zaakceptowane.
Przykładowy algorytm
Algorytm wzrastającego czasu do ponowienia ponawia żądania wykładniczo, zwiększając czas oczekiwania między ponownymi próbami aż do maksymalnego czasu do ponowienia. Na przykład:
- Wysyłanie żądania do interfejsu Google Chat API.
- Jeśli prośba się nie powiedzie, poczekaj 1 +
random_number_millisecondsi spróbuj ponownie. - Jeśli żądanie się nie powiedzie, poczekaj 2 +
random_number_millisecondsi spróbuj ponownie. - Jeśli prośba się nie powiedzie, poczekaj 4 +
random_number_millisecondsi spróbuj ponownie. - I tak dalej, aż do
maximum_backoffrazy. - Kontynuuj oczekiwanie i ponawianie prób do osiągnięcia maksymalnej liczby prób, ale nie wydłużaj czasu oczekiwania między próbami.
gdzie:
- Czas oczekiwania wynosi
min(((2^n)+random_number_milliseconds), maximum_backoff), a wartośćnjest zwiększana o 1 w przypadku każdej iteracji (żądania). random_number_millisecondsto losowa liczba milisekund mniejsza lub równa 1000. Pomaga to uniknąć sytuacji, w których wielu klientów jest synchronizowanych przez pewne zdarzenie i wszyscy ponawiają próbę w tym samym czasie, wysyłając żądania w zsynchronizowanych falach. Wartośćrandom_number_millisecondsjest ponownie obliczana po każdej próbie ponowienia.maximum_backoffwynosi zwykle 32 lub 64 sekundy. Odpowiednia wartość zależy od przypadku użycia.
Klient może ponawiać próby po osiągnięciu czasu maximum_backoff.
Ponowne próby po tym momencie nie muszą wydłużać czasu do ponowienia. Jeśli na przykład klient używa czasu maximum_backoff 64 sekund, po osiągnięciu tej wartości może ponawiać próbę co 64 sekundy. W pewnym momencie należy uniemożliwić klientom ponawianie prób w nieskończoność.
Czas oczekiwania między ponownymi próbami i liczba ponownych prób zależą od przypadku użycia i warunków sieciowych.
Prośba o zwiększenie limitu dla projektu
W zależności od wykorzystania zasobów w projekcie możesz poprosić o dostosowanie limitu. Wywołania interfejsu API przez konto usługi są traktowane jako korzystanie z jednego konta. Wysłanie wniosku o zwiększenie limitu nie gwarantuje jego zatwierdzenia. Zatwierdzenie próśb o dostosowanie limitu, które znacznie zwiększają jego wartość, może potrwać dłużej.
Nie wszystkie projekty mają takie same limity. W miarę upływu czasu i zwiększania wykorzystania Google Cloud wartości limitów mogą wymagać zwiększenia. Jeśli spodziewasz się znacznego wzrostu wykorzystania, możesz z wyprzedzeniem poprosić o zmianę limitów na stronie Limity w konsoli Google Cloud.
Więcej informacji znajdziesz w tych materiałach:
- Informacje o dostosowywaniu limitów
- Wyświetlanie bieżącego wykorzystania limitu i limitów
- Wysyłanie prośby o wyższy limit