首页 文章

Camel文件拆分和聚合

提问于
浏览
1

我正在处理一个CSV格式的大文件,我用split来破解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个文件 . 最后,我还需要保留生成和出错的新文件数量 . 有人可以帮忙吗?

1 回答

  • 0

    如果存在异常,您可以在标头中设置一些标志,并且可以在aggregationStrategy(第 Split aggregate request/reply sample 节)中计算这些标志 . 属性strategyRef在xml中

相关问题