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 liczby żądań w backendzie Google Chat może też generować tę samą odpowiedź z błędem. Jeśli wystąpi ten błąd, użyj algorytmu wykładniczego wycofywania i spróbuj ponownie później. Dopóki nie przekraczasz limitów na minutę wymienionych w tabelach poniżej, nie ma ograniczeń co do liczby żądań, które możesz wysłać dziennie.
Do metod interfejsu Chat API mogą mieć zastosowanie różne typy limitów: na projekt, na pokój i na użytkownika.
Limity na projekt
Limity na projekt ograniczają liczbę zapytań w projekcie Google Cloud i dlatego dotyczą pojedynczej aplikacji do czatu, która wywołuje określone metody interfejsu Chat API dla każdego limitu.
W tabeli poniżej znajdziesz szczegółowe informacje o limitach zapytań na projekt. Te limity znajdziesz też na stronie Limity.
Limit na projekt |
Metody interfejsu Chat API |
Limit (na 60 sekund) |
|---|---|---|
Liczba zapisów wiadomości na minutę |
|
3000 |
Liczba odczytów wiadomości na minutę |
|
3000 |
Liczba zapisów członkostwa na minutę |
|
300 |
Liczba odczytów członkostwa na minutę |
|
3000 |
Liczba zapisów pokoju na minutę |
|
60 |
Liczba odczytów pokoju na minutę |
|
3000 |
Liczba zapisów załączników na minutę |
|
600 |
Liczba odczytów załączników na minutę |
|
3000 |
Liczba zapisów reakcji na minutę |
|
600 |
Liczba odczytów reakcji na minutę |
|
3000 |
Liczba zapisów niestandardowych emoji na minutę |
|
600 |
Liczba odczytów niestandardowych emoji na minutę |
|
3000 |
Liczba zapisów sekcji na minutę |
|
600 |
Liczba odczytów sekcji na minutę |
|
3000 |
Liczba odczytów dostępności na minutę |
|
3000 |
Liczba zapisów dostępności na minutę |
|
3000 |
Limity na pokój
Limity na pokój ograniczają liczbę zapytań w danym pokoju i są współdzielone przez wszystkie aplikacje do czatu działające w tym pokoju, które wywołują wymienione metody interfejsu Chat API dla każdego limitu.
W tabeli poniżej znajdziesz szczegółowe informacje o limitach zapytań na pokój:
Limit na pokój |
Metody interfejsu Chat API |
Limit (na sekundę) |
|---|---|---|
Liczba odczytów na sekundę |
|
15 |
Liczba zapisów na sekundę |
|
1 |
Liczba zapisów tworzenia 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 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ę) |
|---|---|---|
Liczba zapisów niestandardowych emoji na sekundę |
|
1 |
Liczba odczytów niestandardowych emoji na sekundę |
|
15 |
Liczba zapisów na sekundę |
|
1 |
Liczba odczytów na sekundę |
|
15 |
Dodatkowe limity wykorzystania
Duży ruch w interfejsie API kierowany do tego samego pokoju 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 wykładniczego wycofywania, aby urządzenia nie generowały nadmiernego obciążenia.
Wykładnicze wycofywanie to standardowa strategia obsługi błędów w aplikacjach sieciowych. Algorytm wykładniczego wycofywania ponawia żądania, używając wykładniczo rosnących czasów oczekiwania między żądaniami, aż do maksymalnego czasu wycofywania. Jeśli żądania nadal się nie powiodą, ważne jest, aby opóźnienia między żądaniami z czasem się zwiększały, aż żądanie się powiedzie.
Przykładowy algorytm
Algorytm wykładniczego wycofywania ponawia żądania wykładniczo, zwiększając czas oczekiwania między ponowieniami aż do maksymalnego czasu wycofywania. Na przykład:
- Wyślij żądanie do interfejsu Google Chat API.
- Jeśli żądanie się nie powiedzie, odczekaj 1 +
random_number_millisecondsi ponów żądanie. - Jeśli żądanie się nie powiedzie, odczekaj 2 +
random_number_millisecondsi ponów żądanie. - Jeśli żądanie się nie powiedzie, odczekaj 4 +
random_number_millisecondsi ponów żądanie. - I tak dalej, aż do czasu
maximum_backoff. - Kontynuuj oczekiwanie i ponawianie prób aż do maksymalnej liczby ponowień, ale nie zwiększaj czasu oczekiwania między ponowieniami.
gdzie:
- Czas oczekiwania to
min(((2^n)+random_number_milliseconds), maximum_backoff), anjest zwiększane o 1 w każdej iteracji (żądaniu). random_number_millisecondsto losowa liczba milisekund mniejsza lub równa 1000. Pomaga to uniknąć sytuacji, w których wiele klientów jest zsynchronizowanych przez jakąś sytuację i wszyscy ponawiają próbę jednocześnie, wysyłając żądania w zsynchronizowanych falach. Wartośćrandom_number_millisecondsjest ponownie obliczana po każdym żądaniu ponowienia.maximum_backoffto zwykle 32 lub 64 sekundy. Odpowiednia wartość zależy od przypadku użycia.
Klient może kontynuować ponawianie prób po osiągnięciu czasu maximum_backoff.
Ponowienia po tym momencie nie muszą już zwiększać czasu wycofywania. Jeśli
na przykład klient używa czasu maximum_backoff wynoszącego 64 sekundy, 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 ponowieniami i liczba ponowień zależą od przypadku użycia i warunków sieciowych.
Wysyłanie prośby o zwiększenie limitu na projekt
W zależności od wykorzystania zasobów w projekcie możesz poprosić o zmianę limitu. Wywołania interfejsu API przez konto usługi są traktowane jako korzystanie z jednego konta. Wysłanie wniosku o zmianę limitu nie gwarantuje jego zatwierdzenia. Zatwierdzenie próśb o zmianę limitu, które znacznie zwiększyłyby jego wartość, może potrwać dłużej.
Nie wszystkie projekty mają te same limity. W miarę upływu czasu i zwiększania wykorzystania Google Cloud może być konieczne zwiększenie wartości limitu. Jeśli przewidujesz znaczny wzrost wykorzystania, możesz aktywnie poprosić o zmianę limitu na stronie Limity i ograniczenia systemu w konsoli Google Cloud.
Więcej informacji znajdziesz w tych materiałach:
- Informacje o dostosowywaniu limitów
- Wyświetlanie wykorzystania limitu i limitów
- Wysyłanie prośby o wyższy limit