Sprawdzanie, czy dokument został wygenerowany pomyślnie

Powrót z metody publishSync ma miejsce po zakończeniu zdalnego generowania dokumentu, niezależnie od tego, czy generowanie zostało zakończone pomyślnie. Po powrocie z tej metody można sprawdzić kod wyniku, aby określić status. Inną opcją sprawdzania jest użycie metody publish, która jest asynchroniczna. Następnie w wątku klienta można poczekać na zakończenie wątku i sprawdzić status przy użyciu metody getStatus generatora.

Przy użyciu metody publishSync:

   RRDGEngine.EngineStatus status = generator.publishSync(docSpec, previewQueryLimit);
   // W tym momencie praca jest zakończona (pomyślnie lub nie), a status zadania znajduje się w zmiennej status.

Przy użyciu metody publish:

W większości przypadków metoda publishSync jest najwygodniejsza. Metody publish można użyć, jeśli kod klienta nie oczekuje na zakończenie zadania, szczególnie w scenariuszu zdalnego generowania dokumentów. Pozwala to uniknąć blokowania aplikacji klienckiej przez operację sprawdzania.
W przypadku zadań asynchronicznych przepływ jest następujący:
  • Rozpoczęcie zadania.
  • Okresowe odpytywanie zadania w celu sprawdzenia, czy zostało zakończone.
        Thread t = generator.publish(docSpec, previewQueryLimit);
        // Powrót z tej metody jest prawie natychmiastowy. W tym momencie generator dokumentów zazwyczaj nadal działa, a więc kod klienta musi oczekiwać na jego zakończenie.

        // Oczekiwanie na zakończenie zadania.
        try
        {
            t.join();

            // W tym momencie zadanie jest zakończone, a status można uzyskać za pomocą metody:
            RRDGEngine.EngineStatus status = generator.getStatus();
        }
        catch (InterruptedException e)
        {
            throw new RPEException(e);
        }

Opinia