2016-12-27 32 views
1

隨着經典的Java多線程執行,並行化執行可以容易地證明(參見:SO: Java Thread Example) 通過調用Java Spring批處理:如何驗證執行是否並行完成?

this.getId() 

這導致System.output.println():

[ID 9] 
[ID 10] 
[ID 8] 

如何我能證明並行執行真的發生在Java Spring Batch/Spring Boot中嗎?

+0

你在春天批量使用工作? – Patrick

+0

春季開機批次對我來說是全新的。所以如果有幫助,我可以使用作業 – user2145488

回答

0

一個非常通用的方法是:

Thread thread = Thread.currentThread(); 
    System.out.println(thread); 
1

就像documentation描述的那樣,你可以配置jobssteps

要查看哪個作業或步驟正在運行,您將同時提供一個名稱。

@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有許多關於您的工作的信息。

這裏是一些有用的文檔:

+0

如何在一個步驟中使用JobExecution? – user2145488