网站管理员API v3:使用批量请求获取servingLimitExceeded

时间:2015-03-20 23:14:59

标签: google-api google-webmaster-tools google-api-ruby-client

我在批处理中收到结果的servingLimitExceeded错误消息,而不是整个批处理。例如,我可能会收到100条响应此错误的记录,然后它开始返回更多结果。所有这一切都在一批中。

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

我是否必须记录失败的结果并创建新批处理以单独恢复它们?

顺便说一下,documented quota limit errors令人困惑。有dailyLimitExceededrateLimitExceeded条消息,但这并不会返回其中一条消息。 &{34; servingLimitExceeded的描述已经达到了为API指定的总体速率限制"并不是那么有用但是我假设这是我们达到的速率限制。

更新

查看代码,我发现ruby google-api-client中的重试仅适用于transmissionauthorization(401)错误。一个403(这是什么速率限制返回)raises a ClientError无论如何都没有重试。

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

我有什么办法可以在批处理中解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

我们收到网站管理员团队的消息称,API限制在20QPS,目前无法提升。

一个建议的解决方案是make smaller batch requests