繁体   English   中英

使用Java停止运行Kettle Job / Transformation

[英]Stop running Kettle Job/Transformation using Java

我正在使用Java开发基于Web应用程序的ETL(使用Kettle引擎)。

我在试图阻止正在运行的Job时遇到问题。 我不确定使用CarteSingleton.java是否正确。 我正在使用自定义单例映射。

我的代码如下

Job job = new Job(null, jobMeta);
job.setLogLevel(LogLevel.DETAILED);
job.setGatheringMetrics(true);
job.start();

调用job.start()后,我试图将该作业对象存储在自定义单例映射中,并检索存储在映射中的确切Job对象,以及使用另一个REST调用stopAll()(请参阅下面的代码)在Job的状态为RUNNING时调用,以阻止它。 但这并不能阻止正在运行的工作。 Kettle Engine没有得到通知! 工作执行继续。 .kjb / .ktr正在使用SPOON创建,尽管我没有使用SPOON来运行/停止执行。

是否有任何Kettle API配置我要更改,以便能够使用

   same job object
   job.stopAll();

您能否请教一下API和示例示例,如果有的话要停止正在运行的JOB或使用Java进行转换?

任何指针或帮助都会很棒! 再次感谢。

此致,Sanjeev

你的方法似乎是正确的。 但请注意,无法保证立即停止 - 它只是设置一个标志,指示执行不应继续。

Job.stopAll()设置标志在执行开始之前进行检查 ,但如果它已经开始,它将不会在现场停止

Trans.stopAll()行为类似。 它要求每个步骤停止,步骤内检查该标志。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM