多次运行spring批处理作业

我使用以下教程创建了一个带有spring boot的spring批处理作业:

https://spring.io/guides/gs/batch-processing/ 

工作是读取文件并按预期写入数据库。

但是,现在我有一个用例来多次运行这个工作。

我有一个参数的ArrayList

我应该对作业做些什么改变,以便我可以运行我的ArrayList大小的作业次数?

您可以像这样手动启动批处理作业

 @Component Class Someclass{ ............... @Autowired private JobLauncher jobLauncher; @Autowired private Job job; public void someFunction(){ jobLauncher.run(job, new JobParameters()); } } 

唯一的问题是,如果批处理作业已经完成,则无法重新启动批处理作业,它会抛出一个错误,指出状态为COMPLETED。 为此,您必须将allowStartIfComplete属性设置为true。 这必须在您的批处理步骤配置中完成,类​​似这样

 stepBuilderFactory.get("step1") . chunk(10) .reader(reader()) .processor(processor()) .writer(writer()) .allowStartIfComplete(true) .build();