Die Methode publishSync gibt nur Daten zurück, wenn die ferne Dokumentgenerierung abgeschlossen ist, unabhängig vom Erfolg des
Generierungsprozesses. Wenn diese Methode Daten zurückgibt, können Sie anhand des Ergebniscodes den Status ermitteln. Eine andere Prüfoption besteht darin,
die asynchrone Methode publish zu verwenden.
Anschließend können Sie im Client-Thread warten, bis der Thread abgeschlossen ist, und den Status mit der Methode
getStatus des Generators ermitteln.
Methode publishSync verwenden
RRDGEngine.EngineStatus status = generator.publishSync(docSpec, previewQueryLimit);
// An diesem Punkt ist der Vorgang abgeschlossen (erfolgreich oder nicht), und der Jobstatus ist in der Statusvariable angegeben.
Methode publish verwenden
In den meisten Fällen ist die Methode
publishSync am einfachsten. Die Methode
publish kann verwendet werden, wenn der Client-Code nicht auf den Abschluss des Jobs wartet, damit die Clientanwendung nicht durch die Prüfung blockiert wird.
Das gilt insbesondere für das Szenario der fernen Dokumentgenerierung.
Für asynchrone Jobs ist der Ablauf folgender:
- Job starten
- Job in regelmäßigen Abständen abfragen, um festzustellen, ob er abgeschlossen ist
Thread t = generator.publish(docSpec, previewQueryLimit);
// So werden fast unmittelbar Daten zurückgegeben. An diesem Punkt läuft die Dokumentgenerierung normalerweise noch, sodass der Client-Code auf den Abschluss des Prozesses warten muss.
// Auf Abschluss des Jobs warten
try
{
t.join();
// An diesem Punkt ist der Job abgeschlossen, und der Jobstatus kann wie folgt abgerufen werden:
RRDGEngine.EngineStatus status = generator.getStatus();
}
catch (InterruptedException e)
{
throw new RPEException(e);
}