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