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.