2015-08-24 99 views
1

我正在處理一個具有CSV格式的大文件,我已經使用拆分來打破CSV。下面是示例文件格式:駱駝文件拆分和聚合

**Item1,Item2,Item3,Item4 
    Item1,Item5,Item7,Item2** 

這是我的路由信息​​:

<route> 
    <from uri="file://Data/groupedDocs?preMove=staging&amp;delete=false" /> 
    <split streaming="true" parallelProcessing="true"> 
    <tokenize token="\n" group="1" /> 
    <to uri="bean:groupProcessor" /> 
    </split> 
    <log message="File Sent!!!"/> 
</route> 

在上面的代碼中,我的groupProcessor正在處理從CSV文件中的各個行。

問題是,如何知道是否所有記錄都已處理?可能有10或100條記錄。我看到了聚合器模式,但問題是我不想聚合,即我沒有讀取所有記錄並將它們轉儲到文件中。我正在爲CSV文件中的每一行創建一個新文件。 CSV文件中的某些行也可能會生成錯誤,因此對於出錯的條目,我不會創建任何新文件。例如。在CSV文件中,我有10行,其中2個拋出一些異常,因此我必須將這2個記錄爲例外,併爲其餘條目生成8個文件。最後,我還需要保持生成和出錯的新文件的數量。任何人都可以在這裏幫忙嗎?

+0

看到我的這個答案駱駝聚合策略http://stackoverflow.com/questions/26346772/camel-aggregation-strategy/26348903#26348903 – Namphibian

回答

0

如果出現異常,您可以在標頭中設置一些標誌,並且您可以在aggregationStrategySplit aggregate request/reply sample)中計數該標誌。屬性strategyRef in xml