Java Spring Batch:如何验证并行完成执行?

时间:2016-12-27 07:01:26

标签: java spring multithreading spring-boot spring-batch

使用经典的java多线程执行,可以轻松证明并行执行(参见:SO: Java Thread Example) 通过调用

this.getId()

导致System.output.println():

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

如何在Java Spring Batch / Spring Boot中证明并行执行真的发生?

2 个答案:

答案 0 :(得分: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有很多关于你工作的信息。

这里有一些有用的文档:

答案 1 :(得分:0)

一种非常通用的方式是:

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