Я должен создать JAVA EE-приложение, которое преобразовывает большие документы в различные форматы. Каждое преобразование берет между 10 секундами и 2 минутами. Запросы SOAP будут выполнены от клиентского приложения, которое я также должен создать.
Что лучший способ состоит в том, чтобы обработать эти длительные запросы? Очевидно процесс берет к большому количеству времени для выполнения без любой обратной связи пользователю.
Я могу думать о следующих способах обеспечить некоторую обратную связь, но я не уверен, нет ли лучшего пути, возможно, что-то стандартизированное.
Есть ли другие подходы? Какой является лучшим с точки зрения производительности, устойчивости, отказоустойчивости, удобным для пользователя и т.д.?
Спасибо за Ваши ответы.
Поскольку это почти все делается на стороне сервера, клиент мало что может сделать, кроме как как-то опрашивать сервер на предмет обновления статуса.
#1 - это хорошо, но пользователи очень быстро становятся нетерпеливыми. "Несколько минут" - это слишком долго для большинства людей. Для реализации #3 вам понадобится HTTP Streaming, но я думаю, что это излишество.
Я бы просто выбрал #2.
Для 3 сервер должен вернуть уникальный идентификатор клиенту, и, используя этот идентификатор, клиент должен запросить результат у сервера позже