获取当前处理区块的先前区块值-spring批处理

z4iuyo4d  于 2021-07-06  发布在  Java
关注(0)|答案(0)|浏览(234)

我在springbatch上有一个应用程序,我使用了面向块的编程,我扩展了flatfileitemwriter类来生成输出文件。
问题是我将有超过1000条记录作为输入,而块值是100。因此customflatfileitemwriter将被调用10次。但是问题是每个记录都是相互关联的,我应该检查上一个id和下一个id。
批量输入

123, sample1
123, sample2 // Here I have to check 123 is same as 123 which is previous id
124, sample3 // Here I have to check 124 is same as 123 which is previous id
125, sample4 // Here I have to check 125 is same as 124 which is previous id

要做到这一点,如果chunk在id-124处完成,那么在处理记录id“125”时,我们将无法获取记录id“124”。
在stepexecution中,我们可以保持对象处于执行状态并执行到下一个任务,但是在这个场景中,我们没有得到stepexecution,所以无论如何都有办法让对象执行到下一个块操作。
自定义flatfileitemwriter的代码

public class FileIW<T> extends FlatFileItemWriter<T> {

    @Override
    public String doWrite(List<? extends T> items) {
        StringBuilder lines = new StringBuilder();
        for (T item : items) {
            User user = (User)item;
            System.out.println(user.getId());
            lines.append(this.lineAggregator.aggregate(item)).append(this.lineSeparator);
        }
        return lines.toString();
    }

}

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题