Limity wykorzystania

Interfejs Google Sheets API jest usługą ogólnodostępną, dlatego stosujemy limity i ograniczenia, aby mieć pewność, że wszyscy użytkownicy korzystają ze sprawiedliwego wykorzystania, oraz aby chronić ogólny stan systemu Google Workspace.

Limity

Interfejs Sheets API nie ma określonych limitów rozmiaru w przypadku żądań tego interfejsu, ale użytkownikom mogą się wyświetlać limity dotyczące różnych komponentów przetwarzanych, które nie są kontrolowane przez Arkusze. Aby przyspieszyć przetwarzanie żądań, Google zaleca maksymalny rozmiar ładunku wynoszący 2 MB.

Interfejs Sheets API ma limity na minutę i jest uzupełniany co minutę. Na przykład limit odczytu wynosi 300 na minutę na projekt. Jeśli Twoja aplikacja wysyła 350 żądań w ciągu minuty, dodatkowe 50 żądań przekracza limit i generuje odpowiedź z kodem stanu HTTP 429: Too many requests. W takim przypadku musisz użyć algorytmu wzrastającego czasu do ponowienia. Po minucie możesz ponownie wykonywać żądania. Użytkownicy mogą przesyłać wiele żądań jednocześnie, o ile nie przekraczają limitu.

Wszystkie żądania z Arkuszy są stosowane atomowo. Oznacza to, że jeśli któreś z żądań jest nieprawidłowe, aktualizacja się nie powiedzie i nie zostaną zastosowane żadne zmiany (potencjalnie zależne).

W tabeli poniżej znajdziesz szczegółowe informacje o limitach żądań. Nie ma limitu liczby żądań, które możesz przesłać dziennie.

Limity
Żądania odczytu
Za minutę na projekt 300
Za minutę na użytkownika i projekt 60
Żądania zapisu
Za minutę na projekt 300
Za minutę na użytkownika i projekt 60

Szczegółowe informacje o limitach plików znajdziesz w artykule Pliki, które możesz przechowywać na Dysku Google.

Popraw błędy dotyczące limitu czasu

W przypadku wszystkich błędów czasowych (maksymalnie N żądań w X minutach) zalecamy wychwycenie wyjątku i użycie skróconego wykładniczego ponowienia, aby zapewnić, że urządzenia nie będą generować nadmiernego obciążenia.

Wykładnicze wycofywanie to standardowa strategia obsługi błędów w aplikacjach sieciowych. Wykładniczy algorytm ponawiania prób ponawia próbę użycia żądań z użyciem wykładniczo wydłużającego czas oczekiwania między żądaniami, aż do osiągnięcia maksymalnego czasu do ponowienia. Jeśli żądania nadal nie są realizowane, muszą one rosnąć stopniowo, aż zostanie ono zrealizowane.

Przykładowy algorytm

Algorytmy wykładniczego ponawiania prób ponawiają próby, zwiększając czas oczekiwania między kolejnymi próbami do maksymalnego czasu ponowienia. Na przykład:

  1. Wyślij żądanie do interfejsu Google Sheets API.
  2. Jeśli żądanie się nie powiedzie, odczekaj 1 + random_number_milliseconds i spróbuj ponownie.
  3. Jeśli żądanie się nie powiedzie, odczekaj 2 + random_number_milliseconds i spróbuj jeszcze raz.
  4. Jeśli prośba się nie powiedzie, zaczekaj 4 + random_number_milliseconds i spróbuj jeszcze raz.
  5. I tak dalej, aż do maximum_backoff raza.
  6. Zaczekaj kilka razy i spróbuj jeszcze raz, ale nie wydłużaj okresu między kolejnymi próbami.

gdzie:

  • Czas oczekiwania wynosi min(((2^n)+random_number_milliseconds), maximum_backoff), a wartość n zwiększa się o 1 dla każdej iteracji (żądania).
  • random_number_milliseconds to losowa liczba milisekund mniejsza lub równa 1000. Pomaga to uniknąć sytuacji, w których wielu klientów jest zsynchronizowanych przez pewną sytuację, i wszystkich prób jednocześnie, wysyłając żądania w zsynchronizowanych falach. Wartość random_number_milliseconds jest ponownie obliczana po każdym żądaniu ponownej próby.
  • maximum_backoff zazwyczaj trwa 32 lub 64 sekundy. Odpowiednia wartość zależy od konkretnego przypadku użycia.

Po osiągnięciu maximum_backoff klient może spróbować ponownie. Po tym czasie kolejne próby nie muszą już zwiększać czasu do ponowienia. Jeśli np. klient używa ustawienia maximum_backoff przez 64 sekundy, po osiągnięciu tej wartości klient może próbować ponownie co 64 sekundy. Klienty powinny być w pewnym momencie zablokowane ponawianie próby 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 sieciowych.

Ceny

Z interfejsu Google Sheets API można korzystać bez dodatkowych opłat. Przekroczenie limitów żądania nie spowoduje naliczenia dodatkowych opłat, a konto nie zostanie obciążone.

Poproś o zwiększenie limitu

W zależności od wykorzystania zasobów projektu możesz poprosić o zwiększenie limitu. Wywołania interfejsu API z konta usługi są uznawane za 1 konto. Składanie 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. Ponieważ z czasem coraz częściej korzystasz z Google Cloud, konieczne może być zwiększenie limitów. Jeśli spodziewasz się znacznego wzrostu wykorzystania, możesz poprosić o dostosowanie limitów na stronie Limity w konsoli Google Cloud.

Więcej informacji znajdziesz w tych materiałach: