2012-05-18 2 views
1

У меня проблема:Архитектура приложения: обработка запроса

Я пишу веб-приложение с сервлетами и JSP, которые должны запрашивать отдельную службу. Но запрос занимает много времени - около 30 секунд.

Структура моего приложения проста - Filter-> Controller-> jsp. Я думал, что если в фильтре я отправлю запрос в отдельный поток, который будет обработан, пока контроллер продолжит выполнение своей работы. Что мне делать, чтобы одновременно обрабатывать процесс запроса и обработку контроллера? + Мне нужно, чтобы запрос обновлялся каждые 5 минут (чтобы у пользователя была соответствующая информация). Каков оптимальный способ сделать это?

ответ

1

Используйте ServletContextListener для запуска потока при запуске веб-приложения.

Нить должна записывать данные в ServletContext (например, через setAttribute()).

ServletContextListener должен прекратить поток, когда приложение остановлено.

Сервлет должен считывать данные из ServletContext по мере необходимости.