2013-07-08 53 views
0

我有一個關於split(),resequence()與多線程一起集成的問題。我的(幼稚)路由看起來像這樣(簡稱說明問題):Apache Camel:在多線程中使用split()和resequence()

from("file:input") 
    .process(prioAssign) 
    .split(body().tokenize("\n")).streaming() 
     .resequence().simple("${in.header.prio}").allowDuplicates().reverse() 
     .to("direct:process")  
    .end() 
    .process(exportProcessor) 

from("direct:process") 
    .threads(10, 100, "process") 
    .process(importProcessor) // take some time for processing 

我想做到以下幾點:

  1. 的importProcessor工作應在多個線程分配
  2. (來自分離器)應該被優先處理(重新排序)
  3. 當處理所有分割對象時(從一個文件),必須觸發exportProcessor

上面的代碼的問題是,如果我包含重新排序步驟,導出立即觸發,重新排序本身不起作用。看來,我不明白駱駝背後的線程模型。

非常感謝所有提示!

回答

0

難道你的prioAssign處理器不能構建一個可以稍後拆分的主體,所以分割立即結束,所有內容都移動到exportProcessor中?

相關問題