Poiché l'API Google Chat è un servizio condiviso, applichiamo quote e limitazioni a assicurarsi che venga utilizzato in modo equo da tutti gli utenti e per proteggere le le prestazioni di Google Workspace.
Se superi una quota, riceverai un messaggio HTTP 429: Too many requests
codice di stato. Controlli aggiuntivi della limitazione di frequenza in Chat
potrebbe generare la stessa risposta di errore. Se si verifica questo errore,
dovrebbe utilizzare un
algoritmo di backoff esponenziale
e riprova più tardi. Purché rientri nelle quote al minuto elencate in
nelle tabelle seguenti, non c'è limite al numero di richieste che puoi effettuare
al giorno.
Ai metodi dell'API Chat si applicano due tipi di quota: per spazio e per progetto quote.
Quote per spazio
Le quote per spazio limitano la frequenza di query in un determinato spazio e vengono condivise tra tutte le app di Chat che operano in quello spazio che chiamano metodi dell'API Chat per ogni quota.
La seguente tabella elenca i limiti di query per spazio:
Quota per spazio |
Metodi dell'API Chat |
Limite (per 60 secondi, condiviso |
---|---|---|
Letture al minuto |
|
900 |
Scritture al minuto |
|
60 |
Quote per progetto
Le quote per progetto limitano la frequenza di query per un progetto Google Cloud, mentre si applicano a una singola app di Chat che chiama metodi dell'API Chat per ogni quota.
La seguente tabella mostra in dettaglio i limiti di query per progetto. Puoi anche trovare: questi limiti sulla pagina Quote.
Quota per progetto |
Metodi dell'API Chat |
Limite (ogni 60 secondi) |
---|---|---|
Scritture messaggi al minuto |
|
3000 |
Letture di messaggi al minuto |
|
3000 |
Scritture iscrizioni al minuto |
|
300 |
Letture abbonamento al minuto |
|
3000 |
Scritture spazi al minuto |
|
60 |
Letture dello spazio al minuto |
|
3000 |
Scritture allegati al minuto |
|
600 |
Letture allegati al minuto |
|
3000 |
Scritture reazioni al minuto |
|
600 |
Letture delle reazioni al minuto |
|
3000 |
Ulteriori limiti di utilizzo
Esistono limiti di quota aggiuntivi per la creazione di spazi di tipo GROUP_CHAT
oppure SPACE
(utilizzando il metodo spaces.create
o spaces.setup
).
Creare meno di 35 spazi al minuto e 210 spazi al minuto
ora di questi tipi. Gli spazi di tipo DIRECT_MESSAGE
non sono soggetti a questi requisiti
limiti di quota aggiuntivi.
Possono essere attivate query molto elevate al secondo (QPS) di qualsiasi API che ha come target lo stesso spazio limiti interni aggiuntivi che non sono visibili Quote.
Risolvere gli errori di quota basati sul tempo
Per tutti gli errori basati sul tempo (massimo N richieste per X minuti), consigliamo il codice rileva l'eccezione e utilizza un backoff esponenziale troncato per fare in modo che non generino un carico eccessivo.
Il backoff esponenziale è una strategia standard di gestione degli errori per le applicazioni di rete. Un L'algoritmo di backoff esponenziale prova a ripetere le richieste utilizzando tempi di attesa crescenti in modo esponenziale tra le richieste, fino a un tempo di backoff massimo. Se le richieste continuano a non andare a buon fine, è importante che i ritardi tra le richieste aumentino nel tempo fino all'esito positivo della richiesta.
Algoritmo di esempio
Un algoritmo con backoff esponenziale prova a ripetere le richieste in modo esponenziale, aumentando il tempo di attesa tra i nuovi tentativi e il tempo di backoff massimo. Ad esempio:
- Invia una richiesta all'API Google Chat.
- Se la richiesta non va a buon fine, attendi 1 +
random_number_milliseconds
e riprova la richiesta. - Se la richiesta non va a buon fine, attendi 2 +
random_number_milliseconds
e riprova la richiesta. - Se la richiesta non va a buon fine, attendi 4 +
random_number_milliseconds
e riprova la richiesta. - E così via, fino a
maximum_backoff
volta. - Continua ad attendere e riprovare fino al numero massimo di nuovi tentativi, ma non aumentare l'attesa tra un nuovo tentativo e l'altro.
dove:
- Il tempo di attesa è di
min(((2^n)+random_number_milliseconds), maximum_backoff)
, conn
incrementato di 1 per ogni iterazione (richiesta). random_number_milliseconds
è un numero casuale di millisecondi minore di o uguale a 1000. Ciò consente di evitare i casi in cui molti client vengono sincronizzati situazione e tutti riprovano contemporaneamente, inviando le richieste in tra le onde. Il valore dirandom_number_milliseconds
viene ricalcolato dopo ogni riprova a eseguire la richiesta.maximum_backoff
dura in genere 32 o 64 secondi. Il valore appropriato dipende dal caso d'uso.
Il client può continuare a riprovare una volta raggiunta la soglia (maximum_backoff
).
Non è necessario continuare ad aumentare il tempo di backoff per i nuovi tentativi successivi a questo punto. Per
Ad esempio, se un cliente utilizza un tempo maximum_backoff
di 64 secondi, dopo aver raggiunto
questo valore, il client può riprovare ogni 64 secondi. A un certo punto,
i client non dovrebbero più riprovare a tempo indeterminato.
Il tempo di attesa tra i nuovi tentativi e il numero di nuovi tentativi dipendono dal caso d'uso e alle condizioni della rete.
Richiedere un aumento della quota per progetto
A seconda dell'utilizzo delle risorse del progetto, potresti voler richiedere una quota aumentano. Per le chiamate API da parte di un account di servizio viene utilizzata un solo account. La richiesta di un aumento della quota non ne garantisce l'approvazione. Grande l'approvazione degli aumenti di quota può richiedere più tempo.
Non tutti i progetti hanno le stesse quote. Man mano che utilizzi sempre più Google Cloud potrebbe essere necessario aumentare le quote. Se prevedi un evento di successo di aumento dell'utilizzo, puoi proattivamente richiedere aggiustamenti della quota dalla pagina Quote nella console Google Cloud.
Per saperne di più, consulta le seguenti risorse:
- Informazioni sulle richieste di aumento della quota
- Visualizzare l'utilizzo e i limiti attuali delle quote
- Richiedere un limite di quota più elevato