多次运行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();
- KafkaAvroDeserializer不返回SpecificRecord但返回GenericRecord
- 一个带Java / Socket的简单Http服务器?
- 从java通信到C ++程序
- 为什么Java和C#没有隐式转换为布尔值?
- Java中的音乐循环
- Spring Data JPA – 是否可以对计算属性进行排序?
- date_trunc org.postgresql.util.PSQLException:错误:语法错误在“$ 1”或附近
- 基于XML +注释的MyBatis配置
- java.lang.UnsatisfiedLinkError:加载gnu.io.RXTXCommDriver时抛出的java.library.path中没有rxtxSerial