Chaque service de la bibliothèque cliente Ruby est fourni avec un délai avant expiration et une règle 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.
Remplacer 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 paramètre 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 complet, consultez l'exemple de code set_custom_client_timeouts.rb sur GitHub.
Limites de délai avant expiration et erreurs
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 l'état DEADLINE_EXCEEDED.