Zaman aşımlarını ve yeniden denemeleri yapılandırma

Birçok Görüntülü Reklam ve Video 360 API yöntemleri, birkaç saniye içinde tamamlanabilir. Bu yöntemlere yapılan istekler bazen neden olabilir. Bu da API veya istemci tarafında hatalara neden olur. Bu sayfada liste uygulama yöntemlerine göz atın.

İstemci kitaplığında varsayılan zaman aşımını artır

Referans belgelerinde bazı yöntemler etiketlenmiştir beklenen gecikmeyi düzenli olarak aşar. Başka yöntemler de yüksek gecikmeli davranışlar olduğunu unutmayın.

Bazı istemci kitaplıkları için varsayılan zaman aşımı sınırları, yüksek gecikmeli isteklerde bulunmaktır. Desteklenen bir istemci alt kümesi için varsayılan zaman aşımları kitaplıklar şunlardır:

  • Java: 20 saniye
  • Python: 60 saniye
  • PHP: 60 saniye

Bu varsayılan zaman aşımlarını yükselterek istemci tarafı zaman aşımlarını önleyebilirsiniz. Takip et sırasında istemci kitaplığınızın varsayılan zaman aşımını ayarlamak için çalışma zamanı:

Java

  1. Gerekli kaynakları içe aktarın.

    import com.google.api.client.http.HttpRequest;
    import com.google.api.client.http.HttpRequestInitializer;
    import java.io.IOException;
    
  2. HTTP zaman aşımını ayarlamak için işlev oluşturun.

    /**
     * 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'ı oluştururken Video 360 API istemcisi.

    // 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 istemci kitaplığı http modülünü içe aktarın.

    from googleapiclient import http
    
  2. Varsayılan zaman aşımı sabitini güncelleyin.

    http.DEFAULT_HTTP_TIMEOUT_SEC = http-timeout-in-seconds
    
  3. API hizmeti derleyin.

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

PHP

  1. Aşağıdakileri kullanarak Guzzle HTTP kitaplığını indirip yükleyin: Besteci.

    composer require guzzlehttp/guzzle:^7.0
  2. Zaman aşımı değeri atayarak Guzzle HTTP istemcisi oluşturun.

    $httpClient = new \GuzzleHttp\Client(['timeout' => http-timeout-in-seconds]);
    
  3. Google istemcisi oluşturun ve Guzzle HTTP istemcisi atayın.

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

API zaman aşımı hatalarını giderme

Nadiren, karmaşık işlemleri tamamlayan istekler 180 saniyelik sunucu tarafı zaman aşımı nedeniyle API, 408 veya 504 döndürmesine neden olur hata yanıtı.

Bu hata kodlarından biriyle yanıt veren istek için üstel geri yükleme stratejisini kullanarak bu istekleri yeniden deneyin.

Hata devam ederse iletişim formunu kullanarak destek ekibine ulaşın.