Долгосрочный отчет вызывает тайм-аут сети.Как бросить исключение? - PullRequest
0 голосов
/ 01 марта 2012

Я вызываю сторонний отчет API для запуска отчетов.API принимает HttpRequest и Repsonse и записывает отчет в ответ.Бывают случаи, когда выполнение этих отчетов занимает много времени (и время ожидания сети (5 минут) приводит к тому, что всплывающее окно браузера остается пустым. «Ошибка страницы не найдена» или любой другой тип ошибки не отображается.

У клиента есть требование определить, истек ли тайм-аут сети, и показать в окне страницу с ошибкой. Я провел поиск по форуму и многое узнал о тайм-ауте сеанса. Это не тайм-аут сеанса. Есть идеи, как это сделать?принудительно установить свой тайм-аут и перенаправить на страницу ошибки по истечении выбранного мной времени?

Я использую JSF 2 / Richfaces 4.0 / Webshpere 7

Одно быстрое примечание. Я не могу изменить требования. Ядолжен вызвать этот API, и я должен отобразить ошибку. Я не могу переключиться на решение, чтобы сохранить соединение или использовать любой тип push

1 Ответ

0 голосов
/ 01 марта 2012

Я думаю, что вам нужно обработать тайм-аут соединения вашим клиентским кодом. Вы можете выполнить вызов API через ajax и настроить допустимое значение тайм-аута для удовлетворения требований. вот ссылка, которую я искал в Google, может быть, это будет полезно. Изящная обработка тайм-аутов в AJAX с использованием клиентского кода

Добавлено примечание: вы можете просто использовать setTimeout (обработчик, 300000) и проверить возвращаемое значение API в обработчике, если все еще не возвращено, вызвать window.location.href = 'ваш перенаправленный URL'.

...