Мне нужно создать приложение Java EE, которое конвертирует большие документы в различные форматы.Каждое преобразование занимает от 10 секунд до 2 минут.Запросы SOAP будут поступать из клиентского приложения, которое я также должен создать.
Как лучше всего обрабатывать эти длительные запросы?Очевидно, что процесс занимает много времени без какой-либо обратной связи с пользователем.
Я могу придумать следующие способы предоставления какой-либо обратной связи, но я не уверен, что нет лучшего способаВозможно, что-то стандартизировано.
- Клиент выполняет запрос из потока, а сервер отправляет документ в ответ, что может занять несколько минут.До этого клиент отображает сообщение «Пожалуйста, подождите», индикатор выполнения и т. Д. ( Это кажется простым для реализации. )
- Клиент отправляет команду «Начать преобразование».Сервер возвращает какой-то идентификатор задания , который клиент может использовать, чтобы часто запрашивать обновление статуса или окончательный документ.( Это кажется удобным для пользователя, потому что я могу отображать прогресс, но также требует, чтобы сервер был с состоянием. )
- Клиент отправляет команду «Начать преобразование».Сервер как-то уведомляет клиента, когда это сделано.( Здесь я даже не знаю, как это сделать )
Есть ли другие подходы?Какой из них является лучшим с точки зрения производительности, стабильности, отказоустойчивости, удобства использования и т. Д.?
Спасибо за ваши ответы.