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.