Czasy oczekiwania

Każda usługa w bibliotece klienta Ruby ma domyślny limit czasu i zasady ponawiania określone w pliku client.rb tej usługi. Możesz na przykład sprawdzić metodę self.configure w CampaignService konfiguracji klienta.

Zastępowanie domyślnych limitów czasu

Możesz zastąpić te wartości domyślne w instancji usługi po jej utworzeniu, ustawiając config.timeout na poziomie usługi (w sekundach) lub konfigurując timeout i retry_policy dla poszczególnych metod RPC w 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

Pełny działający skrypt znajdziesz w set_custom_client_timeouts.rb przykładzie kodu w GitHubie.

Limity czasu oczekiwania i błędy

Możesz zwiększyć czas oczekiwania klienta, ale nadal obowiązują limity po stronie serwera. Żądania, których przetworzenie trwa dłużej niż 2 godziny, mogą zakończyć się niepowodzeniem i wywołać wyjątek Google::Ads::GoogleAds::Errors::GoogleAdsError lub GRPC::DeadlineExceeded ze stanem DEADLINE_EXCEEDED.