【发布时间】:2019-09-26 03:26:02
【问题描述】:
我有一个Spring batch job,带有标准阅读器、编写器和处理器
我有一个简单的要求,如下所示:
1)无论阅读器读取的所有记录都应通过处理器处理传递给写入器
2) 我的读者通过 SQL 查询读取记录 因此,如果 reader 读取 100 条记录,则应立即将所有记录传递给 writer
3)如果它读取 1000 条记录,所有 1000 条应该一次通过
4)所以本质上,commit-interval 在这里是动态的而不是固定的。
5) 有什么办法可以做到这一点?
编辑:
为了更清楚,在 sprint batch 中,commit-interval 起到面向块的处理的作用 例如:如果 chunk-size = 10 ,读取器读取 10 条记录,将一条记录 1 一个 1 地传递给处理器,并且在提交间隔 (count = 10) 时,所有记录都由写入器写入。
现在我们想要的是动态提交间隔。无论读者正在阅读什么,都将立即传递给作者
【问题讨论】:
-
你的问题不清楚。 “应该立即传递给作家”是什么意思?您能解释一下在不参考 Spring Batch 的情况下要实现的目标吗?
-
我已经编辑了问题以更加清晰
-
什么时候你会知道commit-interval呢?只有在执行
SELECT查询时? -
@Atul 您能否提供您的解决方案,您是如何动态设置提交间隔的?
标签: spring-batch