Jeder Dienst in der Ruby-Clientbibliothek hat eine Standard-Zeitüberschreitungs- und Wiederholungsrichtlinie, die in der client.rb-Datei des Dienstes angegeben ist. Sie können sich beispielsweise die Methode self.configure in der CampaignService-Clientkonfiguration ansehen.
Standard-Zeitlimits überschreiben
Sie können diese Standardwerte für eine Dienstinstanz nach der Instanziierung überschreiben. Legen Sie dazu config.timeout (in Sekunden) auf Dienstebene fest oder konfigurieren Sie 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 Script finden Sie im set_custom_client_timeouts.rb-Codebeispiel auf GitHub.
Zeitlimits und Fehler
Sie können die Dauer des Client-Zeitlimits zwar erhöhen, es gelten jedoch weiterhin serverseitige Limits. Anfragen, die länger als zwei Stunden dauern, können fehlschlagen und eine Google::Ads::GoogleAds::Errors::GoogleAdsError- oder GRPC::DeadlineExceeded-Ausnahme mit dem Status DEADLINE_EXCEEDED auslösen.