Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google api 了解Gmail api配额_Google Api_Gmail Api_Quota - Fatal编程技术网

Google api 了解Gmail api配额

Google api 了解Gmail api配额,google-api,gmail-api,quota,Google Api,Gmail Api,Quota,我已经在这里阅读了gmail api配额说明(),但是我仍然很难理解是什么导致我们超过了限额 问题1: 每用户配额中的用户是什么?我不确定该用户是个人gmail用户还是使用gmail api的服务客户端 问题2: 我们已经多次看到以下错误,但没有看到任何明显的限制 "error": { "errors": [ { "domain": "usageLimits", "reason": "rateLimitExceeded", "message": "Rate Limit E

我已经在这里阅读了gmail api配额说明(),但是我仍然很难理解是什么导致我们超过了限额

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

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

"error": {
 "errors": [
  {
   "domain": "usageLimits",
   "reason": "rateLimitExceeded",
   "message": "Rate Limit Exceeded"
  }
 ],
 "code": 429,
 "message": "Rate Limit Exceeded"
}
我们低于250单位/秒和25000单位/秒。我们只使用history.list和message.get呼叫,不发送或修改。
我还缺少其他配额吗

  • 用户配额基于您正在访问的帐户。因此,这将是GMail帐户。有时你可以通过发送一个随机的来欺骗它,但这并不总是有效。我怀疑谷歌也会使用你的IP地址来跟踪配额

  • 用户费率限制是防洪保护,你要快

  • 每用户速率限制每秒每用户250个配额单位,正在移动 平均(允许短脉冲)

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

    谷歌的计算并不完美,你可以发送更多或更少,但仍然达到这个限额。退后

    指数退避

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

  • 向API发出请求
  • 接收HTTP 403速率限制响应,该响应指示您应该重试该请求
  • 等待1+随机数秒,然后重试请求
  • 接收HTTP 403速率限制响应,该响应指示您应该重试该请求
  • 等待2+随机数秒,然后重试请求
  • 接收HTTP 403速率限制响应,该响应指示您应该重试该请求
  • 等待4+随机数秒,然后重试请求
  • 接收HTTP 403速率限制响应,该响应指示您应该重试该请求
  • 等待8+随机数秒,然后重试请求
  • 接收HTTP 403速率限制响应,该响应指示您应该重试该请求
  • 等待16+随机数秒,然后重试请求
  • 停下来。报告或记录错误
  • 关于你的第一个问题 以下是Gmail中不同配额的含义

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

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

    • 每用户每秒配额-表示应用程序可以对用户进行的查询数量

    关于第二个问题 如果您在开发者控制台中检查Gmail的配额,Gmail的默认配额为:

    因此,我建议您使用以下技巧,以便有效地使用配额:

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

    • 用于检索和存储您所需的尽可能多的最新消息或线程

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


    如果你注意到你达到了这个限制,你需要更多,那么你可以申请更多的配额。

    有趣的是,每天的请求“配额”(每天的请求)是有意义的,我可以做一个列表请求,看到请求“成本”为5,但是每100秒的成本真的很奇怪,如果我做一个请求,我会看到8.333的成本。这个乘数(1⅔) 似乎适用于所有服务(API)。有人有什么想法吗?这个配额并不完美。你可以在5秒钟内完成250个请求,还行,但你也可以完成240个请求,然后让它退出。不要试图在这一个上穿针引线。这是我得到的最接近的配额,所以我问了谷歌支持,他们说每100秒配额实际上是每秒配额,因为某些原因这真的没有道理。但是,对于每项服务的每秒配额,政府不会给我一个直接的答案。@DalmTo我在这里添加了一个带有限速器的回购:@DalmTo在严重缺乏时间的情况下,在使用google python API时跟踪这个可怕的漏洞:(