0

我收到servingLimitExceeded批次内结果的错误消息,但不是整个批次。例如,我可能有 100 条记录响应此错误,然后它开始返回更多结果。全部在一个批次中。

如果批次由 Google API 在内部处理,我如何调整它们以不达到速率限制?我尝试在批次之间添加 1 秒的延迟,但这并没有改变这一点。我还在retries = 3Ruby 客户端上进行了设置,但我不知道这是否意味着它会重试失败的批处理。我认为它不会重试批处理中的单个 API 调用,因为退避应该解决这个问题。

我是否必须记录失败的结果并创建一个新批次来单独恢复这些结果?

顺便说一句,记录的配额限制错误令人困惑。有dailyLimitExceededrateLimitExceeded消息,但这并没有返回其中之一。servingLimitExceeded“已达到为 API 指定的总体速率限制”的描述并不是很有帮助,但我假设这是我们达到的速率限制。

更新

查看代码,我看到 ruby​​ 中的重试google-api-client仅适用于传输授权(401)错误。一个 403 (这是速率限制返回的)引发一个ClientError无论如何都不会重试的。

因此retries,在客户端对象上进行设置与此无关。

我可以做些什么来解决这个问题吗?

4

1 回答 1

1

我们从网站管理员团队收到消息,API 限制为 20QPS,目前没有办法提高。

一种建议的解决方案是发出较小的批量请求

于 2015-05-11T21:40:39.420 回答