O método publishSync retorna apenas
quando a geração de documentos remotos é concluída, se a geração for
bem-sucedida ou não. Quando esse método retorna, é possível verificar
o código de resultado para determinar o status. Outra opção
de verificação é usar o método publish que é
assíncrono.
Em seguida, no encadeamento do cliente, você pode aguardar
até que o encadeamento esteja concluído e verificar o status usando
o método getStatus do gerador.
Usando o método publishSync:
RRDGEngine.EngineStatus status = generator.publishSync(docSpec, previewQueryLimit);
// At this point all is done ( successfully or not) and the job status is in the status variable
Usando o método publish:
Na
maioria dos casos, o método
publishSync é o método
mais conveniente. O método
publish pode ser
utilizado quando o código do cliente não aguarda o término da tarefa,
especialmente no cenário de geração de documento remoto, para que a
verificação não bloqueie o aplicativo cliente.
Para tarefas
assíncronas, o fluxo é:
- Iniciar tarefa
- Pesquisa a tarefa periodicamente para ver se ela terminou
Thread t = generator.publish(docSpec, previewQueryLimit);
// this reeturns almost immediately and at this point the docgen is usually still running so the client code needs to wait for it
// wait for the job to finish
try
{
t.join();
// here the job is finished and it status can be obtaine with
RRDGEngine.EngineStatus status = generator.getStatus();
}
catch (InterruptedException e)
{
throw new RPEException(e);
}