노하우 정리
httpclient hard timeout 설정 본문
int timeout = clientApiVO.getTimeout();
RequestConfig requestConfig = HttpClient.getDefaultRequestConfig(timeout);
HttpClientBuilder httpClientBuilder = HttpClient.getDefaultHttpClientBuilder(requestConfig);
httpClient = httpClientBuilder.build();
/*************************************************************
* 연동 타임아웃 설정 구현 시작 (TEST CODE)
************************************************************/
final HttpUriRequest httpRequest = clientApiVO.getHttpRequest();
TimerTask timeoutTask = new TimerTask() {
@Override
public void run() {
if(httpRequest != null) {
LOG.debug("TimerTask : httpRequest.abort() called.");
httpRequest.abort();
}
}
};
new Timer(true).schedule(timeoutTask, 3000);
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.execute(timeoutTask, 3000);
/*************************************************************
* 연동 타임아웃 설정 구현 끝
************************************************************/
response = httpClient.execute(clientApiVO.getHttpRequest());
HttpClient.sendAfter(clientApiVO, response);
'JAVA > Tip' 카테고리의 다른 글
Java socket 오류 (0) | 2021.03.12 |
---|