了解Gmail API配额

时间:2016-12-05 22:26:27

标签: google-api gmail-api quota

我已经在这里阅读了gmail api配额解释(https://developers.google.com/gmail/api/v1/reference/quota),但我仍然遇到麻烦,了解是什么原因导致我们超越极限。

问题1: 每个用户配额中的用户是什么?我不确定用户是个人gmail用户,还是使用gmail api的服务客户端。

问题2: 我们已经看过几次以下错误,但没有看到任何明显的限制。

"error": {
 "errors": [
  {
   "domain": "usageLimits",
   "reason": "rateLimitExceeded",
   "message": "Rate Limit Exceeded"
  }
 ],
 "code": 429,
 "message": "Rate Limit Exceeded"
}

我们低于250单位/秒和25,000单位/ 100。我们只使用history.list和message.get调用没有发送或修改 我还缺少其他配额吗?

2 个答案:

答案 0 :(得分:1)

对于您的问题1

以下是Gmail中不同配额的含义

  • QPD(每日配额数) - 表示客户端ID能够在24小时内向API发出的最大请求数

  • QPS(每秒配额数) - 表示应用程序每秒的全局配额,表示应用程序可以进行多少次调用

  • 每位用户每秒的配额 - 表示用户(应用程序)可以进行的查询次数。

问题2

好吧,如果您在开发者控制台中查看Gmail配额,则Gmail的默认配额为:

enter image description here

那么我建议您使用以下提示,以便有效地使用您的配额:

  • Push notification - 它可以提高应用程序的性能。它允许您消除轮询资源所涉及的额外网络和计算成本,以确定它们是否已更改。每当邮箱更改时,Gmail API都会通知您的后端服务器应用程序。

  • 使用synchronization检索并存储尽可能多的最新消息或线程。

  • Batching Requests - 减少客户端必须进行的HTTP连接数。

如果您发现自己达到此限制且需要的费用超过此限额,则可以申请更多配额here

答案 1 :(得分:0)

  1. 用户配额取决于您访问的帐户。所以这将是GMail帐户。有时您可以通过随机发送quotaUser来欺骗它,但这并不总是有效Google也会使用您的IP地址来跟踪我怀疑的配额。

  2. 用户速率限制是您要快速的防洪保护。

  3.   

    每用户速率限制每用户每秒250个配额单位,移动   平均值(允许短暂爆发)

         

    超过速率限制将导致HTTP 403或HTTP 429太多   请求响应和您的应用应通过重试来响应   指数退避。

    谷歌的计算并不完美,你可能会发送更多或更少,仍然达到这个配额。只是实施指数退避。

    指数退避

    实现简单指数退避的流程如下:

    1. 向API提出请求。
    2. 接收HTTP 403速率限制响应,表示您应该重试该请求。
    3. 等待1 + random_number_milliseconds秒并重试请求。
    4. 接收HTTP 403速率限制响应,表示您应该重试该请求。
    5. 等待2 + random_number_milliseconds秒,然后重试请求。
    6. 接收HTTP 403速率限制响应,表示您应该重试该请求。
    7. 等待4 + random_number_milliseconds秒,然后重试请求。
    8. 接收HTTP 403速率限制响应,表示您应该重试该请求。
    9. 等待8 + random_number_milliseconds秒,然后重试该请求。
    10. 接收HTTP 403速率限制响应,表示您应该重试该请求。
    11. 等待16 + random_number_milliseconds秒,然后重试该请求。
    12. 停止。报告或记录错误。