L'API Google Sheets étant un service partagé, nous appliquons des quotas et des limites pour s'assurer qu'elle est utilisée de manière équitable par tous les utilisateurs et pour protéger l'ensemble l'état du système Google Workspace.
Limites de quota
Bien que l'API Sheets n'impose aucune limite de taille pour une requête API, les utilisateurs peuvent être confrontés à des limites liées à différents composants de traitement non contrôlés par Sheets. Pour accélérer les requêtes, Google recommande une charge utile maximale de 2 Mo.
L'API Sheets a des quotas par minute, qui sont actualisés toutes les minutes. Par exemple, il existe une limite de 300 requêtes de lecture par minute et par projet.
Si votre application envoie 350 requêtes en une minute, les 50 requêtes supplémentaires dépassent le quota et génèrent une alerte
Réponse avec code d'état HTTP 429: Too many requests
. Dans ce cas, vous devez utiliser un
algorithme d'intervalle exponentiel entre les tentatives. Au bout d'une minute, vous
peut exécuter à nouveau des requêtes. Les utilisateurs peuvent envoyer plusieurs demandes en même temps, tant qu'ils ne dépassent pas la limite du quota.
Toutes les requêtes Sheets sont appliquées de manière atomique. Autrement dit, si une requête n'est pas valide, la mise à jour échoue dans son intégralité et aucune des modifications (potentiellement dépendantes) n'est appliquée.
<ph type="x-smartling-placeholder">Le tableau suivant détaille les limites de requêtes. Si vous respectez les quotas par minute, le nombre maximal de requêtes que vous pouvez envoyer par jour.
Quotas | |||||
---|---|---|---|---|---|
Requêtes de lecture |
|
||||
Requêtes d'écriture |
|
Pour en savoir plus sur les limites applicables aux fichiers, consultez Fichiers pouvant être stockés dans Google Drive.
Résoudre les erreurs de quota basées sur le temps
Pour toutes les erreurs temporelles (N requêtes maximum toutes les X minutes), nous recommandons votre code détecte l'exception et utilise un intervalle exponentiel entre les tentatives tronqué pour vous assurer que votre ne génèrent pas de charge excessive.
L'intervalle exponentiel entre les tentatives est une stratégie standard de traitement des erreurs pour les applications réseau. Une L'algorithme d'intervalle exponentiel entre les tentatives relance les requêtes en utilisant des temps d'attente croissants de manière exponentielle entre les requêtes, jusqu'à un intervalle maximal entre les tentatives. Si les demandes n'aboutissent toujours pas, important que les délais entre les requêtes augmentent au fil du temps jusqu’à ce que la requête aboutisse.
Exemple d'algorithme
Un algorithme d'intervalle exponentiel entre les tentatives relance les requêtes de manière exponentielle, en augmentant le temps d'attente entre les tentatives, jusqu'à un intervalle maximal entre les tentatives. Exemple :
- Envoyez une requête à l'API Google Sheets.
- Si la requête échoue, attendez 1 +
random_number_milliseconds
, puis réessayez. la demande. - Si la requête échoue, attendez 2 +
random_number_milliseconds
, puis réessayez. la demande. - Si la requête échoue, attendez 4 +
random_number_milliseconds
, puis réessayez. la demande. - Poursuivez ainsi jusqu'à atteindre la valeur
maximum_backoff
. - Continuez à attendre et à relancer la requête jusqu'à atteindre le nombre maximal de tentatives, mais n'augmentez pas le temps d'attente entre les tentatives.
où :
- Le temps d'attente est de
min(((2^n)+random_number_milliseconds), maximum_backoff)
. avecn
incrémenté de 1 pour chaque itération (requête). random_number_milliseconds
est un nombre aléatoire de millisecondes inférieur à ou égal à 1 000. Cela permet d'éviter les cas où de nombreux clients sont synchronisés par une situation donnée et tous effectuent une nouvelle tentative en même temps, en envoyant les requêtes de manière synchronisée les vagues. La valeur derandom_number_milliseconds
est recalculée après chaque nouvelle tentative de requête.- La valeur
maximum_backoff
est généralement définie sur 32 ou 64 secondes. La valeur appropriée dépend du cas d'utilisation.
Le client peut continuer à effectuer de nouvelles tentatives une fois l'heure maximum_backoff
atteinte.
Au-delà de ce point, il n'est pas nécessaire de continuer à augmenter la durée de l'intervalle exponentiel entre les tentatives. Pour
Par exemple, si un client utilise une durée maximum_backoff
de 64 secondes, une fois
cette valeur, le client peut réessayer toutes les 64 secondes. À un moment donné,
les clients ne doivent pas pouvoir effectuer
de nouvelles tentatives indéfiniment.
Le temps d'attente entre les tentatives et leur nombre dépendent de votre cas d'utilisation. et les conditions du réseau.
Tarifs
L'utilisation de l'API Google Sheets est disponible sans frais supplémentaires. Dépassement du quota les limites de requêtes n'entraînent aucuns frais supplémentaires et votre compte n'est pas facturé.
Demander une augmentation du quota
En fonction de l'utilisation des ressources de votre projet, vous pouvez demander un quota augmenter. Les appels d'API effectués par un compte de service sont considérés comme utilisant un seul compte. La demande d'augmentation de quota ne garantit pas l'approbation. Grande L'approbation des augmentations de quota peut prendre plus de temps.
Tous les projets ne sont pas soumis aux mêmes quotas. Alors que vous utilisez de plus en plus Google Cloud vous devrez peut-être augmenter vos quotas. Si vous vous attendez à ce que l'augmentation de l'utilisation, vous pouvez demander des ajustements de quotas sur la page Quotas dans la console Google Cloud.
Pour en savoir plus, consultez les ressources suivantes :
- À propos des demandes d'augmentation de quota
- Afficher votre utilisation actuelle et vos limites de quota
- Demander une limite de quota plus élevée