我收到servingLimitExceeded
批次内结果的错误消息,但不是整个批次。例如,我可能有 100 条记录响应此错误,然后它开始返回更多结果。全部在一个批次中。
如果批次由 Google API 在内部处理,我如何调整它们以不达到速率限制?我尝试在批次之间添加 1 秒的延迟,但这并没有改变这一点。我还在retries = 3
Ruby 客户端上进行了设置,但我不知道这是否意味着它会重试失败的批处理。我认为它不会重试批处理中的单个 API 调用,因为退避应该解决这个问题。
我是否必须记录失败的结果并创建一个新批次来单独恢复这些结果?
顺便说一句,记录的配额限制错误令人困惑。有dailyLimitExceeded
和rateLimitExceeded
消息,但这并没有返回其中之一。servingLimitExceeded
“已达到为 API 指定的总体速率限制”的描述并不是很有帮助,但我假设这是我们达到的速率限制。
更新
查看代码,我看到 ruby 中的重试google-api-client
仅适用于传输和授权(401)错误。一个 403 (这是速率限制返回的)引发一个ClientError
无论如何都不会重试的。
因此retries
,在客户端对象上进行设置与此无关。
我可以做些什么来解决这个问题吗?