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