Zajmuję się także ETL opartym na aplikacji internetowej (z silnikiem Kettle), używając Java.Zatrzymaj pracę Kettle Job/Transformation za pomocą Java
Występują problemy podczas próby zatrzymania uruchomionego zadania. Nie jestem pewien, czy użycie CarteSingleton.java jest poprawne. Używam niestandardowej mapy singleton.
Moje kodu jest jak poniżej
Job job = new Job(null, jobMeta);
job.setLogLevel(LogLevel.DETAILED);
job.setGatheringMetrics(true);
job.start();
Po job.start() jest wywoływana, staram się zachować ten przedmiot pracy w mapie zwyczaj singleton i odzyskać dokładną obiektu zadania, który został zapisany w mapie oraz przy wywoływaniu metody stopAll() (zobacz poniższy kod) z innym wywołaniem REST, gdy status zadania to RUNNING, aby go zatrzymać. Ale to nie zatrzymuje pracy. Kettle Engine nie otrzymuje powiadomienia o tym! Job Execution trwa. Plik .kjb/.ktr tworzył przy użyciu SPOON, chociaż nie używam SPOON do uruchamiania/zatrzymywania wykonywania.
Czy istnieje czajnik API config mam zmienić, aby móc korzystać z
same job object
job.stopAll();
mógłbyś oświecić na API i próbki przykład, jeśli w ogóle, aby zatrzymać pracę bieganie lub transformacji przy użyciu Java ?
Wszelkie wskazówki i pomoc tutaj byłyby świetne! Dzięki jeszcze raz.
Pozdrawiam, Sanjeev
Dzięki. Ale jakie jest podejście, aby to zagwarantować? Czy Pentaho dostarcza jakąś próbkę? Zamieszczałem też na ich stronie - ale nie znalazłem jeszcze odpowiedzi. stackoverflow jest znacznie bardziej przyjazny dla programistów! –
W rzeczywistości, przypuszczam, że wszelkie gwarancje są prawie niemożliwe. W Javie nie ma _legal_ metody ręcznego zatrzymywania wątków. Ponieważ 'Job' wywodzi się z kroków 'Thread' i transformacji', normalnie wykonywane są w osobnych wątkach, nie ma sposobu, aby natychmiast je zatrzymać. –