【问题标题】:Spring Batch AbstractPagingItemReader first reads all records and then process and writesSpring Batch AbstractPagingItemReader 先读取所有记录再处理写入
【发布时间】:2021-11-19 03:14:43
【问题描述】:

我有一个用例,我正在使用 AbstractPagingItemReader 进行分页调用。用例是阅读器应该进行 api 调用过程并立即写入,这应该一直持续到阅读器不再获取更多记录为止。

目前的情况是先积累所有记录,然后开始处理和写入。

进一步阐述:- 假设我想在我的目的地总共有 100 个用户。 为此,我进行了 10 次调用,页面大小为 10 (10*10)。 reader 会先累计 100 个用户调用 api 10 次,然后调用 writer。 相反,我想先将第一个请求的响应发送给 writer,然后再进行第二次调用,依此类推。

为了进行 10 次调用,我特意添加了一个 for 循环来迭代 10 次,否则代码只会发出 1 次获取请求并调用 writer 并退出。

【问题讨论】:

  • 请分享您的代码。可能是块大小大于页面大小,因此阅读器会调用多次调用(请求多个页面)来累积块。
  • 嗨@MahmoudBenHassine,我将块大小保持为1。

标签: spring spring-batch


【解决方案1】:

当我实现 ItemReader 时,这个问题得到了解决。这导致读取方法被覆盖:-
public class DataReader implements ItemReader{

【讨论】:

    猜你喜欢
    • 2021-07-10
    • 2015-09-15
    • 1970-01-01
    • 2017-08-07
    • 2018-03-23
    • 1970-01-01
    • 2018-02-06
    • 2015-08-11
    • 1970-01-01
    相关资源
    最近更新 更多