Limiti di utilizzo

L'API Google Sheets è un servizio condiviso e applichiamo quote e limitazioni per proteggere le prestazioni complessive del sistema Google Workspace per tutti gli utenti.

Limiti di quota

Sebbene l'API Sheets non preveda limiti di dimensione rigidi per una richiesta API, gli utenti potrebbero riscontrare limiti dovuti a diversi componenti di elaborazione non controllati da Fogli Google. Per velocizzare le richieste, consigliamo un payload massimo di 2 MB.

L'API Sheets ha quote al minuto, che vengono ricaricate ogni minuto. Ad esempio, esiste un limite di richieste di lettura di 300 al minuto per progetto. Se la tua app invia 350 richieste in un minuto, le 50 richieste aggiuntive superano la quota e generano una risposta con codice di stato HTTP 429: Too many requests. In questo caso, devi utilizzare un algoritmo di backoff esponenziale. Dopo 1 minuto, puoi eseguire nuovamente le richieste.

La seguente tabella mostra i limiti delle richieste:

Quote
Richieste di lettura
Al minuto per progetto 300
Al minuto per utente per progetto 60
Richieste di scrittura
Al minuto per progetto 300
Al minuto per utente per progetto 60

Per informazioni dettagliate sui limiti dei file, vedi File archiviabili su Google Drive.

Comportamento e limitazioni

Quando utilizzi ((sheets_api_short)), tieni presente il seguente comportamento e le seguenti limitazioni che influiscono sulle quote:

  • Le richieste di lettura sono chiamate a qualsiasi metodo che recupera dati da un foglio di lavoro, ad esempio get o search. Le richieste di scrittura sono chiamate a qualsiasi metodo che modifica un foglio di lavoro, ad esempio update, clear o copyTo.

  • Gli utenti possono inviare più richieste contemporaneamente, a condizione che rientrino nel limite di quota. Ogni richiesta batch, inclusa qualsiasi richiesta secondaria, viene conteggiata come una richiesta API ai fini del limite di utilizzo.

  • Tutte le richieste di Fogli vengono applicate in modo atomico. ovvero, se una richiesta non è valida, l'intero aggiornamento non va a buon fine e nessuna delle modifiche (potenzialmente dipendenti) viene applicata.

  • Esiste un limite di tempo massimo per l'elaborazione di una richiesta API. Quando Fogli elabora una richiesta per più di 180 secondi, la richiesta restituisce un errore di timeout.

  • A condizione che tu rispetti le quote al minuto, non esiste un limite al numero di richieste che puoi effettuare al giorno.

Risolvi gli errori di quota basati sul tempo

Per tutti gli errori basati sul tempo (massimo N richieste ogni X minuti), consigliamo che il codice rilevi l'eccezione e utilizzi un backoff esponenziale troncato per assicurarsi che i dispositivi non generino un carico eccessivo.

Il backoff esponenziale è una strategia standard di gestione degli errori per le applicazioni di rete. Un algoritmo di backoff esponenziale riprova le richieste utilizzando tempi di attesa tra le richieste che aumentano in modo esponenziale, fino a un tempo di backoff massimo. Se le richieste non vanno ancora a buon fine, è importante che i ritardi tra le richieste aumentino nel tempo fino a quando la richiesta non va a buon fine.

Algoritmo di esempio

Un algoritmo di backoff esponenziale ritenta le richieste in modo esponenziale, aumentando il tempo di attesa tra i tentativi fino a un tempo di backoff massimo. Ad esempio:

  1. Effettua una richiesta all'API Google Sheets.
  2. Se la richiesta non va a buon fine, attendi 1 + random_number_milliseconds e riprova a inviare la richiesta.
  3. Se la richiesta non va a buon fine, attendi 2 + random_number_milliseconds e riprova a inviare la richiesta.
  4. Se la richiesta non va a buon fine, attendi 4 + random_number_milliseconds e riprova a inviare la richiesta.
  5. E così via, fino a un tempo di maximum_backoff.
  6. Continua ad attendere e riprovare fino al numero massimo di nuovi tentativi, ma non aumentare il periodo di attesa tra un tentativo e l'altro.

dove:

  • Il tempo di attesa è 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 inferiore o uguale a 1000. In questo modo si evitano casi in cui molti client vengono sincronizzati da una determinata situazione e tutti riprovano contemporaneamente, inviando richieste in onde sincronizzate. Il valore di random_number_milliseconds viene ricalcolato dopo ogni richiesta di riprova.
  • maximum_backoff dura in genere 32 o 64 secondi. Il valore appropriato dipende dal caso d'uso.

Il client può continuare a riprovare dopo aver raggiunto il tempo maximum_backoff. I nuovi tentativi dopo questo punto non devono continuare ad aumentare il tempo di backoff. Ad esempio, se un client utilizza un valore maximum_backoff di 64 secondi, dopo aver raggiunto questo valore, il client può riprovare ogni 64 secondi. A un certo punto, è necessario impedire ai client di effettuare ulteriori tentativi indefinitamente.

Il tempo di attesa tra i tentativi e il numero di tentativi dipendono dal caso d'uso e dalle condizioni di rete.

Prezzi

L'uso dell'API Google Sheets è disponibile senza costi aggiuntivi. Il superamento dei limiti delle richieste di quota non comporta costi aggiuntivi e il tuo account non viene fatturato.

Richiedi un aumento della quota

A seconda dell'utilizzo delle risorse del progetto, potresti voler richiedere un aggiustamento della quota. Le chiamate API di un service account sono considerate come se utilizzassero un singolo account. La richiesta di una quota modificata non ne garantisce l'approvazione. L'approvazione delle richieste di aggiustamento della quota che aumenterebbero in modo significativo il valore della quota può richiedere più tempo.

Non tutti i progetti hanno le stesse quote. Man mano che utilizzi sempre più Google Cloud nel tempo, i valori delle quote potrebbero dover aumentare. Se prevedi un aumento imminente e consistente dell'utilizzo, puoi richiedere un aggiustamento della quota in modo proattivo nella pagina Quote della console Google Cloud.

Per saperne di più, consulta le seguenti risorse: