Tiempos de espera

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

Cómo anular los tiempos de espera predeterminados

Puedes anular estos valores predeterminados en una instancia de servicio después de crear una instancia de ella configurando el config.timeout a nivel de servicio (en segundos) o configurando timeout y retry_policy para métodos 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 de trabajo completa, consulta el set_custom_client_timeouts.rb ejemplo de código en GitHub.

Límites y errores de tiempo de espera

Si bien puedes aumentar la duración del tiempo de espera del cliente, aún se aplican los límites del servidor. Es posible que las solicitudes que tardan más de dos horas fallen y generen una excepción Google::Ads::GoogleAds::Errors::GoogleAdsError o GRPC::DeadlineExceeded con un estado DEADLINE_EXCEEDED.