Много раз есть несколько длинных процессов, называемых http-сервлетами в веб-приложении Java. Типичным примером будет преобразование 100 mp3-файлов в формат flak (только случайный пример). Http-соединение будет живым, но поскольку процесс займет много времени, мы можем создать некоторый индикатор выполнения для отображения на веб-странице (желательно uisng ajax), который указывает на прогресс задачи. Какая должна быть схема дизайна для этого? Скажем, метод post Servlet будет ссылаться на фактический долгосрочный процесс, а метод get Servlet будет ссылаться на слушателя прогресса?Веб-приложение Java: Мониторинг прогресса
2
A
ответ
4
В Java EE я бы рекомендовал следующую структуру:
- сервлет вызов (POST, например) начнет процесс
- СТОЛБ будет использовать вызов
@Asynchronous
EJB, чтобы обработать тяжелый груз, так который начнет выполнять длительный процесс. - Он также передаст объект держателя хода, например POJO, который помещается в контекст/сеанс (также будет выполняться @Stateful EJB)
- POST возвращается, фоновое задание продолжается
- Проверка статуса выполняется по HTTP-вызовам Ajax, они используют тот же сеанс, что и стартер
- вызов Ajax получает держатель объекта хода из сессии/контекста/@ Stateful, считывает состояние и возвращает
- статус постоянно обновляются в фоновом потоке (обновление должно быть синхронизировано, если вы используете только один атрибут boolean, char, int или float (максимальные 32-разрядные примитивы))
Обратите внимание, что @Asynchronous
можно приобрести с EJB 3.1.
Смежные вопросы
- 1. Мониторинг прогресса анализатора Java SAX
- 2. Мониторинг прогресса в xargs
- 3. Мониторинг прогресса в синхронных вызовах XMLHttpRequest
- 4. Мониторинг прогресса загрузки виртуальных данных Virtuoso
- 5. Мониторинг Java из Java
- 6. Мониторинг прогресса для рекурсивной задачи в файловой системе
- 7. Мониторинг ObjectOutputStream в Java
- 8. Мониторинг трафика в Java
- 9. мониторинг использования java cpu
- 10. Мониторинг запроса java
- 11. Java | Мониторинг JavaBean
- 12. Мониторинг java-процессов JMX
- 13. Мониторинг GC в java
- 14. Мониторинг использования Java-кучи
- 15. Мониторинг коллекции мусора Java
- 16. Мониторинг партии Java
- 17. Мониторинг производительности Java
- 18. Мониторинг приложений Java
- 19. Мониторинг Java EE (JBoss)
- 20. Мониторинг состояния клиента Java
- 21. Мониторинг трафика Java-приложения
- 22. Строки прогресса в Java
- 23. итерации обнаружения прогресса Java
- 24. Мониторинг прогресса для длинных запросов на ввод/обновление
- 25. Как использовать мониторинг прогресса в коде плагина eclipse?
- 26. Мониторинг сжатия файлов
- 27. Мониторинг прогресса записи с использованием IMAPI 2.0 и передачи обновлений в Java
- 28. Мониторинг показателей API-приложения Java
- 29. Мониторинг приложений Java через SNMP
- 30. Мониторинг с использованием java Thread
См. [Это сообщение] (http://stackoverflow.com/questions/7474080/java-web-app-futuretask-progress-bar) для одной идеи. –