首页 > 解决方案 > 弹簧批处理

问题描述

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

我该怎么做才能在 Spring Batch 中只处理 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 次。

标签: spring-batch

解决方案


是的,我可以限制 sql 查询中的记录。但是,我在想 Spring Batch 中是否有机制要做。

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


推荐阅读