Mengonfigurasi waktu tunggu dan percobaan ulang

Banyak Display & Metode Video 360 API melakukan operasi kompleks yang mungkin memerlukan waktu lebih dari beberapa detik hingga selesai. Permintaan ke metode ini terkadang dapat melebihi latensi yang diharapkan, yang menyebabkan error pada API atau sisi klien. Halaman ini mencantumkan untuk menangani masalah yang disebabkan oleh latensi permintaan yang diperpanjang.

Meningkatkan waktu tunggu default di library klien

Beberapa metode spesifik telah diberi label dalam dokumentasi referensinya karena biasanya melebihi latensi yang diharapkan. Metode lain juga bisa menunjukkan dan latensi tinggi secara berkala.

Batas waktu tunggu default untuk beberapa {i>library<i} klien bisa mengakibatkan error saat dan membuat permintaan berlatensi tinggi. Waktu tunggu default untuk sebagian klien yang didukung library tersebut adalah:

  • Java: 20 detik
  • Python: 60 detik
  • PHP: 60 detik

Waktu tunggu sisi klien dapat dihindari dengan meningkatkan waktu tunggu default ini. Ikuti petunjuk ini untuk menyesuaikan waktu tunggu {i> default<i} untuk {i>library<i} klien Anda selama runtime:

Java

  1. Impor resource yang diperlukan.

    import com.google.api.client.http.HttpRequest;
    import com.google.api.client.http.HttpRequestInitializer;
    import java.io.IOException;
    
  2. Bangun fungsi untuk menyetel waktu tunggu 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. Memanggil fungsi saat membuat tab Display & Klien 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

  1. Impor modul http library klien Python Google API.

    from googleapiclient import http
    
  2. Perbarui konstanta waktu tunggu default.

    http.DEFAULT_HTTP_TIMEOUT_SEC = http-timeout-in-seconds
    
  3. Bangun layanan API.

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

PHP

  1. Download dan instal library HTTP Guzzle menggunakan Komposer.

    composer require guzzlehttp/guzzle:^7.0
    
  2. Buat klien HTTP Guzzle, dengan menetapkan nilai waktu tunggu.

    $httpClient = new \GuzzleHttp\Client(['timeout' => http-timeout-in-seconds]);
    
  3. Membuat klien Google dan menetapkan klien HTTP Guzzle.

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

Menangani error waktu tunggu API

Dalam kasus yang jarang terjadi, permintaan yang menyelesaikan operasi kompleks dapat melebihi waktu tunggu sisi server 180 detik, yang menyebabkan API menampilkan 408 atau 504 respons error yang ada.

Jika permintaan merespons dengan salah satu kode error ini, sebaiknya mencoba lagi permintaan ini menggunakan strategi backoff eksponensial.

Jika error tetap terjadi, hubungi dukungan menggunakan formulir kontak.