我是springbatch的新手,我正在尝试从CSV文件中尝试使用石英调度程序每10秒读取约2000条记录并将其写入数据库的方法。 问题在于,每次它从头开始读取文件时,都会将相同的记录集写入数据库。 我尝试动态更改参数“ setLinesToSkip”,但无济于事,这可能是因为它包含在我的默认bean定义中。 有什么方法可以使我从同一位置恢复处理,或者可以更新setlinetoskip中的值
@Bean
public Step stepOne() {
return stepBuilderFactory
.get("stepOne")
.<Stock,Stock>chunk(5)
.reader(reader())
.processor(processor())
.writer(writer())
.build();
}
@Bean
public Job readCSVFileJob1() {
return jobBuilderFactory
.get("readCSVFileJob1")
.incrementer(new RunIdIncrementer())
.start(stepOne())
.build();
}
@Bean
public ItemProcessor<Stock, Stock> processor(){
return new DBLogProcessor();
}
@Bean
public FlatFileItemReader<Stock> reader() {
FlatFileItemReader<Stock> itemReader = new FlatFileItemReader<Stock>();
itemReader.setLineMapper(lineMapper());
itemReader.setLinesToSkip(1);
itemReader.setMaxItemCount(2000);
itemReader.setResource(new FileSystemResource("example.csv"));
return itemReader;
}