많은 Display & Video 360 API 메서드는 완료하는 데 몇 초 이상 걸릴 수 있는 복잡한 작업을 수행합니다. 이러한 메서드에 대한 요청은 때때로 예상 지연 시간을 초과하여 API 또는 클라이언트 측에서 오류를 유발할 수 있습니다. 이 페이지에서는 연장된 요청 지연 시간으로 인해 발생하는 문제를 처리하는 방법을 설명합니다.
클라이언트 라이브러리의 기본 제한 시간 늘리기
참조 문서에 몇 가지 특정 메서드가 정기적으로 예상 지연 시간을 초과한다는 라벨이 지정되어 있습니다. 다른 메서드도 지연 시간이 긴 동작을 주기적으로 보일 수 있습니다.
일부 클라이언트 라이브러리의 기본 시간 제한으로 인해 지연 시간이 긴 요청을 실행할 때 오류가 발생할 수 있습니다. 지원되는 클라이언트 라이브러리의 하위 집합에 대한 기본 제한 시간은 다음과 같습니다.
- 자바: 20초
- Python: 60초
- PHP: 60초
클라이언트 측 시간 초과는 이러한 기본 시간 제한을 늘리면 피할 수 있습니다. 다음 안내에 따라 런타임 중 클라이언트 라이브러리의 기본 시간 제한을 조정하세요.
Java
필요한 리소스를 가져옵니다.
import com.google.api.client.http.HttpRequest; import com.google.api.client.http.HttpRequestInitializer; import java.io.IOException;
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); } }; }
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();
Python
Google API Python 클라이언트 라이브러리 http 모듈을 가져옵니다.
from googleapiclient import http
기본 제한 시간 상수를 업데이트합니다.
http.DEFAULT_HTTP_TIMEOUT_SEC = http-timeout-in-seconds
API 서비스를 빌드합니다.
# Build the API service. service = discovery.build( 'displayvideo', 'v3', discoveryServiceUrl=discovery_url, credentials=credentials)
2,399필리핀
Composer를 사용하여 Guzzle HTTP 라이브러리를 다운로드하고 설치합니다.
composer require guzzlehttp/guzzle:^7.0
Guzzle HTTP 클라이언트를 만들고 제한 시간 값을 할당합니다.
$httpClient = new \GuzzleHttp\Client(['timeout' => http-timeout-in-seconds]);
Google 클라이언트를 만들고 Guzzle HTTP 클라이언트를 할당합니다.
$client = new Google_Client(); $client->setHttpClient($httpClient);
API 시간 초과 오류 처리
드물지만 복잡한 작업을 완료하는 요청이 서버 측 제한 시간인 180초를 초과하여 API에서 408
또는 504
오류 응답을 반환할 수 있습니다.
요청이 이러한 오류 코드 중 하나로 응답하는 경우 지수 백오프 전략을 사용하여 요청을 다시 시도하는 것이 좋습니다.
오류가 계속되면 문의 양식을 사용하여 지원팀에 문의하세요.