繁体   English   中英

每个资源的Spring Batch MultiResourceItemReader块提交

[英]Spring Batch MultiResourceItemReader Chunk Commit Per Resource

我目前有一个执行以下任务的Spring Batch作业:

  1. 使用委托给FlatFileItemReader的MultiResourceItemReader读取csv文件列表。
  2. 将每个文件拆分为多个块,并将每个块作为JMS消息写入,每个消息均包含块中的行列表以及JSON格式的基础资源的文件名。

我想要的是每个块仅包含来自单个文件资源的行,以便JMS消息上的文件名将链接到相应的文件。

问题是,当完成一个文件资源的处理时,阅读器将继续处理下一个资源,这意味着将多个资源文件中的行插入到同一块中,并且filename属性不一定与该文件中的基础数据匹配。块。

有什么干净的方法可以防止阅读器在同一块中包含来自单独文件资源的行?

编辑:我相信解决方案将需要使用自定义块完成策略,以某种方式确定当前正在读取的项是否来自与上一行相同的资源,但不确定这样做是否可行。 有什么想法吗?。

我将实现更改为使用MultiResourcePartitioner为每个文件创建一个分区步骤,现在一切正常。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM