2017-08-13 153 views
-1

我正在寻找一种策略来处理大批量的弹簧批量记录。读者只需一行输入,处理器就可以生成一个尺寸如此之大以至于无法放入内存的项目列表。流程本质上是: read - > generate - > write弹簧批处理 - 处理大量数据

不确定是否需要某种嵌套批处理,或许使用tasklet,或者如果我一般持有spring批处理错误。

+0

是否有一个原因,你不能在一个单独的步骤预先生成列表的方式工作?登台表等? –

+0

我在想什么是做类似 阅读请求 - >有一些提供程序,一次提供500k生成的行 - >作家,他们写这样的。 问题是我该怎么做?我需要某种物品处理器,可以不断地将数据以大块的形式返回给作者,所以我不会炸掉堆。 – CoffeeIsProgramming

+1

我会创建一个读取器来完成这一代。 Reader获取输入,然后将生成内容的块提供为项目。其余步骤相应地工作。 –

回答

1

我会说你需要实现一个自定义Reader/Generator/Writer阅读状态 - 例如可分页,以便生成您生成“页面”列表的项目列表。每个页面都包含对来自文件和页面信息[偏移量,页面大小]的原始行的引用。

发电机依次将“源页面”转换为包含项目的较小容器。