我正在尝试实现一个Spring批处理作业,为了处理一个记录,它需要2-3个db调用,这减慢了记录的处理速度(大小为100万).If我使用基于块的处理,它将单独处理每个记录,并且在性能上会很慢。因此,我需要一次处理1000条记录,因为批量处理将减少数据库调用,并提高性能。但我的问题是,如果我实现微线程,那么我将失去可重启性和重试/跳过功能,如果使用AggregateInputReader实现,我不确定对可重启性和事务处理的影响。根据下面的线程,AggregateReader应该可以工作,但不能确定它对事务处理和故障情况下的可重启的影响:
发布于 2021-05-31 16:55:21
面向块的处理模型中的第一个扩展点是ItemWriteListener#beforeWrite(List items)
,它允许您访问要写入的项目列表。因此,如果您不想在ItemProcessor
中一次充实一个项目,则可以使用该侦听器一次为整个区块进行充实。
https://stackoverflow.com/questions/67742007
复制相似问题