Chaque service de la bibliothèque cliente Ruby est fourni avec un délai avant expiration et une stratégie de réessai 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.
Remplacer les délais d'attente 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 les 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 fonctionnel complet, consultez l'exemple de code set_custom_client_timeouts.rb sur GitHub.
Limites et erreurs liées au délai avant expiration
Vous pouvez augmenter la durée du délai avant expiration du client, mais 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.