Ruby istemci kitaplığındaki her hizmet, bu hizmetin client.rb dosyasında belirtilen varsayılan bir zaman aşımı ve yeniden deneme politikasıyla birlikte gelir. Örneğin, CampaignService istemci yapılandırmasında self.configure yöntemini inceleyebilirsiniz.
Varsayılan zaman aşımlarını geçersiz kılma
Bir hizmet örneğini oluşturduktan sonra, hizmet düzeyinde config.timeout (saniye cinsinden) değerini ayarlayarak veya config.rpcs üzerinde tek tek RPC yöntemleri için timeout ve retry_policy değerlerini yapılandırarak bu varsayılanları hizmet örneğinde geçersiz kılabilirsiniz:
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
Çalışan tam bir komut dosyası için GitHub'daki set_custom_client_timeouts.rb kod örneğine bakın.
Zaman aşımı sınırları ve hataları
İstemci zaman aşımı süresini artırabilirsiniz ancak sunucu tarafı sınırları geçerliliğini korur. İki saatten uzun süren istekler başarısız olabilir ve Google::Ads::GoogleAds::Errors::GoogleAdsError veya GRPC::DeadlineExceeded istisnası oluşturabilir. Bu durumda DEADLINE_EXCEEDED durumu gösterilir.