Ruby क्लाइंट लाइब्रेरी में मौजूद हर सेवा के लिए, टाइम आउट और फिर से कोशिश करने की डिफ़ॉल्ट नीति तय होती है. यह नीति, उस सेवा की client.rb फ़ाइल में दी गई होती है. उदाहरण के लिए, CampaignService क्लाइंट कॉन्फ़िगरेशन में self.configure तरीके की जांच की जा सकती है.
टाइम आउट की डिफ़ॉल्ट सेटिंग को बदलना
सेवा के इंस्टेंस को इंस्टैंशिएट करने के बाद, इन डिफ़ॉल्ट वैल्यू को बदला जा सकता है. इसके लिए, सेवा-लेवल पर config.timeout (सेकंड में) सेट करें या config.rpcs पर अलग-अलग आरपीसी मेथड के लिए, timeout और retry_policy को कॉन्फ़िगर करें:
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
पूरी तरह से काम करने वाली स्क्रिप्ट के लिए, GitHub पर set_custom_client_timeouts.rb कोड का उदाहरण देखें.
टाइम आउट की सीमाएं और गड़बड़ियां
क्लाइंट टाइम आउट की अवधि बढ़ाई जा सकती है, लेकिन सर्वर-साइड की सीमाएं अब भी लागू होंगी. जिन अनुरोधों को पूरा होने में दो घंटे से ज़्यादा समय लगता है वे शायद पूरे न हों. साथ ही, DEADLINE_EXCEEDED स्टेटस के साथ Google::Ads::GoogleAds::Errors::GoogleAdsError या GRPC::DeadlineExceeded अपवाद दिख सकता है.