Display & Video 360 के कई एपीआई तरीके, ऐसे जटिल काम करते हैं जिन्हें पूरा होने में कुछ सेकंड से ज़्यादा समय लग सकता है. इन तरीकों से किए गए अनुरोधों में, कभी-कभी अनुमानित इंतज़ार का समय ज़्यादा हो सकता है. इसकी वजह से, एपीआई या क्लाइंट साइड पर गड़बड़ियां हो सकती हैं. इस पेज पर, अनुरोध के इंतज़ार में लगने वाले लंबे समय की वजह से होने वाली समस्याओं को हल करने के तरीकों के बारे में बताया गया है.
क्लाइंट लाइब्रेरी में डिफ़ॉल्ट टाइम आउट बढ़ाना
रेफ़रंस दस्तावेज़ में, कुछ खास तरीकों को लेबल किया गया है. इनमें, अनुमानित इंतज़ार का समय नियमित तौर पर ज़्यादा होने की जानकारी दी गई है. अन्य तरीकों से भी समय-समय पर, ज़्यादा इंतज़ार का व्यवहार दिख सकता है.
कुछ क्लाइंट लाइब्रेरी के लिए, डिफ़ॉल्ट टाइम आउट की सीमाएं तय होती हैं. इन सीमाओं के अंदर अनुरोध पूरा न होने पर गड़बड़ियां हो सकती हैं. काम करने वाली क्लाइंट लाइब्रेरी के सबसेट के लिए, डिफ़ॉल्ट टाइम आउट ये हैं:
- Java: 20 सेकंड
- Python: 60 सेकंड
- PHP: 60 सेकंड
इन डिफ़ॉल्ट टाइम आउट को बढ़ाकर, क्लाइंट-साइड टाइम आउट से बचा जा सकता है. रनटाइम के दौरान, अपनी क्लाइंट लाइब्रेरी के लिए डिफ़ॉल्ट टाइम आउट में बदलाव करने के लिए, इन निर्देशों का पालन करें:
Java
ज़रूरी संसाधन इंपोर्ट करें.
import com.google.api.client.http.HttpRequest; import com.google.api.client.http.HttpRequestInitializer; import java.io.IOException;
एचटीटीपी टाइम आउट सेट करने के लिए फ़ंक्शन बनाएं.
/** * Adjusts HTTP timeout values used by the provided request initializer. * * @param requestInitializer The {@link HttpRequestInitializer} used to authorize requests. * @param newHttpTimeout The HTTP timeout for requests in seconds. * @return An {@link HttpRequestInitializer} with modified HTTP timeout values. */ private static HttpRequestInitializer setHttpTimeout( final HttpRequestInitializer requestInitializer, final int newHttpTimeout) { return new HttpRequestInitializer() { @Override public void initialize(HttpRequest httpRequest) throws IOException { requestInitializer.initialize(httpRequest); httpRequest.setConnectTimeout(newHttpTimeout * 1_000); httpRequest.setReadTimeout(newHttpTimeout * 1_000); } }; }
Display & Video 360 API क्लाइंट बनाते समय कॉल फ़ंक्शन.
// Create authorized API client with non-default timeouts. DisplayVideo service = new DisplayVideo.Builder( credential.getTransport(), credential.getJsonFactory(), setHttpTimeout(credential, http-timeout-in-seconds) ) .setApplicationName("displayvideo-java-installed-app-sample") .build();
Python
Google API Python क्लाइंट लाइब्रेरी का http मॉड्यूल इंपोर्ट करें.
from googleapiclient import http
डिफ़ॉल्ट टाइम आउट का कॉन्स्टेंट अपडेट करें.
http.DEFAULT_HTTP_TIMEOUT_SEC = http-timeout-in-seconds
एपीआई सेवा बनाएं.
# Build the API service. service = discovery.build( 'displayvideo', 'v3', discoveryServiceUrl=discovery_url, credentials=credentials)
PHP
Composer का इस्तेमाल करके, Guzzle एचटीटीपी लाइब्रेरी डाउनलोड और इंस्टॉल करें.
composer require guzzlehttp/guzzle:^7.0
टाइम आउट वैल्यू असाइन करके, Guzzle एचटीटीपी क्लाइंट बनाएं.
$httpClient = new \GuzzleHttp\Client(['timeout' => http-timeout-in-seconds]);
Google क्लाइंट बनाएं और Guzzle एचटीटीपी क्लाइंट असाइन करें.
$client = new Google_Client(); $client->setHttpClient($httpClient);
एपीआई टाइम आउट की गड़बड़ियां ठीक करना
कुछ मामलों में, जटिल ऑपरेशन को पूरा करने वाले अनुरोध, सर्वर-साइड के 180 सेकंड के टाइम आउट से ज़्यादा समय ले सकते हैं. इस वजह से, एपीआई 408
या 504
गड़बड़ी का रिस्पॉन्स दिखा सकता है.
अगर किसी अनुरोध का जवाब इनमें से किसी भी गड़बड़ी कोड के साथ मिलता है, तो हमारा सुझाव है कि आप एक्सपोनेंशियल बैकऑफ़ रणनीति का इस्तेमाल करके, इन अनुरोधों को फिर से आज़माएं.
अगर गड़बड़ी बनी रहती है, तो संपर्क फ़ॉर्म का इस्तेमाल करके सहायता टीम से संपर्क करें.