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