Я не очень разбираюсь в Java EE, но в настоящее время изучаю его.
Я разработал проект, который включает в себя долго выполняющуюся задачу (до нескольких минут), вызываемую пользователем.Задача состоит из нескольких этапов.Конечно, я хотел бы показать прогресс пользователю.
В проекте используется Java EE с JPA, JSF и Icefaces.Он работает на Glassfish.
Опытный коллега посоветовал мне следующий шаблон:
- Создайте асинхронный EJB без сохранения состояния, который создает объект ответа и обрабатывает запрос
- Сохранять объект ответа после каждого шага
- В компоненте поддержки запросите и отобразите объект ответа
Это работает хорошо.Моя единственная проблема - обновить статус сайта, чтобы отразить прогресс.В настоящее время я делаю это с простой страницей JavaScript, перезагружаемой каждые x секунд.
Знаете ли вы способ / шаблон для отражения текущего шага от ejb без состояния к компоненту поддержки jsf?Или, и я бы предпочел, чтобы вы знали, как запрашивать значение базового компонента каждые x секунд?
Редактировать:
Мне известно оМеханизм выдвижения Icefaces, но я хочу, чтобы сайт обновления статуса был отделен от EJB вычисления по следующим причинам:
- Возможно, компонент поддержки уже уничтожен, поскольку пользователь покинул сайт и позже вернулся для получениярезультат
- Несколько сессий и, следовательно, несколько бинов могут существовать для одного пользователя
- Имея чистый дизайн