제한 시간 및 재시도 구성

다양한 디스플레이 및 Video 360 API 메서드는 몇 초 정도 걸릴 수 있습니다 이러한 메서드에 대한 요청은 API 또는 클라이언트 측에서 오류가 발생할 수 있습니다. 이 페이지에는 요청 지연 시간 연장으로 인해 발생하는 문제를 처리하는 방법을 설명합니다.

클라이언트 라이브러리에서 기본 제한 시간 늘리기

몇 가지 특정 메서드는 참조 문서에 라벨이 지정되어 있습니다. 발생하는 경우가 많기 때문입니다 다른 방법으로도 주기적으로 점검합니다.

일부 클라이언트 라이브러리의 기본 제한 시간 제한으로 인해 다음과 같은 경우 오류가 발생할 수 있습니다. 높은 지연 시간이 있는 요청을 실행할 수 있습니다 지원되는 클라이언트의 하위 집합에 대한 기본 제한 시간 라이브러리는 다음과 같습니다.

  • 자바: 20초
  • Python: 60초
  • PHP: 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 생성 시 함수 호출 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. 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)
    

PHP

  1. 다음을 사용하여 Guzzle HTTP 라이브러리를 다운로드하고 설치합니다. Composer

    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을 반환함 오류 응답이 반환됩니다.

요청이 이러한 오류 코드 중 하나로 응답하는 경우 지수 백오프 전략을 사용하여 요청을 재시도합니다.

오류가 계속되면 문의 양식을 사용하여 지원팀에 문의하세요.