Für jeden Dienst in der Ruby-Clientbibliothek sind ein Standardzeitlimit und eine Standardrichtlinie für Wiederholungen in der Datei client.rb des jeweiligen Dienstes angegeben. Sie können beispielsweise
die self.configure Methode in der
CampaignService Clientkonfiguration prüfen.
Standardzeitlimits überschreiben
Sie können diese Standardwerte für eine Dienstinstanz überschreiben, nachdem Sie sie instanziiert haben
Dazu legen Sie config.timeout auf Dienstebene (in Sekunden) fest oder konfigurieren
timeout und retry_policy für einzelne RPC-Methoden in 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
Ein vollständiges funktionierendes Skript finden Sie im
set_custom_client_timeouts.rb Codebeispiel auf
GitHub.
Zeitlimits und Fehler
Sie können zwar die Zeitlimitdauer des Clients erhöhen, aber es gelten weiterhin serverseitige Limits. Anfragen, die länger als zwei Stunden dauern, können fehlschlagen und eine Ausnahme vom Typ Google::Ads::GoogleAds::Errors::GoogleAdsError oder GRPC::DeadlineExceeded mit dem Status DEADLINE_EXCEEDED auslösen.