Erfolg der Dokumentgenerierung überprüfen

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

Feedback