Setiap layanan di library klien Ruby dilengkapi dengan kebijakan percobaan ulang dan waktu tunggu default yang ditentukan dalam file client.rb layanan tersebut. Misalnya, Anda dapat
memeriksa metode self.configure di
konfigurasi klien CampaignService.
Mengganti waktu tunggu default
Anda dapat mengganti nilai default ini pada instance layanan setelah 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 skrip yang berfungsi lengkap, lihat
contoh kode set_custom_client_timeouts.rb di
GitHub.
Batas waktu tunggu habis dan error
Meskipun Anda dapat meningkatkan durasi waktu tunggu klien, batas sisi server tetap berlaku. Permintaan yang memerlukan waktu lebih dari dua jam dapat gagal dan memunculkan pengecualian Google::Ads::GoogleAds::Errors::GoogleAdsError atau GRPC::DeadlineExceeded dengan status DEADLINE_EXCEEDED.