Ruby 客户端库中的每项服务都附带在该服务的 client.rb 文件中指定的默认超时和重试政策。例如,您可以
检查 self.configure 方法在
CampaignService 客户端配置。
替换默认超时
您可以在实例化服务实例后替换这些默认值
,方法是设置服务级 config.timeout(以秒为单位),或者在 config.rpcs 上为各个 RPC 方法配置
timeout 和 retry_policy:
require 'google/ads/google_ads'
client = Google::Ads::GoogleAds::GoogleAdsClient.new
ga_service = client.service.google_ads
ga_service.configure do |config|
# Set the default timeout (in seconds) for all RPCs on this service instance.
config.timeout = 120.0
# Override the timeout or retry policy for specific RPC methods.
config.rpcs.search_stream.timeout = 300.0
config.rpcs.search.timeout = 120.0
config.rpcs.search.retry_policy = {
'initial_delay' => 5.0,
'max_delay' => 60.0
}
end
如需查看完整的可运行脚本,请参阅
set_custom_client_timeouts.rb代码示例(位于
GitHub)上。
超时限制和错误
虽然您可以增加客户端超时时长,但服务器端限制仍然适用。如果请求耗时超过两小时,可能会失败并引发 Google::Ads::GoogleAds::Errors::GoogleAdsError 或 GRPC::DeadlineExceeded 异常,并显示 DEADLINE_EXCEEDED 状态。