2016-07-11 17 views
1

Ich habe eine Knotenanwendung geschrieben, die die Gmail-API verwendet, als ich diesen Fehler bemerkte. Mein Verständnis des Fehlers ist, dass es zu viele gleichzeitige Anfragen gibt. Es scheint mich zu veranlassen, 15 Minuten zu warten und es erneut zu versuchen. Nach der Wartezeit habe ich versucht, die API mit der GUI bei https://developers.google.com/gmail/api/v1/reference/users/messages/list#response zu stoßen, aber der gleiche Fehler erscheint (mit der Zeit inkrementell 15 Minuten). Ich habe meine Kontingentnutzung auf der API-Site in der Developer Console untersucht, aber außer den Fehlern gibt es keine weiteren Aktivitäten. Weiß jemand, warum das so sein könnte? Ich wäre sehr dankbar.Gmail-API - 429 rateLimitExceeded mit einer einzigen Anfrage

{ 
"error": { 
    "errors": [ 
    { 
    "domain": "usageLimits", 
    "reason": "rateLimitExceeded", 
    "message": "User-rate limit exceeded. Retry after 2016-07-11T23:51:49.309Z" 
    } 
    ], 
    "code": 429, 
    "message": "User-rate limit exceeded. Retry after 2016-07-11T23:51:49.309Z" 
} 
} 
+1

Sie müssen Ihren Code posten – DaImTo

+0

Macht nichts, es scheint sich selbst gelöst zu haben. – Chase

Antwort

0

Die Gmail API unterliegt eine tägliche Nutzungsbeschränkung, die, wie auch pro Benutzer Frequenz-Grenzwerte für alle Anfragen aus Ihrer Anwendung gilt.

  • Täglicher Gebrauch 1000000000 Quoteneinheiten pro Tag pro Benutzer Rate Grenze
  • 250 Quoteneinheiten pro Benutzer pro Sekunde, gleitende Durchschnitt (ermöglicht kurze Bursts)

eine Geschwindigkeitsgrenze überschreiten, wird eine verursachen HTTP 403 oder HTTP 429 Too Many Requests antworten und Ihre App sollte mit einem wiederholten Versuch mit exponentiellem Backoff reagieren.

Exponential Backoff ist eine Standard-Fehlerbehandlungsstrategie für Netzwerk Anwendungen, in denen der Client periodisch eine fehlgeschlagene Anforderung über eine zunehmende Menge an Zeit erneut versucht. Wenn eine hohe Anzahl von Anforderungen oder starken Netzwerkdatenverkehr verursacht, dass der Server Fehler zurückgibt, kann die exponentielle Backoff eine gute Strategie für die Behandlung dieser Fehler sein. Umgekehrt ist keine relevante Strategie für die Behandlung von Fehlern, die nicht mit Ratenbegrenzungen, Netzwerkvolumes oder Antwortzeiten zusammenhängen, wie z. B. ungültige Berechtigungsnachweise oder Datei nicht gefundene Fehler.

richtig eingesetzt, erhöht sich exponentiell Backoff die Effizienz der Bandbreitennutzung, verringert sich die Anzahl der Anfragen, eine erfolgreiche Antwort erhalten erforderlich, und maximiert den Durchsatz von Anforderungen in gleichzeitige Umgebungen.