Gmail API - 429 rateLimit单个请求已超过

时间:2016-07-11 23:51:58

标签: google-api gmail-api quota

当我注意到这个错误时,我正在编写一个使用gmail API的节点应用程序。我对错误的理解是并发请求太多。这似乎促使我等了15分钟再试一次。在等待期过后,我尝试在https://developers.google.com/gmail/api/v1/reference/users/messages/list#response处使用gui over API戳API,但出现相同的错误(时间增量为15分钟)。我在开发者控制台中查看了API网站上的配额使用情况,但除了错误之外没有任何活动。有谁知道为什么会这样?我非常感激。

{
 "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 个答案:

答案 0 :(得分:0)

Gmail API受每日使用限制的约束,该限制适用于从您的应用程序发出的所有请求,以及每用户速率限制。

  • 每日使用量每天1,000,000,000个配额单位每用户费率 限制
  • 每位用户每秒250个配额单位,移动平均值(允许 短暂的爆发)

超过速率限制将导致HTTP 403或HTTP 429 Too Many Requests响应,并且您的应用应通过重试指数退避来响应。

  

指数退避是网络的标准错误处理策略   客户端定期重试失败请求的应用程序   越来越多的时间。如果请求量很大或者   繁重的网络流量导致服务器返回错误,指数级   退避可能是处理这些错误的好策略。反过来,   它不是处理与之无关的错误的相关策略   限速,网络容量或响应时间,如无效   授权凭证或文件未找到错误。

     

使用得当,指数退避可以提高效率   带宽使用,减少了获得所需的请求数量   成功响应,并最大化请求的吞吐量   并发环境。