L'API Google Chat étant un service partagé, nous appliquons des quotas et des limites pour nous assurer que tous les utilisateurs l'utilisent de manière équitable 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 en réponse. 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 qui agissent dans cet espace et 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 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 de faire en sorte 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 de temporisation de retransmission 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 de temporisation de retransmission 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 la temporisation de retransmission soit atteinte. Exemple :
- Effectuez une requête auprès de 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ù ils effectuent tous une nouvelle tentative en même temps, en envoyant des requêtes par vagues synchronisées. La valeur derandom_number_millisecondsest recalculée après chaque nouvelle tentative de requête.- 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 notable de l'utilisation, vous pouvez anticiper cette évolution en demandant des ajustements de quota 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