每秒仅插入 1 次后的 403 速率限制

Posted

技术标签:

【中文标题】每秒仅插入 1 次后的 403 速率限制【英文标题】:403 rate limit after only 1 insert per second 【发布时间】:2013-09-02 23:36:20 【问题描述】:

我的应用偶尔(每天一次)运行大约 1,000 个文件的批量插入。插入几次后,我开始收到 403 速率限制响应。由于我的应用按顺序执行插入操作,因此我尝试的插入速率永远不会高于每秒 1 次。

我检查了我是否启用了计费,并且我的配额限制为每秒 100+,所以我不明白为什么我会受到如此激进的限制。结果是插入需要一个多小时,这对 Drive 来说不是一个很好的广告:-(

【问题讨论】:

【参考方案1】:

您可以在 api 控制台中更改费率。将其设置为更大的值,例如 10000/秒。

【讨论】:

谢谢,但正如我在原始问题中所说,我已经将速率设置为 100/秒。【参考方案2】:

您需要按照 Google 在其文档中的描述实现 exponential backoff。

【讨论】:

我意识到这一点。我经常会后退 4 秒。问题的重点是询问 Drive 的插入率是否真的 【参考方案3】:

似乎答案是 Drive 在拒绝 403 错误之前最多允许插入 30 次左右。确切的数字以及解除限速的速率并未公开。另见403 rate limit on insert sometimes succeeds

【讨论】:

您收到的是rateLimitExceeded 还是userRateLimitExceeded?至少现在,您似乎可以在 API 控制台中任意设置每个用户的请求限制。如果我理解正确的话,增加它应该有助于减少 userRateLimitExceeded 异常的发生

以上是关于每秒仅插入 1 次后的 403 速率限制的主要内容,如果未能解决你的问题,请参考以下文章

批量查询超出速率限制

批量查询超出速率限制

关于数据库更新/插入速率限制的一些查询(基于 SQL 或基于 NoSQL)

如何使用 Apache 实现速率限制? (每秒请求数)

Adwords API 每秒查询次数限制

Google Drive API 是不是有每个项目的速率限制?