spring-batch - 弹簧批处理
问题描述
我正在从数据库中读取 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 次。
解决方案
是的,我可以限制 sql 查询中的记录。但是,我在想 Spring Batch 中是否有机制要做。
您可以编写自定义CompletionPolicy
或使用ItemReadListener
在 5 条记录后停止该步骤,但我不建议这样做。解决用例的简洁方法是限制查询中的项目数量(即需要处理的只读项目)。
推荐阅读
- r - R:如何将单个变量的值分成 3 个较小的组(限制如 <5、5-10、>10)?
- javascript - 每次DOM标签发生变化时如何执行js函数?
- php - 尝试进行验证时出现空白页
- javascript - React JS & HTML:通过 API 中的给定对象计算容器的高度(在容器内)
- json - 如何在 Spark 中使用文件名编写分区 json
- c# - 将浮点 NSNumber 的 NSArray 从 Objective-C 返回到 C#
- d - 有没有办法指定要覆盖的功能?
- excel - Powershell -> 在 Excel 中查找/替换 -> 在一个单元格中查找字符串并更改另一个单元格中的字符串
- django - 覆盖 Django 中继承模型的字段选项
- javascript - Vue Composition API - 无法向对象添加属性