Spring batch Spring批处理动态提交间隔

Spring batch Spring批处理动态提交间隔,spring-batch,Spring Batch,我有一个spring批处理应用程序,它使用平面文件作为条目读取器。这个单元包含两种不同类型的记录。在块的定义中,我必须指定一个动态提交间隔。应用程序每次读取新类型的记录时都必须提交 例如: 1, 'recordType1', 50 1, 'recordType1', 51 1, 'recordType1', 52 COMMIT 2, 'recordType2', 'foo' COMMIT 1, 'recordType1', 53 COMMIT 2, 'recordType2', 'foo' CO

我有一个spring批处理应用程序,它使用平面文件作为条目读取器。这个单元包含两种不同类型的记录。在块的定义中,我必须指定一个动态提交间隔。应用程序每次读取新类型的记录时都必须提交

例如:

1, 'recordType1', 50
1, 'recordType1', 51
1, 'recordType1', 52
COMMIT
2, 'recordType2', 'foo'
COMMIT
1, 'recordType1', 53
COMMIT
2, 'recordType2', 'foo'
COMMIT
1, 'recordType1', 50
1, 'recordType1', 50
1, 'recordType1', 50
1, 'recordType1', 50
COMMIT
2, 'recordType2', 'foo'
2, 'recordType2', 'foo'
2, 'recordType2', 'foo'
2, 'recordType2', 'foo'
COMMIT

我如何才能做到这一点?

CompletionPolicy就是为了实现这个用例而设计的。也就是说,您希望根据标准提交,而不仅仅是一个固定的数字。看看

org.springframework.batch.repeat.CompletionPolicy
而不是提交间隔,并利用isComplete方法来评估记录以及它是否应该提交区块