2017-09-28 6 views
0

Je travaille pour un système d'information étudiant et nous utilisons l'API Admin SDK directory pour créer des districts scolaires Google Org Structures unitaires à partir de notre logiciel.Lorsque j'utilise l'API Admin SDK directory pour insérer des Unités Org, une erreur dailyLimitExceeded est renvoyée même si ce quota n'a pas été atteint.

POST https://www.googleapis.com/admin/directory/v1/customer/customerId/orgunits

Lors de la génération de ces demandes de l'API que nous recevons constamment des erreurs dailyLimitExceeded même lorsque le quota du district n'a pas été atteint. Cette erreur peut être contournée en ignorant l'erreur et en implémentant une routine de back-off exponentielle, mais je pense que cela agit beaucoup plus comme l'erreur quotaExceeded est destinée à agir plutôt que dailyLimitExceeded, en ce que la requête réussit ensuite sur la première tentative de cette demande.

En détail, le test que je viens de rencontrer Complété avec succès 9 de ces appels d'API, puis j'ai reçu cette réponse le 10:

Google.Apis.Requests.RequestError Limite de quota dépassé pour la journée. [403] Erreurs [Message [Limite de quota dépassée pour le jour.] Emplacement [-] Raison [dailyLimitExceeded] Domaine [usageLimits]

Depuis le début du lot d'appels d'API, il a fallu environ 10 secondes pour accéder au point où l'erreur s'est produite.

Merci pour votre aide!

Répondre

0

Ce que je suggère est de ralentir vos demandes d'API. Ne faites pas comme 10 demandes en 1 seconde. Donnez-lui un espace entre les demandes. Vous avez raison de mettre en œuvre exponential backoff. Aussi, si vous le pouvez, utilisez d'autres comptes pour faire des demandes.

+0

Désolé si ce n'était pas indiqué clairement, il a échoué sur la 10ème demande, et a pris 10 secondes pour atteindre ce point. Donc, il fait en moyenne environ 1 demande par seconde. Dans ce cas, je ne crois pas que l'utilisation de comptes supplémentaires serait appropriée car il s'agit d'une procédure d'installation unique pour les unités organisationnelles du domaine. Tout finit par fonctionner comme prévu tant que j'autorise dailyLimitExceeded comme code d'erreur réessayable dans le back-off exponentiel. Mon problème est que dailyLimitExceeded n'est pas une erreur réessayable. –