টাইমআউট কনফিগার করুন এবং পুনরায় চেষ্টা করুন

অনেক Display & Video 360 API পদ্ধতি জটিল ক্রিয়াকলাপ সম্পাদন করে যা সম্পূর্ণ হতে কয়েক সেকেন্ডের বেশি সময় লাগতে পারে। এই পদ্ধতিগুলির অনুরোধগুলি কখনও কখনও প্রত্যাশিত লেটেন্সি অতিক্রম করতে পারে, যার ফলে API বা ক্লায়েন্টের দিকে ত্রুটি দেখা দেয়। এই পৃষ্ঠাটি বর্ধিত অনুরোধের বিলম্বের কারণে সৃষ্ট সমস্যাগুলি পরিচালনা করার অনুশীলনগুলি তালিকাভুক্ত করে৷

ক্লায়েন্ট লাইব্রেরিতে ডিফল্ট সময়সীমা বাড়ান

নির্দিষ্ট পদ্ধতির একটি মুষ্টিমেয় তাদের রেফারেন্স ডকুমেন্টেশনে নিয়মিতভাবে প্রত্যাশিত বিলম্বতা অতিক্রম হিসাবে লেবেল করা হয়েছে। অন্যান্য পদ্ধতিগুলিও পর্যায়ক্রমে উচ্চ-বিলম্বিত আচরণ প্রদর্শন করতে পারে।

কিছু ক্লায়েন্ট লাইব্রেরির জন্য ডিফল্ট টাইমআউট সীমা উচ্চ-বিলম্বিত অনুরোধ করার সময় ত্রুটি হতে পারে। সমর্থিত ক্লায়েন্ট লাইব্রেরির একটি উপসেটের জন্য ডিফল্ট সময়সীমা হল:

  • জাভা : 20 সেকেন্ড
  • পাইথন : 60 সেকেন্ড
  • পিএইচপি : 60 সেকেন্ড

এই ডিফল্ট সময়সীমা বাড়িয়ে ক্লায়েন্ট-সাইড টাইমআউট এড়ানো যেতে পারে। রানটাইম চলাকালীন আপনার ক্লায়েন্ট লাইব্রেরির জন্য ডিফল্ট সময়সীমা সামঞ্জস্য করতে এই নির্দেশাবলী অনুসরণ করুন:

জাভা

  1. প্রয়োজনীয় সম্পদ আমদানি করুন।

    import com.google.api.client.http.HttpRequest;
    import com.google.api.client.http.HttpRequestInitializer;
    import java.io.IOException;
    
  2. HTTP সময়সীমা সেট করার জন্য ফাংশন তৈরি করুন।

    /**
     * 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 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();
    

পাইথন

  1. Google API Python ক্লায়েন্ট লাইব্রেরি http মডিউল আমদানি করুন।

    from googleapiclient import http
    
  2. ডিফল্ট টাইমআউট ধ্রুবক আপডেট করুন।

    http.DEFAULT_HTTP_TIMEOUT_SEC = http-timeout-in-seconds
    
  3. API পরিষেবা তৈরি করুন।

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

পিএইচপি

  1. কম্পোজার ব্যবহার করে Guzzle HTTP লাইব্রেরি ডাউনলোড এবং ইনস্টল করুন।

    composer require guzzlehttp/guzzle:^7.0
    
  2. Guzzle HTTP ক্লায়েন্ট তৈরি করুন, সময়সীমার মান নির্ধারণ করুন।

    $httpClient = new \GuzzleHttp\Client(['timeout' => http-timeout-in-seconds]);
    
  3. Google ক্লায়েন্ট তৈরি করুন এবং Guzzle HTTP ক্লায়েন্ট বরাদ্দ করুন।

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

API টাইমআউট ত্রুটিগুলি পরিচালনা করুন৷

বিরল ক্ষেত্রে, জটিল ক্রিয়াকলাপগুলি সম্পন্ন করার অনুরোধগুলি 180 সেকেন্ডের সার্ভার-সাইড টাইমআউট অতিক্রম করতে পারে, যার ফলে API একটি 408 বা 504 ত্রুটি প্রতিক্রিয়া ফেরত দেয়।

যদি একটি অনুরোধ এই ত্রুটি কোডগুলির মধ্যে একটির সাথে সাড়া দেয়, আমরা সুপারিশ করি যে আপনি সূচকীয় ব্যাকঅফ কৌশল ব্যবহার করে এই অনুরোধগুলি পুনরায় চেষ্টা করুন৷

ত্রুটি অব্যাহত থাকলে, যোগাযোগ ফর্ম ব্যবহার করে সহায়তার সাথে যোগাযোগ করুন।