Zeitlimits

Für jeden Dienst in der Ruby-Clientbibliothek sind ein Standard-Zeitlimit und eine Standardrichtlinie für Wiederholungsversuche in der client.rb-Datei des jeweiligen Dienstes angegeben. Sie können sich beispielsweise die self.configure-Methode in der CampaignService-Clientkonfiguration ansehen.

Standardzeitüberschreitungen überschreiben

Sie können diese Standardwerte für eine Dienstinstanz überschreiben, nachdem Sie sie instanziiert haben, indem Sie das Dienstebenen-config.timeout (in Sekunden) festlegen oder timeout und retry_policy für einzelne RPC-Methoden in config.rpcs konfigurieren:

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

Ein vollständiges funktionierendes Script finden Sie im set_custom_client_timeouts.rb-Codebeispiel auf GitHub.

Zeitlimits und Fehler

Sie können das Client-Zeitlimit zwar verlängern, aber serverseitige Limits gelten weiterhin. Anfragen, die länger als zwei Stunden dauern, schlagen möglicherweise fehl und lösen eine Google::Ads::GoogleAds::Errors::GoogleAdsError- oder GRPC::DeadlineExceeded-Ausnahme mit dem Status DEADLINE_EXCEEDED aus.