我已经在这里阅读了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调用没有发送或修改 我还缺少其他配额吗?
答案 0 :(得分:1)
以下是Gmail中不同配额的含义
QPD(每日配额数) - 表示客户端ID能够在24小时内向API发出的最大请求数
QPS(每秒配额数) - 表示应用程序每秒的全局配额,表示应用程序可以进行多少次调用
每位用户每秒的配额 - 表示用户(应用程序)可以进行的查询次数。
好吧,如果您在开发者控制台中查看Gmail配额,则Gmail的默认配额为:
那么我建议您使用以下提示,以便有效地使用您的配额:
Push notification - 它可以提高应用程序的性能。它允许您消除轮询资源所涉及的额外网络和计算成本,以确定它们是否已更改。每当邮箱更改时,Gmail API都会通知您的后端服务器应用程序。
使用synchronization检索并存储尽可能多的最新消息或线程。
Batching Requests - 减少客户端必须进行的HTTP连接数。
如果您发现自己达到此限制且需要的费用超过此限额,则可以申请更多配额here。
答案 1 :(得分:0)
用户配额取决于您访问的帐户。所以这将是GMail帐户。有时您可以通过随机发送quotaUser来欺骗它,但这并不总是有效Google也会使用您的IP地址来跟踪我怀疑的配额。
用户速率限制是您要快速的防洪保护。
每用户速率限制每用户每秒250个配额单位,移动 平均值(允许短暂爆发)
超过速率限制将导致HTTP 403或HTTP 429太多 请求响应和您的应用应通过重试来响应 指数退避。
谷歌的计算并不完美,你可能会发送更多或更少,仍然达到这个配额。只是实施指数退避。
指数退避
实现简单指数退避的流程如下: