我有一个弹簧批处理作业,我需要从文件夹中读取多个文本文件。 要求如下: - 我需要读取一个文件,如果有超过300行的条目,那么我需要将块大小设置为300并在数据库中写入相同的内容。 如果它小于300,那么我需要将块大小设置为代码行数并写入数据库。 然后我需要读取下一个文件并写入数据库,直到文件夹中的所有文件都被消耗。
答案 0 :(得分:0)
这是分区步骤的完美用例。通常,您需要Partitioner
标识要处理的文件。它将分离创建子步骤,每个步骤将处理一个孩子。对于那些子步骤,您将块大小设置为300(框架将在到达文件末尾或300的任意倍数时自动提交。)
您还需要为子步骤设置任务执行程序。在您的情况下,由于您只想一次处理一个文件,SyncTaskExecutor
非常合适。
有关详细信息,请参阅Spring Batch documentation或this example。