тайм-ауты;

Для каждого сервиса в клиентской библиотеке Ruby заданы тайм-аут по умолчанию и правила повторных попыток, указанные в файле client.rb этого сервиса. Например, вы можете проверить метод self.configure в конфигурации клиента CampaignService.

Как переопределить тайм-ауты по умолчанию

Вы можете переопределить эти значения по умолчанию для экземпляра сервиса после его создания, задав параметр config.timeout (в секундах) на уровне сервиса или настроив параметры timeout и retry_policy для отдельных методов RPC в 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

Полный рабочий скрипт можно найти в примере кода set_custom_client_timeouts.rb на GitHub.

Ограничения по времени ожидания и ошибки

Вы можете увеличить время ожидания клиента, но ограничения на стороне сервера будут действовать. Запросы, выполнение которых занимает более двух часов, могут завершиться неудачно и вызвать исключение Google::Ads::GoogleAds::Errors::GoogleAdsError или GRPC::DeadlineExceeded со статусом DEADLINE_EXCEEDED.