Pergunta

Alguém sabe como monitorar longo executando processos do lado do servidor em GWT, que não interrogar o servidor? Precisamos fazer alguma de várias etapas, eu processamento O-bound demorado, / no servidor, e que seria bom para mostrar o progresso deste processamento no navegador.

Foi útil?

Solução

Este é bastante fácil de manusear em GWT.

O processo de longa duração ou é desencadeada por uma chamada GWT RPC, caso em que você tem o seu ponto de entrada, ou não é, caso em que você precisa para começar esta off manualmente.

Lembre-se que as chamadas GWT RPC são assíncronos para que eles não precisam retornar imediatamente. Você precisa de uma chamada RPC como checkStatus(). Assim, você pode fazer coisas como:

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
    }
});

e em seu serviço RPC:

void checkStatus(AsyncCallback<JobStatus> callback);

O seu servidor pode demorar tanto tempo como ele gosta (dentro da razão) para retornar de checkStatus (). Ele pode voltar, porque o trabalho é feito ou apenas com uma atualização de status do trabalho. O acima continuará looping até que o sinalizador de status trabalho feito está definido.

Outras dicas

Eu acho que depende do seu processo, mas se você está indo fazer algo como Data Streaming você pode usar push Server (ou cometa) technic.GWT apoia a implementação Comet. Google GWT + Comet, ou GWT + COMET + Tomcat, eu li sobre cometa e gwt em "Aplicativos Google Web Toolkit" Book (gwtapps.com).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top