【发布时间】:2019-11-26 08:28:39
【问题描述】:
您好,我是 Spring Batch 的新手,我想为每个处理的块创建多个文件 (csv)。 FileName 类似于 timestamp.csv。 知道我该怎么做吗?基本上它是将一个大文件拆分为较小的文件。
谢谢!
【问题讨论】:
-
所以您希望在启动块(读取->处理->写入)逻辑之前将大文件拆分成较小的文件,并将一个小文件输入到步骤的块处理器?
-
嗨 @SabirKhan,1 个文件(实际上是 xlsx)包含大约 600k-800k 记录。由于文件太大而无法处理,我必须先将其拆分为包含 10 万条记录(块)的 csv 文件。
-
所以这部分被问到的问题(文件拆分)在我看来更像是 作业预处理,而不是实际的作业逻辑,因此您可以很好地编写自定义拆分器逻辑JobExecutionListenerSupport.beforeJob & 然后在所有文件上为拆分文件的目录设置实际作业。为了高效执行 - 分区似乎是一个用例。