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

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

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

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

Есть ли у кого-нибудь предложения по созданию надежного индикатора выполнения?

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


person benstpierre    schedule 11.08.2011    source источник


Ответы (1)


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

person Kathir    schedule 11.08.2011