Spring Batch:处理器/Writer执行次数与Chunk Size相关问题咨询
Spring Batch 处理器与 Writer 执行次数的常见疑问解答
处理器、Writer 执行次数和 Chunk Size 的关系
- 处理器(Processor):执行次数等于实际处理的有效记录数。每条从Reader读取且未被过滤的记录,都会单独走一次Processor逻辑,Chunk Size只是控制Writer批量提交的阈值,和Processor的单条执行逻辑无关。
- Writer:执行次数等于批量提交的次数。每次凑够Chunk Size条记录(或者Reader读完所有剩余记录),就会触发一次Writer。比如Chunk Size设为10,总有效记录是23,那Writer会执行3次(10条、10条、3条)。
记录集小于 Chunk Size 的场景
当Reader读取到的总有效记录数小于Chunk Size时:
- Reader读完所有记录后,会把这组不足Chunk Size的记录全部传给Processor,每条记录各执行一次Processor;
- 之后直接触发一次Writer,把所有处理后的记录一次性写入。
简单总结:处理器执行次数等于总有效记录数,Writer仅执行1次。
举个实际例子:Chunk Size设为15,Reader只读到8条有效记录,那Processor跑8次,Writer跑1次。
内容的提问来源于stack exchange,提问作者oe a
相关产品推荐
相关产品推荐

