Délais avant expiration

Chaque service de la bibliothèque cliente Ruby est fourni avec un délai avant expiration et une stratégie de nouvelle tentative par défaut spécifiés dans le fichier client.rb de ce service. Par exemple, vous pouvez inspecter la méthode self.configure dans la configuration du client CampaignService.

Ignorer les délais avant expiration par défaut

Vous pouvez remplacer ces valeurs par défaut sur une instance de service après l'avoir instanciée en définissant le config.timeout au niveau du service (en secondes) ou en configurant timeout et retry_policy pour des méthodes RPC individuelles sur 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

Pour obtenir un script de travail complet, consultez l'exemple de code set_custom_client_timeouts.rb sur GitHub.

Limites et erreurs de délai avant expiration

Bien que vous puissiez augmenter la durée du délai avant expiration du client, les limites côté serveur s'appliquent toujours. Les requêtes qui prennent plus de deux heures peuvent échouer et générer une exception Google::Ads::GoogleAds::Errors::GoogleAdsError ou GRPC::DeadlineExceeded avec un état DEADLINE_EXCEEDED.