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.