Индикатор выполнения для мониторинга длительной задачи в GWT

Мне нужно написать индикатор выполнения, который отслеживает ход создания очень больших файлов PDF. Мы знаем, как очень точно наблюдать за ходом создания PDF-файла на стороне сервера, но не можем найти хороший способ отслеживать состояние из браузера.

Несколько предложений..

  1. Создайте guid для задания, когда запрос servlet / gwt-rpc запускает задание, верните guid клиенту. Каждые x секунд запрашивают другой метод gwt-rpc с ранее возвращенным guid. Поскольку прогресс происходит в медленно выполняющемся процессе, мы помещаем статус в переменную сеанса с именем этого guid. Когда мы достигнем 100%, скачайте файл из динамически определенного местоположения и отправьте реальный файл в браузер с помощью обычного сервлета.
  2. Используйте ajax-push, чтобы длительное http-соединение мгновенно передавало статус.

У кого-нибудь есть предложения о том, как спроектировать надежный индикатор выполнения?

Любые предложения о том, как справиться с этим? Что касается пользовательского интерфейса, я, скорее всего, напишу свой собственный виджет, поскольку строка состояния проекта gwt-инкубатора устарела (вместе со всем проектом).

1 ответ

У нас похожий сценарий. Мы выполняем несколько заданий на сервере и во время выполнения опрашиваем сервер с идентификатором задания. Когда работа завершена, мы обновляем статус GUI до готового. Мы использовали RequestFactory, так как мы храним статус задания в базе данных. Работает отлично.

Другие вопросы по тегам