Limity przydziału
Aby zapewnić sprawiedliwe korzystanie z interfejsów API Profilu Firmy w Google (GBP) i chronić stabilność systemu, obowiązują limity żądań do interfejsu API. Jeśli Twoje żądanie przekroczy limit przydziału, interfejs API odpowie kodem stanu HTTP
429 Too Many Requests (lub RESOURCE_EXHAUSTED w przypadku gRPC).
Domyślne limity przydziału
W tabeli poniżej znajdziesz standardowe limity przydziału interfejsów API Profilu Firmy w Google. Limity są definiowane w 2 wymiarach:
- Zapytania na minutę (QPM): chroni stabilność backendu, ograniczając krótkotrwały ruch.
- Zapytania dziennie (QPD): zarządza ogólnym dziennym wykorzystaniem platformy.
| Interfejs API | Limity |
|---|---|
| Business Information API |
|
| Interfejs API zarządzania kontem | 300 QPM |
| Performance API | 300 QPM |
| Verifications API | 300 QPM |
| Lodging API | 300 QPM |
| Interfejs API działań lokalnych | 300 QPM |
| Notifications API | 300 QPM |
Sprawdzone metody unikania błędów związanych z limitami
Równomierne rozłożenie żądań w ciągu dnia zapobiega większości błędów związanych z limitami. Postępuj zgodnie z tymi sprawdzonymi metodami, aby zapewnić niezawodną synchronizację danych w aplikacji.
Równomierne rozłożenie żądań
Zamiast wysyłać dużą partię żądań w tym samym czasie, rozłóż je na dłuższy okres. Na przykład limit 300 QPM oznacza średnio 5 żądań na sekundę. Wprowadzenie krótkiego opóźnienia między żądaniami zapobiega nagłym wzrostom ruchu.
Traffic distribution patterns:
Spiky traffic (Discouraged): High burst of requests followed by an idle period
Requests | ||| |||
| ||| |||
+---------------------------------
Time ──>
Even traffic (Recommended): Consistent rate of requests over time
Requests | | | | | | | | | |
| | | | | | | | | |
+---------------------------------
Time ──>import time # Pace requests to stay within the 300 QPM limit (5 requests/sec) for request in batch_requests: send_request(request) time.sleep(0.2) # 200ms delay ensures a smooth distribution
Wdrażanie wzrastającego czasu do ponowienia z losowym opóźnieniem
Gdy otrzymasz błąd 429 Too Many Requests, użyj
wzrastającego czasu do ponowienia z losowym opóźnieniem , aby automatycznie ponowić żądanie. Ta standardowa praktyka
polega na odczekaniu krótkiego, losowego okresu przed ponowieniem próby i stopniowym zwiększaniu opóźnienia
w przypadku kolejnych ponowień.
import random import time from googleapiclient.errors import HttpError def call_api_with_retry(api_method, max_retries=5): base_delay = 1.0 for attempt in range(max_retries): try: return api_method.execute() except HttpError as e: if e.resp.status == 429: if attempt == max_retries - 1: raise e # Retry with exponential backoff and jitter sleep_time = random.uniform(0, base_delay * (2 ** attempt)) time.sleep(sleep_time) else: raise e
Optymalizacja dostępu do danych
- Buforowanie danych statycznych: przechowuj dane, które rzadko się zmieniają, lokalnie, zamiast wielokrotnie wysyłać zapytania do interfejsu API.
- Używanie powiadomień Pub/Sub: subskrybuj powiadomienia Pub/Sub, aby na bieżąco aktualizować bazy danych bez sondowania interfejsu API.
-
Sekwencyjne przetwarzanie punktów końcowych z dużą liczbą odczytów: unikaj wykonywania wielu równoczesnych żądań
do punktów końcowych z dużą liczbą odczytów, takich jak
SearchListings. Zamiast tego przetwarzaj zadania sekwencyjnie za pomocą tokenów stronicowania.
Poproś o zwiększenie limitu
Zanim poprosisz o zwiększenie limitu, sprawdź wzorce wykorzystania w konsoli Google Cloud, aby upewnić się, że liczba żądań nie jest niepotrzebnie zgrupowana.
Zespół Profilu Firmy w Google monitoruje średnie wykorzystanie limitu, aby upewnić się, że efektywnie wykorzystujesz bieżące limity. Prośby o zwiększenie limitu są zwykle odrzucane, jeśli:
- aplikacja nie osiąga obecnego limitu QPM;
- średnie wykorzystanie jest mniejsze niż 50% obecnego limitu QPM;
- aplikacja wykazuje bardzo nieregularny wzorzec żądań zamiast równomiernego rozkładu.
Prześlij prośbę
Jeśli wdrożysz te sprawdzone metody i nadal potrzebujesz większego limitu, prześlij prośbę o zwiększenie limitu.
- W menu wybierz Prośba o zwiększenie limitu.
- Podaj nazwę firmy, adres e-mail kontaktu i numer projektu.
Gdy prześlesz formularz, zespół Profilu Firmy w Google sprawdzi Twoją prośbę i określi czy zwiększenie limitu jest odpowiednie. Jeśli prośba zostanie zatwierdzona, limit zostanie zwiększony. Jeśli prośba zostanie odrzucona, otrzymasz powód odrzucenia.