Engelleme

Ruby istemci kitaplığındaki her hizmet, ilgili 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

Hizmet düzeyinde config.timeout (saniye cinsinden) ayarlayarak veya config.rpcs üzerinde her bir RPC yöntemi için timeout ve retry_policy yapılandırarak bir hizmet örneğini oluşturduktan sonra bu varsayılanları 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 bir komut dosyasının tamamı 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çerli olmaya devam eder. İki saatten uzun süren istekler başarısız olabilir ve DEADLINE_EXCEEDED durumuna sahip bir Google::Ads::GoogleAds::Errors::GoogleAdsError veya GRPC::DeadlineExceeded istisnası oluşturabilir.