Я также разрабатываю ETL, основанный на веб-приложении (с движком Kettle), используя Java.Остановить работу Чайник Работа/преобразование с использованием Java
У меня проблемы, при попытке остановить работу Job. Я не уверен, правильно ли используется CarteSingleton.java. Я использую пользовательскую карту одноэлементной.
Мой код ниже
Job job = new Job(null, jobMeta);
job.setLogLevel(LogLevel.DETAILED);
job.setGatheringMetrics(true);
job.start();
После job.start() вызывается, я пытаюсь сохранить этот объект задания на карте пользовательских одноплодной и получить точный объект работы, который был сохранен на карте , и при вызове stopAll() (см. код ниже) с другим вызовом REST, в то время как статус Job является RUNNING, чтобы остановить его. Но это не останавливает работу. Двигатель Kettle не получает уведомление об этом! Выполнение задания продолжается. Файл .kjb/.ktr создавал с помощью SPOON, хотя я не использую SPOON для запуска/остановки выполнения.
Есть ли API конфигурации чайник Я изменить, чтобы иметь возможность использовать
same job object
job.stopAll();
Не могли бы вы просветить на API и пример образца, если остановить выполняемое задание или преобразование с помощью Java ?
Любые указатели или помощь здесь были бы замечательными! Еще раз спасибо.
С уважением, Санджив
Спасибо. Но каков подход, чтобы гарантировать это? Предоставляет ли Pentaho какой-либо образец? Я также разместил их на своем сайте, но пока не нашел ответа. stackoverflow гораздо удобнее для разработчиков! –
На самом деле, я полагаю, что любые гарантии вряд ли возможны. В Java нет _legal_ способа вручную остановить потоки. Поскольку 'Job' происходит от шагов« Thread »и« transformations », как правило, выполняется в отдельных потоках, и их также невозможно остановить. –