El método publishSync solo devuelve
resultados cuando se completa la generación de documentos remota,
independientemente de que la generación se realice correctamente o
no. Cuando dicho método devuelve resultados, puede comprobar el
código del resultado para determinar el estado. Otra forma de
opción de verificación es utilizar el método publish
que es asíncrono.
A continuación, en la hebra de cliente, puede esperar hasta que
finalice la hebra y comprobar el estado utilizando el método
getStatus del generador.
Utilización del método publishSync:
RRDGEngine.EngineStatus status = generator.publishSync(docSpec, previewQueryLimit);
// En este punto se realiza todo (satisfactoriamente o no) y el estado del trabajo está en la
variable de estado
Utilización del método publish:
En
la mayoría de los casos, el método
publishSync es
el método más conveniente. El método
publish se
puede utilizar cuando el código de cliente no espera a que finalice
el trabajo, especialmente en el escenario de generación de documentos
remota, así que la verificación no bloquea la aplicación cliente.
Para
los trabajos asíncronos, el flujo es:
- Iniciar trabajo
- Sondear el trabajo periódicamente para ver si ha terminado
Thread t = generator.publish(docSpec, previewQueryLimit);
// esto devuelve resultados casi inmediatamente y en este
punto, normalmente el docgen se sigue ejecutando, así que el código
de cliente debe esperarle
// esperar a que finalice el trabajo
try
{
t.join();
// aquí ha finalizado el trabajo y su estado se puede
obtener con
RRDGEngine.EngineStatus status = generator.getStatus();
}
catch (InterruptedException e)
{
throw new RPEException(e);
}