Я попытался обработать файл Excel с помощью PoiItemreader в Spring Batch. Программа работает успешно, когда файл Excel меньше или имеет нормальный размер. Однако, когда я попытался обработать файл большего размера (больше, чем 12 МБ). Файл не читается вообще.
У меня есть следующие вопросы:
- Каков предел размера файла для использования PoiItemreader?
- Будет ли работать MultiResourcePartioner с этим сценарием проблемы?
Большое спасибо.
Вот мой код:
@Configuration
@EnableBatchProcessing
public class BatchConfiguration {
@Autowired
public JobBuilderFactory jobBuilderFactory;
@Autowired
public StepBuilderFactory stepBuilderFactory;
@Bean
public Job csvProcessJob() throws FileNotFoundException {
return jobBuilderFactory.get("csvProcessJob")
.incrementer(new RunIdIncrementer())
.flow(csvProcessStep())
.end()
.build();
}
@Bean
public Step csvProcessStep() throws FileNotFoundException {
return stepBuilderFactory.get("stepCSVprocess")
.<String, Map<String, AttributeValue>> chunk(25)
.reader(excelReader())
.processor(processor())
.writer(writer())
.build();
}
@Bean
public PoiItemReader excelReader() throws FileNotFoundException {
PoiItemReader reader = new PoiItemReader();
reader.setLinesToSkip(1);
reader.setResource(new ClassPathResource("file_name.xls"));
reader.setRowMapper(excelRowMapper());
return reader;
}
private RowMapper<MetaData> excelRowMapper() {
return new MetaDataRowMapper();
}
@Bean
public ItemProcessor<MetaData,Map<String,AttributeValue>> processor() {
return new MapProcessor();
}
@Bean
public ItemWriter writer() {
return new AWSwriter();
}