逾時

Ruby 用戶端程式庫中的每項服務都附有預設逾時和重試政策,這些政策會在該服務的 client.rb 檔案中指定。舉例來說,您可以檢查CampaignService用戶端設定中的 self.configure 方法。

覆寫預設逾時

例項化服務後,您可以設定服務層級的 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

如需完整的有效指令碼,請參閱 GitHub 上的set_custom_client_timeouts.rb程式碼範例。

逾時限制和錯誤

雖然您可以增加用戶端逾時時間,但伺服器端限制仍適用。如果要求時間超過兩小時,可能會失敗並引發 Google::Ads::GoogleAds::Errors::GoogleAdsError 或 GRPC::DeadlineExceeded 例外狀況,狀態為 DEADLINE_EXCEEDED。