Waktu tunggu

Setiap layanan di library klien Ruby dilengkapi dengan kebijakan waktu tunggu dan coba lagi default yang ditentukan dalam file client.rb layanan tersebut. Misalnya, Anda dapat memeriksa metode self.configure dalam konfigurasi klien CampaignService.

Mengganti waktu tunggu default

Anda dapat mengganti nilai default ini pada instance layanan setelah Anda membuat instance dengan menetapkan config.timeout tingkat layanan (dalam detik) atau dengan mengonfigurasi timeout dan retry_policy untuk setiap metode RPC di config.rpcs:

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

Untuk mengetahui skrip kerja lengkap, lihat contoh kode set_custom_client_timeouts.rb di GitHub.

Batas waktu tunggu dan error

Meskipun Anda dapat meningkatkan durasi waktu tunggu klien, batas sisi server tetap berlaku. Permintaan yang memerlukan waktu lebih dari dua jam mungkin gagal dan memunculkan pengecualian Google::Ads::GoogleAds::Errors::GoogleAdsError atau GRPC::DeadlineExceeded dengan status DEADLINE_EXCEEDED.