【发布时间】:2021-10-06 23:25:50
【问题描述】:
我正在使用 MultiResourceItemReader,它采用资源数组。我想根据每个资源中的行数动态设置块大小。
下面是配置文件中配置的步骤。
@Bean
public Step processStep(){
return stepBuilderFactory.get("processStep").<itempojo,itempojo>chunk(3) //I dont want to set fixed chunk here
.reader(multiResourceItemReader())
.processor(processor())
.writer(writer())
.listener(readerListener())
.build();
/** MulitResource Item Reader */
public MultiResourceItemReader<ItemPojo> multiResourceItemReader(){
MultiResourceItemReader<ItemPojo> itemreader = new
MultiResourceItemReader();
itemreader.setResources(resources);
itemreader.setDelegate(flatFileReader());
}
在 MultiResourceItemReader 的情况下,任何人都可以建议我如何处理动态块大小。如果需要任何信息,请告诉我谢谢。
【问题讨论】:
-
你的意思是要在step运行的时候根据当前资源在运行时改变chunk的大小吗?
-
@MahmoudBenHassine 是的,在 JobExecution Listener 中(在 Item 之前)动态设置 Resources Array 并传递给 MultiResourceItem Reader。为了提供更多输入,我已经使用配置的阅读器更新了问题。
标签: java spring spring-boot spring-batch