0

我使用spring批处理将数据从文件加载到数据库。作业仅包含一个步骤。我使用ThreadPoolTask​​Executor并发执行步骤。步骤与此类似。

public Step MyStep(){
    return StepBuilderFactory.get("MyStep")
        .chunk(10000)
        .reader(flatFileItemWriter)
        .writer(jdbcBatchItemWriter)
        .faultTolerant()
        .skip(NumberFormatException.class)
        .skip(FlatFileParseException.class)
        .skipLimit(3)
        .throttleLImit(10)
        .taskExecutor(taskExecutor)
        .build();
}

我的文件中有 3 个“数字格式”错误,所以我设置了 skipLimit 3,但我发现当我执行作业时,它将启动 10 个线程,每个线程有 3 个跳过,所以我总共有 3 * 10 = 30 个跳过,而我只需要 3 个。

所以问题是这会导致任何问题吗?还有其他方法可以在同时执行一个步骤的同时准确跳过 3 次吗?

4

0 回答 0