Spring batch skip正在发生,但为什么要重复那个块?

1wnzp6jl  于 2024-01-05  发布在  Spring
关注(0)|答案(1)|浏览(117)

在spring batch中使用此配置时,DataNotFoundException步骤块被执行3次,这是我配置的,并且是预期的。

但当skip中指定的其他异常发生时,它正在跳过,但执行两次后,为什么?

即使我删除重试和重试限制跳过发生,但重复的块,我不知道为什么?
Sping Boot 版本3.1.5
Spring Cloud版本2022.0.4

  1. @JobScope
  2. @Bean
  3. public Step batchUpdateStep(JobRepository jobRepository, PlatformTransactionManager transactionManager,
  4. @Qualifier("batchUpdateItemWriter")
  5. ItemWriter<UpdateRequest> batchUpdateItemWriter,
  6. @Qualifier("batchUpdateItemProcessor")
  7. ItemProcessor<UpdateDto, UpdateRequest> batchUpdateItemProcessor) {
  8. return new StepBuilder("batch-update-step", jobRepository)
  9. .<UpdateDto, UpdateRequest>chunk(batchUpdateChunkSize, transactionManager)
  10. .reader(batchUpdateItemReader(null))
  11. .processor(batchUpdateItemProcessor)
  12. .writer(batchUpdateItemWriter)
  13. .faultTolerant().skipLimit(Integer.MAX_VALUE)
  14. .skip(Exception.class)
  15. .noSkip(DataNotFoundException.class)
  16. .retryLimit(3)
  17. .retry(DataNotFoundException.class)
  18. .listener(getBatchUpdateStepListener())
  19. .listener(getBatchUpdateSkipListener(null, null))
  20. .listener(batchUpdateProcessListener(null, null))
  21. .build();
  22. }

字符串

quhf5bfb

quhf5bfb1#

你有没有试过用你添加noSkip的方法添加noRetry
Javadoc从这个方法:
显式请求从重试中排除异常(和子类)。

相关问题