在Spring Batch中,我想对No.正在读取、处理和写入的记录。我知道批处理元数据表中也有相同的功能。根据业务需要,我们需要对DATA_AUDIT表进行审计。
在我的批处理作业中,我基于不同的字段(比如Active Accounts、InActive Accounts、Active Flag等)实现了CompositeItemWriter,在此基础上分离数据并将其写入多个目标表。
这里假设有5000条记录,这5000条记录被分组到数据集,单个记录可以满足不同的业务规则并进入不同的组,这样数据就会增加到5000块中的20000条。
StepListeners只捕捉到了no.在第一个写入者的记录中,它没有覆盖任何其他写入者写入的数据,我如何跟踪编号。是否已从其他3个写入器写入数据?
有没有办法使用Spring Batch API来实现这一点,或者我们如何实现?我通过link,但在这里没有找到任何东西-- https://docs.spring.io/spring-batch/docs/current/reference/html/step.html#stepExecutionListener
发布于 2020-07-30 22:38:20
您可以获取JobExecutionContext并在编写器中更新计数。
示例如下。
@Bean
@StepScope
public ItemWriter<Integer> itemWriter() {
return new ItemWriter<Integer>() {
private StepExecution stepExecution;
@Override
public void write(List<? extends Integer> items) throws Exception {
for (Integer item : items) {
System.out.println("item = " + item);
}
long count=stepExecution.getJobExecution().getExecutionContext().get("count");
count=count+items.size();
stepExecution.getJobExecution().getExecutionContext().put("count", count);
}
@BeforeStep
public void saveStepExecution(StepExecution stepExecution) {
this.stepExecution = stepExecution;
}
};
}https://stackoverflow.com/questions/63173878
复制相似问题