Spring Batch 如何在资源不可用时拒绝记录

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

Spring Batch 中有多种拒绝记录的方法,所有方法都与 Skip Listener 有关。拒绝记录的最佳方法是什么(如果记录对象相关资源不可用)。

示例:- 处理需要 PDF 的文件记录应该可用,但尚不可用,稍后将由推送 pdf 的外部作业可用。基本上,我们想要一种在 PDF 可用后自动重新处理记录的方法。

最好的方法是什么。

  1. 验证 PDF 在阅读器中可用。
  2. 验证处理器中的 PDF 是否可用,如果不可用则将对象返回为 Null,并且文件将再次重新处理。
  3. 还有其他替代方案吗

我们在阅读器中尝试在处理器中设置属性并将对象返回为空

读者:-

 fileScannerDTO.setPdfFileNotExist(!Files.exists(Paths.get(fileScannerDTO.getFilePath())));

处理器:-

 if(fileScannerDTO.isPdfFileNotExist())
    {return null;}
spring-batch
1个回答
0
投票

IMO,这种检查 PDF 可用性的逻辑不应该成为工作本身的一部分。尝试设置一个文件观察器来检测新文件的存在并在需要时启动作业。

让读取器等待文件到来并不是最佳选择,并且违背了批处理的理念,即作业开始时输入预计已准备好。

© www.soinside.com 2019 - 2024. All rights reserved.