簡體   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