隨着經典的Java多線程執行,並行化執行可以容易地證明(參見:SO: Java Thread Example) 通過調用Java Spring批處理:如何驗證執行是否並行完成?
this.getId()
這導致System.output.println():
[ID 9]
[ID 10]
[ID 8]
如何我能證明並行執行真的發生在Java Spring Batch/Spring Boot中嗎?
隨着經典的Java多線程執行,並行化執行可以容易地證明(參見:SO: Java Thread Example) 通過調用Java Spring批處理:如何驗證執行是否並行完成?
this.getId()
這導致System.output.println():
[ID 9]
[ID 10]
[ID 8]
如何我能證明並行執行真的發生在Java Spring Batch/Spring Boot中嗎?
一個非常通用的方法是:
Thread thread = Thread.currentThread();
System.out.println(thread);
就像documentation描述的那樣,你可以配置jobs
和steps
。
要查看哪個作業或步驟正在運行,您將同時提供一個名稱。
@Configuration
@EnableBatchProcessing
@EnableAutoConfiguration
public class BatchConfiguration {
@Autowired
private JobBuilderFactory jobBuilderFactory;
@Autowired
private StepBuilderFactory stepBuilderFactory;
@Bean
public Step step1() {
return stepBuilderFactory.get("step1")
.tasklet(new Tasklet() {
public RepeatStatus execute(StepContribution contribution, ChunkContext chunkContext) {
return null;
}
})
.build();
}
@Bean
public Job job(Step step1) throws Exception {
return jobBuilderFactory.get("job1")
.incrementer(new RunIdIncrementer())
.start(step1)
.build();
}
}
和JobExecution有許多關於您的工作的信息。
這裏是一些有用的文檔:
如何在一個步驟中使用JobExecution? – user2145488
你在春天批量使用工作? – Patrick
春季開機批次對我來說是全新的。所以如果有幫助,我可以使用作業 – user2145488