Как избежать подключения клиента межсетевым экраном из-за неактивности при обработке данных на Grails

У меня есть один Grails, работающий на сервере на Tomcat. Это приложение представляет собой веб-интерфейс для экспорта информации с сервера MySQL. Эта информация может быть экспортирована в зависимости от выбора, который вы сделали, но занимает некоторое время. Большая часть или процесс составляет около 40 минут. Это время, когда необходимо экспортировать всю информацию из базы данных и вернуть пользователю сжатый в один zip-файл.

Все работает правильно, но у нас проблема с одним клиентом. На них установлен какой-то прокси-сервер, и после 3 минут бездействия он закрывает соединение с сервером, и он не может ничего экспортировать, потому что все комбинации, которые он может выбрать для экспорта, занимают больше времени.

Клиентская сторона, страница GSP, ничего не делает, пока сервер вычисляет и создает сжатый файл, только ждет. Что я могу сделать, чтобы избежать этого закрытия соединения?

Это сообщение, которое получает клиент:

Ошибка сети (tcp_error) Произошла ошибка связи: "" Подробная техническая информация: URL: **** Прокси: fe0psg03 Адрес клиента: 10.2.122.105 Время: [15/10/2012:15:41:40 GMT] Пользователь: DE\roklinne Веб-сервер может быть недоступен, слишком занят или испытывает другие проблемы, мешающие ему отвечать на запросы. Вы можете попробовать еще раз позже.

Заранее спасибо за вашу поддержку,

1 ответ

Потому что этот процесс занимает до 40 минут. Я хотел бы рассмотреть выделение задачи и запуск ее в фоновом режиме.

пара предложений...

1) просто используйте классы параллелизма Java 5 (немного дополнительной работы)

2) Библиотека JSR-166y, предоставляющая удобные абстракции для Fork/Join и Parallel Array.

3) Плагин фоновой нити Grails

После этого вы можете иметь индикатор выполнения и дать пользователю обновленную информацию о том, как идут дела.

Другие вопросы по тегам