L'API Google Chat étant un service partagé, nous appliquons des quotas et des limites pour nous assurer qu'elle est utilisée de manière équitable par tous les utilisateurs et pour protéger les performances globales de Google Workspace.
Si vous dépassez un quota, vous recevrez un code d'état HTTP 429: Too many requests. Des vérifications supplémentaires de la limite de débit sur le backend Chat peuvent également générer la même réponse d'erreur. Si cette erreur se produit, vous
devez utiliser un
algorithme d'intervalle exponentiel entre les tentatives
et réessayer plus tard. Tant que vous respectez les quotas par minute indiqués dans les tableaux suivants, le nombre de requêtes que vous pouvez effectuer par jour n'est pas limité.
Plusieurs types de quotas peuvent s'appliquer aux méthodes de l'API Chat : quotas par projet, par espace et par utilisateur.
Quotas par projet
Les quotas par projet limitent le débit des requêtes pour un projet Google Cloud et s'appliquent donc à une seule application Chat qui appelle les méthodes d'API Chat spécifiées pour chaque quota.
Le tableau suivant détaille les limites de requêtes par projet. Vous pouvez également trouver ces limites sur la page Quotas.
Quota par projet |
Méthodes de l'API Chat |
Limite (par 60 secondes) |
|---|---|---|
Écritures de messages par minute |
|
3000 |
Lectures de messages par minute |
|
3000 |
Écritures d'adhésions par minute |
|
300 |
Lectures d'adhésions par minute |
|
3000 |
Écritures d'espaces par minute |
|
60 |
Lectures d'espaces par minute |
|
3000 |
Écritures de pièces jointes par minute |
|
600 |
Lectures de pièces jointes par minute |
|
3000 |
Écritures de réactions par minute |
|
600 |
Lectures de réactions par minute |
|
3000 |
Écritures de CustomEmoji par minute |
|
600 |
Lectures de CustomEmoji par minute |
|
3000 |
Écritures de sections par minute |
|
600 |
Lectures de sections par minute |
|
3000 |
Quotas par espace
Les quotas par espace limitent le débit des requêtes dans un espace donné et sont partagés entre toutes les applications Chat agissant dans cet espace qui appellent les méthodes d'API Chat listées pour chaque quota.
Le tableau suivant détaille les limites de requêtes par espace :
Quota par espace |
Méthodes de l'API Chat |
Limite (par seconde) |
|---|---|---|
Lectures par seconde |
|
15 |
Écritures par seconde |
|
1 |
Écritures de création de réactions par seconde |
|
5 |
Écritures de messages par seconde lors de l'importation de données dans Google Chat |
|
10 |
Quotas par utilisateur
Les quotas par utilisateur limitent le débit des requêtes pour un utilisateur Google Chat. Les requêtes concernent toutes les applications Chat qui appellent une méthode d'API Chat au nom d'un utilisateur (à l'aide de l'authentification de l'utilisateur).
Le tableau suivant détaille les limites de requêtes par utilisateur :
Quota par utilisateur |
Méthodes de l'API Chat |
Limite (par seconde) |
|---|---|---|
Écritures de CustomEmoji par seconde |
|
1 |
Lectures de CustomEmoji par seconde |
|
15 |
Écritures de sections par seconde |
|
1 |
Lectures de sections par seconde |
|
15 |
Limites d'utilisation supplémentaires
Un trafic d'API élevé ciblant le même espace peut déclencher des limites internes supplémentaires qui ne sont pas visibles sur la page Quotas.
Résoudre les erreurs de quota basées sur le temps
Pour toutes les erreurs basées sur le temps (maximum de N requêtes par X minutes), nous vous recommandons que votre code intercepte l'exception et utilise un intervalle exponentiel entre les tentatives tronqué pour vous assurer que vos appareils ne génèrent pas de charge excessive.
L'intervalle exponentiel entre les tentatives est une stratégie standard de traitement d'erreurs pour les applications réseau. Un algorithme d'intervalle exponentiel entre les tentatives relance les requêtes en augmentant de manière exponentielle le temps d'attente entre les requêtes jusqu'à ce que la durée maximale de l'intervalle soit atteinte. Si les requêtes échouent toujours, il est important que les délais entre les requêtes augmentent au fil du temps jusqu'à ce que la requête réussisse.
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'à ce que la durée maximale de l'intervalle exponentiel soit atteinte. Exemple :
- Envoyez une requête à l'API Google Chat.
- Si la requête échoue, attendez 1 +
random_number_milliseconds, puis relancez la requête. - Si la requête échoue, attendez 2 +
random_number_milliseconds, puis relancez la requête. - Si la requête échoue, attendez 4 +
random_number_milliseconds, puis relancez la requête. - Poursuivez ainsi jusqu'à atteindre la valeur
maximum_backoff. - Continuez à attendre et à réessayer jusqu'à un nombre maximal de tentatives, mais n'augmentez pas la période d'attente entre les tentatives.
où :
- Le temps d'attente est
min(((2^n)+random_number_milliseconds), maximum_backoff), avecnincrémenté de 1 pour chaque itération (requête). random_number_millisecondsest 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 et où tous réessayent en même temps, en envoyant des requêtes par vagues synchronisées. La valeur derandom_number_millisecondsest recalculée après chaque requête de nouvelle tentative.- La valeur
maximum_backoffest généralement définie sur 32 ou 64 secondes. La valeur appropriée dépend du cas d'utilisation.
Le client peut continuer à réessayer après avoir atteint la durée maximum_backoff.
Au-delà de ce point, il n'est pas nécessaire de continuer à augmenter la durée de l'intervalle exponentiel entre les tentatives. Par
exemple, si un client utilise une durée maximum_backoff de 64 secondes, il peut réessayer toutes les 64 secondes après avoir atteint
cette valeur. À un certain moment,
vous devez empêcher les clients d'effectuer des tentatives à l'infini.
Le temps d'attente entre les tentatives et le nombre de tentatives dépendent de votre cas d'utilisation et des conditions du réseau.
Demander une augmentation du quota par projet
Selon l'utilisation des ressources de votre projet, vous pouvez demander un ajustement de quota. Les appels d'API effectués par un compte de service sont considérés comme utilisant un seul compte. La demande d'ajustement de quota ne garantit pas l'approbation. Les demandes d'ajustement de quota qui augmenteraient considérablement la valeur du quota peuvent nécessiter plus de temps pour être approuvées.
Tous les projets ne sont pas soumis aux mêmes quotas. À mesure que vous utilisez Google Cloud au fil du temps, il peut être nécessaire d'augmenter les valeurs de vos quotas. Si vous prévoyez une augmentation significative de votre utilisation, vous pouvez anticiper cette évolution en demandant des ajustements de quotas sur la page Quotas de la console Google Cloud.
Pour en savoir plus, consultez les ressources suivantes :
- À propos des ajustements de quotas
- Afficher votre utilisation et vos limites de quotas actuelles
- Demander l'augmentation d'une limite de quota