我在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();
}
}
暂无答案!
目前还没有任何答案,快来回答吧!