Spring Batch 步骤 write_count 小于 read_count 并且过滤和跳过计数均为零

问题描述 投票:0回答:1

我们在 Spring Batch 中面临这样的情况:步骤 write_count 有时小于 read_count,filter_count 和 read_skip_count、process_skip_count 和 write_skip_count 都为零,而作业已成功完成,无一例外。 我们仍在调查,但想知道这种情况是如何发生的以及是什么原因导致的?
只是补充一下,这一步我们有 2 个不同的编写器,并且我们使用分类器在某些条件下在它们之间进行切换。
这是步骤配置代码:

    public Step step() {
    return stepBuilderFactory.get("jobName")
        .<InputTransaction, OutputTransaction>chunk(500)
        .reader(itemReader)
        .processor(itemProcessor)
        .writer(classifierCompositeItemWriter())
        .faultTolerant()
        .skipLimit(Integer.MAX_VALUE)
        .skip(RuntimeException.class)
        .listener(adjustTransactionItemWriter)
        .listener(adjustTransactionItemLogFileWriter)
        .build();
}
spring-batch batch-processing spring-batch-tasklet spring-batch-job-monitoring
1个回答
0
投票

@MahmoudBenHassine 会因为侦听器 Reza 添加到 stepExecution 而发生这种情况吗?这两个侦听器具有返回 ExitStatus.COMPLETED 的 afterStep 方法;

@Override
public ExitStatus afterStep(@NotNull StepExecution stepExecution) {
        writer.close();
        return ExitStatus.COMPLETED;
    }
© www.soinside.com 2019 - 2024. All rights reserved.