Java Spring 批处理 : How to Verify That Execution is Done in Parallel?

标签 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 中确实发生了并行执行?

最佳答案

喜欢documentation描述您可以配置作业步骤

要查看当前正在运行的作业或步骤,您需要为两者提供名称。

@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有很多有关您工作的信息。

这里有一些有用的文档:

关于Java Spring 批处理 : How to Verify That Execution is Done in Parallel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41340512/

相关文章:

c++ - QtScript 和线程

java - 缺少 <some_project> 的 POM,没有可用的依赖项信息

java - 针对非标准 Java 技术的 Swagger API 集成

java - 无法在Apache Zeppelin上运行 pig 脚本

java - IntelliJ中等效的Eclipse工作区?

java - 如何在同一个 ehCache 中缓存 2 个不同的 bean 方法?

Spring 使用 SAML 进行 http-artifact 绑定(bind)

java - 获取与 hibernate 日期/时间匹配的记录

android - Android 中的多线程助手类

c++ - std::queue pop 推送线程安全