Мониторинг процесса в GWT - PullRequest
       6

Мониторинг процесса в GWT

1 голос
/ 03 января 2009

Кто-нибудь знает, как контролировать длительные процессы на стороне сервера в GWT, кроме опроса сервера? Нам нужно выполнить некоторую длительную многоэтапную обработку ввода-вывода на сервере, и было бы неплохо отобразить ход этой обработки в браузере.

Ответы [ 2 ]

3 голосов
/ 04 января 2009

Это довольно легко обрабатывать в GWT.

Длительный процесс запускается вызовом GWT RPC, в этом случае у вас есть точка входа, или нет, и в этом случае вам нужно запускать ее вручную.

Помните, что вызовы GWT RPC являются асинхронными, поэтому им не нужно возвращаться немедленно. Вам нужен вызов RPC, например checkStatus(). Таким образом, вы можете делать такие вещи, как:

public class JobStatus {
  private boolean done;
  // other info
  // ...
}

public class JobStatusCallback<JobStatus> extends AsyncCallback {
    public final void onSuccess(JobStatus result) {
       if (result.isDone()) {
            done();
        } else {
            checkAgain();
        }
    }

    public final void onFailure(Throwable caught) {
       error(caught);
       checkAgain();
    }

    public void done() { // override
    }

    public void checkAgain() {
        service.checkStatus(this);
    }

    public void error(Thorwable t) { // override
    }
});

и в вашем сервисе RPC:

void checkStatus(AsyncCallback<JobStatus> callback);

Вашему серверу может потребоваться столько времени (в пределах разумного), чтобы вернуться из checkStatus (). Он может вернуться, потому что работа выполнена или просто с обновлением статуса работы. Вышеприведенное будет продолжаться до тех пор, пока не будет установлен флаг выполнения задания.

0 голосов
/ 03 января 2009

Я думаю, что это зависит от вашего процесса, но если вы собираетесь делать что-то вроде потоковой передачи данных, вы можете использовать Technic Server Push (или Comet). GWT поддерживает реализацию Comet. Google GWT + Comet или GWT + COMET + Tomcat. Я читал о комете и gwt в книге «Приложения Google Web Toolkit» (gwtapps.com).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...