Java 谓词分裂与并行处理

Java 谓词分裂与并行处理,java,spring,spring-batch,Java,Spring,Spring Batch,我是SpringBatch的新手,我不知道如何为我的问题找到正确的解决方案 我有一个100万或20万条记录的CSV文件。这些记录按id分组 身份证;head-x;正面的;正面的 1;;; 1;;; 1;;; … 1;;; 2;;; 2;;; 2;;; … 2;;; 3;;; 3;;; … 3;;; … 我想要的是将这些记录作为组进行处理。我阅读了所有1组记录流程,并将其转换为业务模型,并将其保存到我的数据库中 我需要并行地完成这项工作以加快处理速度。如果可能的话,我想在1的同时处理2和3 我已

我是SpringBatch的新手,我不知道如何为我的问题找到正确的解决方案

我有一个100万或20万条记录的CSV文件。这些记录按id分组

身份证;head-x;正面的;正面的
1;;;
1;;;
1;;;

1;;;
2;;;
2;;;
2;;;

2;;;
3;;;
3;;;

3;;;

我想要的是将这些记录作为组进行处理。我阅读了所有1组记录流程,并将其转换为业务模型,并将其保存到我的数据库中

我需要并行地完成这项工作以加快处理速度。如果可能的话,我想在1的同时处理2和3

我已经开始使用
StepBuilderFactory#chunk()
,但这给了我一个固定大小的块。我可以在一个块或一个未完成的块中获得多个组


您知道怎么做吗?

因为您的记录已经按Id按顺序分组,所以您可以使用将多个物理记录按Id读取到单个逻辑项中的。一旦这一点到位,您就可以同步读卡器(使其线程安全),并配置多线程步骤以并行处理项目


您还可以查看(作为示例的一部分)以将多个物理记录聚合为单个逻辑记录:。这里的多线程步骤也可以提高作业的性能。

指向示例的链接是一个工作代码示例。这个答案中缺少什么可以接受?再次感谢