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.