Как избежать исключения тайм-аута шлюза путем увеличения времени отклика http
Если у вас есть Java-приложение, которое выполняет http-вызов ruby-приложения, которое выполняет определенные sql-запросы и возвращает HTTP-ответ 200 на java-приложение, моя проблема в том, что ruby-приложению требуется более 5 минут для завершения выполнения при проверке Журнал Java-приложения после почти 3 минут он предоставляется как исключение времени ожидания шлюза. Как решить эту проблему?
HTTP-вызов Java для приложения ruby:
GetMethod get = new GetMethod(URL to ruby application);
Exception exception = null;
try {
// Get HTTP client
HttpClient httpclient = new HttpClient();
int resultCode = httpclient.executeMethod(get);
// Display status code
if (log.isInfoEnabled()) {
log.info("response status code: "
+ resultCode);
// Display response
log.info("Response body: " + get.getResponseBodyAsString());
}
if (resultCode != 200) {
log.error("Failed with status code: "
+ resultCode);
log.error("Response body: " + get.getResponseBodyAsString());
}
}
1 ответ
Вы можете использовать этот ответ, чтобы изменить время ожидания... Что-то не так с архитектурой, потому что никто не отправляет запросы и ждет ответа в приложении 5 минут.
Возможно, вам следует отправить запросы и вернуть "200" (ОК), если все параметры запроса в порядке (так что запросы могут быть выполнены) и когда результаты будут готовы (через 5 минут), вы можете сделать несколько вещей:
а. использовать сокетное соединение между сервером и клиентом и отправить клиенту результат. б. гораздо полезнее: отправить push-уведомление с результатами (не забывайте, что сегодня вы можете загрузить 4 k данных в push-уведомление.