Limiti di utilizzo

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
tra tutte le app di Chat nello spazio)

Letture al minuto

media.download

spaces.get

spaces.members.get

spaces.members.list

spaces.messages.get

spaces.messages.list

spaces.messages.attachments.get

spaces.messages.reactions.list

900

Scritture al minuto

media.upload

spaces.delete

spaces.patch

spaces.messages.create (si applica anche ai webhook in arrivo)

spaces.messages.delete

spaces.messages.patch

spaces.messages.reactions.create

spaces.messages.reactions.delete

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

spaces.messages.create

spaces.messages.patch

spaces.messages.delete

3000

Letture di messaggi al minuto

spaces.messages.get

spaces.messages.list

3000

Scritture iscrizioni al minuto

spaces.members.create

spaces.members.delete

300

Letture abbonamento al minuto

spaces.members.get

spaces.members.list

3000

Scritture spazi al minuto

spaces.setup

spaces.create

spaces.patch

spaces.delete

60

Letture dello spazio al minuto

spaces.get

spaces.list

spaces.findDirectMessage

3000

Scritture allegati al minuto

media.upload

600

Letture allegati al minuto

spaces.messages.attachments.get

media.download

3000

Scritture reazioni al minuto

spaces.messages.reactions.create

spaces.messages.reactions.delete

600

Letture delle reazioni al minuto

spaces.messages.reactions.list

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:

  1. Invia una richiesta all'API Google Chat.
  2. Se la richiesta non va a buon fine, attendi 1 + random_number_milliseconds e riprova la richiesta.
  3. Se la richiesta non va a buon fine, attendi 2 + random_number_milliseconds e riprova la richiesta.
  4. Se la richiesta non va a buon fine, attendi 4 + random_number_milliseconds e riprova la richiesta.
  5. E così via, fino a maximum_backoff volta.
  6. 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), con n 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 di random_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: