Tiempos de espera

Cada servicio de la biblioteca cliente de Ruby incluye una política predeterminada de tiempo de espera y reintentos especificada en el archivo client.rb de ese servicio. Por ejemplo, puedes inspeccionar el método self.configure en la configuración del cliente CampaignService.

Anula los tiempos de espera predeterminados

Puedes anular estos valores predeterminados en una instancia de servicio después de crearla. Para ello, establece el config.timeout (en segundos) a nivel de servicio o configura timeout y retry_policy para métodos de RPC individuales en 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

Para obtener una secuencia de comandos completa, consulta el ejemplo de código de set_custom_client_timeouts.rb en GitHub.

Límites y errores de tiempo de espera

Si bien puedes aumentar la duración del tiempo de espera del cliente, se siguen aplicando los límites del servidor. Las solicitudes que tarden más de dos horas podrían fallar y generar una excepción Google::Ads::GoogleAds::Errors::GoogleAdsError o GRPC::DeadlineExceeded con un estado DEADLINE_EXCEEDED.