Spring批处理作业处理多个文件,但一次只能处理一个文件

时间:2017-05-22 07:22:36

标签: spring-batch

我有一个弹簧批处理作业,我需要从文件夹中读取多个文本文件。 要求如下: - 我需要读取一个文件,如果有超过300行的条目,那么我需要将块大小设置为300并在数据库中写入相同的内容。 如果它小于300,那么我需要将块大小设置为代码行数并写入数据库。 然后我需要读取下一个文件并写入数据库,直到文件夹中的所有文件都被消耗。

1 个答案:

答案 0 :(得分:0)

这是分区步骤的完美用例。通常,您需要Partitioner标识要处理的文件。它将分离创建子步骤,每个步骤将处理一个孩子。对于那些子步骤,您将块大小设置为300(框架将在到达文件末尾或300的任意倍数时自动提交。)

您还需要为子步骤设置任务执行程序。在您的情况下,由于您只想一次处理一个文件,SyncTaskExecutor非常合适。

有关详细信息,请参阅Spring Batch documentationthis example