Spring Batch 中有多种拒绝记录的方法,所有方法都与 Skip Listener 有关。拒绝记录的最佳方法是什么(如果记录对象相关资源不可用)。
示例:- 处理需要 PDF 的文件记录应该可用,但尚不可用,稍后将由推送 pdf 的外部作业可用。基本上,我们想要一种在 PDF 可用后自动重新处理记录的方法。
最好的方法是什么。
我们在阅读器中尝试在处理器中设置属性并将对象返回为空
读者:-
fileScannerDTO.setPdfFileNotExist(!Files.exists(Paths.get(fileScannerDTO.getFilePath())));
处理器:-
if(fileScannerDTO.isPdfFileNotExist())
{return null;}
IMO,这种检查 PDF 可用性的逻辑不应该成为工作本身的一部分。尝试设置一个文件观察器来检测新文件的存在并在需要时启动作业。
让读取器等待文件到来并不是最佳选择,并且违背了批处理的理念,即作业开始时输入预计已准备好。