2013-04-18 51 views
1

我有兩個騾子流,我想並行運行。第一個流程應該使用sftp將文件從遠程計算機傳輸到本地目錄(只要該文件在遠程目錄中不斷更新,是否會停止)。第二個流程必須通過調用Pentaho水壺轉換/作業(只要文件繼續進入,也是連續的過程),將文件中的數據更新/插入到數據庫中。但是,當我運行我的流程時,它以某種方式通過傳遞第一個流程並僅嘗試執行第二個流程。我怎樣才能解決這個問題?這裏是我的騾子流量:騾子並行運行流程

<flow name="flow1"> 
    <sftp:inbound-endpoint 
    address="sftp://username:[email protected]_ddress:22/path" 
    responseTimeout="1000" /> 
    <echo-component /> 
    <file:outbound-endpoint path="/path/to/OutputFolder" 
    responseTimeout="10000"/> 
</flow> 

<flow name="flow2"> 
    <custom-transformer class="org.transformation.kettle.InvokeMain" /> 
</flow> 

回答

2

你的第二個流應該有一個file:outbound-endpoint拿起第一流量下降的文件:

<flow name="flow1"> 
    <sftp:inbound-endpoint 
     address="sftp://username:[email protected]_ddress:22/path" 
     responseTimeout="1000" /> 
    <logger level="INFO" 
     message="#[message.payloadAs(java.lang.String)]" /> 
    <file:outbound-endpoint path="/path/to/OutputFolder" /> 
</flow> 

<flow name="flow2"> 
    <file:inbound-endpoint path="/path/to/OutputFolder" 
     fileAge="10000" /> 
    <custom-transformer class="org.transformation.kettle.InvokeMain" /> 
</flow> 

注意到我:

  • 用更現代的logger取代超舊<echo-component />。我記錄了消息有效載荷,我認爲這是您的意圖?
  • file:outbound-endpoint丟棄無用responseTimeout="10000"
  • 入站文件端點設置fileAge 10的秒,以防止拿起這仍然是由SFTP入站端點的書面文件。調整值如果太大或太小。
+0

那麼,這是否適合你? – 2013-04-19 16:17:51

+0

是的。這對我有效。感謝一羣戴夫。 – 2013-04-20 07:43:45

+0

很酷,你介意接受我的回答嗎?這是它在StackOverflow上的工作方式:) – 2013-04-22 15:55:47