gpt4 book ai didi

java - spring batch itemWriter 仅在获取所有项目后写入

转载 作者:太空宇宙 更新时间:2023-11-04 11:36:17 26 4
gpt4 key购买 nike

我有一个简单的 Spring Batch 作业,有几个步骤,最后一步是编写报告,所以我有 ItemReader、ItemProcessor 和 ItemWriter。 ItemWriter 按 block 写入取决​​于步骤中定义的 block 编号,但我需要等到获取所有项目然后写入最终报告。我怎样才能做到这一点?

public class ReportItemWriter implements ItemWriter<ReportItem> {
private List<ReportItem> allItems = Lists.newArrayList();
...

public void write(List<? extends ReportItem> reportItems) throws Exception {
allItems.addAll(reportItems);
writeReport(allItems); <-- here it only write chunk of items to the report
}

最佳答案

如果您的作家上有@JobScope。您可以使用@PreDestroy(Spring注释)来实现这一点。您可以使用字段来存储需要写入的所有项目。在预销毁函数中,您可以进行编写。

private List<YourItem> items = new ArrayList<>();

@Override
public void write(argument here) {
items.addAll(YourItem);
}

@PreDestroy
public void teardown() {
// do the write for all items
}

关于java - spring batch itemWriter 仅在获取所有项目后写入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43244268/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com