टाइम आउट और बार-बार की जाने वाली कोशिशें कॉन्फ़िगर करें

Display & Video 360 API के कई तरीके बहुत मुश्किल काम करते हैं. इन तरीकों को पूरा होने में कुछ सेकंड से ज़्यादा समय लग सकता है. कभी-कभी इन तरीकों के लिए किए जाने वाले अनुरोधों में इंतज़ार का समय तय समय से ज़्यादा हो सकता है. इसकी वजह से एपीआई या क्लाइंट साइड में गड़बड़ियां होती हैं. इस पेज पर, अनुरोध के इंतज़ार में लगने वाले समय की वजह से होने वाली समस्याओं को हल करने के तरीकों की जानकारी दी गई है.

क्लाइंट लाइब्रेरी में टाइम आउट की डिफ़ॉल्ट सेटिंग बढ़ाएं

कुछ खास तरीकों को उनके रेफ़रंस दस्तावेज़ में लेबल किया गया है, क्योंकि ऐसा नियमित तौर पर, उम्मीद से ज़्यादा इंतज़ार के समय से ज़्यादा है. अन्य तरीकों में भी समय-समय पर वीडियो स्ट्रीम होने और उसके दिखने के समय का अंतर ज़्यादा हो सकता है.

कुछ क्लाइंट लाइब्रेरी के लिए डिफ़ॉल्ट रूप से तय की गई समय खत्म होने की सीमा की वजह से ज़्यादा इंतज़ार के समय का अनुरोध करते समय गड़बड़ियां हो सकती हैं. इस्तेमाल की जा सकने वाली क्लाइंट लाइब्रेरी के किसी सबसेट के लिए, डिफ़ॉल्ट तौर पर टाइम आउट:

  • Java: 20 सेकंड
  • Python: 60 सेकंड
  • PHP: 60 सेकंड

इन डिफ़ॉल्ट टाइम आउट को बढ़ाकर क्लाइंट-साइड टाइम आउट से बचा जा सकता है. रनटाइम के दौरान अपनी क्लाइंट लाइब्रेरी का डिफ़ॉल्ट टाइम आउट अडजस्ट करने के लिए, इन निर्देशों का पालन करें:

Java

  1. ज़रूरी संसाधन इंपोर्ट करें.

    import com.google.api.client.http.HttpRequest;
    import com.google.api.client.http.HttpRequestInitializer;
    import java.io.IOException;
    
  2. एचटीटीपी टाइम आउट सेट करने के लिए फ़ंक्शन बनाएं.

    /**
     * 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);
        }
      };
    }
    
  3. Display & Video 360 एपीआई क्लाइंट बनाते समय कॉल फ़ंक्शन.

    // 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

  1. Google API Python क्लाइंट लाइब्रेरी का एचटीटीपी मॉड्यूल इंपोर्ट करें.

    from googleapiclient import http
    
  2. टाइम आउट का डिफ़ॉल्ट कॉन्स्टेंट अपडेट करें.

    http.DEFAULT_HTTP_TIMEOUT_SEC = http-timeout-in-seconds
    
  3. एपीआई सेवा बनाएं.

    # Build the API service.
    service = discovery.build(
      'displayvideo',
      'v3',
      discoveryServiceUrl=discovery_url,
      credentials=credentials)
    

PHP

  1. Composer का इस्तेमाल करके, Guzzle एचटीटीपी लाइब्रेरी को डाउनलोड और इंस्टॉल करें.

    composer require guzzlehttp/guzzle:^7.0
    
  2. टाइम आउट वैल्यू असाइन करते हुए, Guzzle एचटीटीपी क्लाइंट बनाएं.

    $httpClient = new \GuzzleHttp\Client(['timeout' => http-timeout-in-seconds]);
    
  3. Google क्लाइंट बनाएं और Guzzle एचटीटीपी क्लाइंट असाइन करें.

    $client = new Google_Client();
    $client->setHttpClient($httpClient);
    

एपीआई टाइम आउट से जुड़ी गड़बड़ियां ठीक करना

बहुत कम मामलों में, मुश्किल कार्रवाइयों को पूरा करने के अनुरोधों का सर्वर साइड टाइम आउट 180 सेकंड से ज़्यादा हो सकता है. इसकी वजह से एपीआई 408 या 504 गड़बड़ी का रिस्पॉन्स देता है.

अगर किसी अनुरोध का जवाब इनमें से किसी भी गड़बड़ी कोड के साथ मिलता है, तो हमारा सुझाव है कि आप एक्सपोनेन्शियल बैकऑफ़ रणनीति का इस्तेमाल करके, इन अनुरोधों को फिर से करने की कोशिश करें.

अगर गड़बड़ी बनी रहती है, तो संपर्क करने के लिए फ़ॉर्म का इस्तेमाल करके सहायता टीम से संपर्क करें.