gpt4 book ai didi

google-api - 了解 Gmail api 配额

转载 作者:行者123 更新时间:2023-12-02 01:51:11 36 4
gpt4 key购买 nike

我已阅读此处的 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调用,不发送或修改。
我还缺少其他配额吗?

最佳答案

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

  2. 用户速率限制是您要快速进行的防洪措施。

Per User Rate Limit 250 quota units per user per second, moving average (allows short bursts)

Exceeding a rate limit will cause an HTTP 403 or HTTP 429 Too Many Requests response and your app should respond by retrying with exponential backoff.

Google 的计算并不完美,您可能会发送更多或更少的内容,但仍然会达到此配额。只需实现指数退避即可。

指数退避

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

  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. 停下来。报告或记录错误。

关于google-api - 了解 Gmail api 配额,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40984486/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com