Spring批处理

Spring Batch processing

我正在从数据库中读取 10000 条记录。但是,我只想处理 5 条记录。

如何在 Spring 批处理中只处理 5 条记录?我希望我的 .processor(processor()) 只执行 5 次。这是我的代码

 @Bean
  public Step step1(ItemWriter<BillerOrder> writer) {
      return stepBuilderFactory.get("step1")             
              .<BillerOrder, BillerOrder> chunk(1)
              .reader((ItemReader<? extends BillerOrder>) reader())
              .processor(processor())
              .writer(writer)
              .build();
  }

我希望我的 .processor(processor()) 只执行 5 次。

Yes, I can limit the records in sql query. But, I was thinking if there is mechanism to do in Spring Batch.

您可以编写自定义 CompletionPolicy 或使用 ItemReadListener 在 5 条记录后停止该步骤,但我 推荐这样做。解决您的用例的简洁方法是限制查询中的项目数量(即只读需要处理的项目)。