如何使用不同的参数开始每个SpringBatch步骤?

时间:2019-07-29 15:34:16

标签: spring spring-batch

我是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;
    }

0 个答案:

没有答案