如何增加超时以停止 google-cloud-vision DeadlineExceededError?

How do I increase timeout to stop google-cloud-vision DeadlineExceededError?

我正在使用 'google-cloud-vision' gem (v0.23.0) 做一些图像 OCR,我的请求随机失败:DeadlineExceededError。每天的错误率从 1% 到 99% 不等,因此非常难以预测。

当绕过 gem 并使用 Google REST API 并传入我的 Base64Encoded 图像时,一切似乎完美无缺。

我猜测 DeadlineExceededError 正在使用一些超时变量,而 REST api 没有。所以,我想知道如何增加超时,因为我觉得使用原始 ruby 代码与公司创建的库不合适。

看起来 DeadlineExceededError 发生在来自服务器的 504 代码上,但根据代码您可以手动指定超时 - def vision scope: nil, timeout: nil, client_config: nil

所以你可以:

gcloud = Google::Cloud.new
vision = gcloud.vision timeout: 180

示例。