我在批处理中收到结果的servingLimitExceeded
错误消息,而不是整个批处理。例如,我可能会收到100条响应此错误的记录,然后它开始返回更多结果。所有这一切都在一批中。
如果批次由Google API内部处理,我如何调整它们以达不到速率限制?我尝试在批次之间添加1秒的延迟,但这并没有改变这一点。我还在Ruby客户端上设置了retries = 3
,但我不知道这是否意味着它重试了一个失败的批处理。我不认为它会在批处理中重试单个API调用,因为退避应解决此问题。
我是否必须记录失败的结果并创建新批处理以单独恢复它们?
顺便说一下,documented quota limit errors令人困惑。有dailyLimitExceeded
和rateLimitExceeded
条消息,但这并不会返回其中一条消息。 &{34; servingLimitExceeded
的描述已经达到了为API指定的总体速率限制"并不是那么有用但是我假设这是我们达到的速率限制。
更新
查看代码,我发现ruby google-api-client
中的重试仅适用于transmission和authorization(401)错误。一个403(这是什么速率限制返回)raises a ClientError
无论如何都没有重试。
因此在客户端对象上设置retries
与此无关。
我有什么办法可以在批处理中解决这个问题吗?