Мы сталкиваемся с проблемой, которая часто возникает (чаще всего впервые) в следующей архитектуре.
У нас есть приложение X, связывающееся с приложением Y, которое вызывает внешний API.
Иногда приложение Y вызывает внешний API, которое оно отправляет обратно:
<html><body><h1>504 Gateway Time-out</h1>The server didn't respond in time.\n</body></html>
Мы попытались установить это значение в application.yml
server:
connection-timeout: 300000
А также изменение значения таймаута остальных шаблонов:
private ClientHttpRequestFactory getRequestFactory() {
HttpComponentsClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory();
factory.setReadTimeout(600000);
factory.setConnectTimeout(600000);
factory.setConnectionRequestTimeout(600000);
return factory;
}
Код, выдавший ошибку:
return CompletableFuture.supplyAsync(() -> {
try {
return restTemplate.exchange(uri, httpMethod, requestEntity, clazz);
} catch (Exception e) {
throw new CompletionException(e); // The exception we throw that contains the html code.
}
});
Есть идеи?