Spring batch Spring批处理:MultiResourceItemReader结果管理

Spring batch Spring批处理:MultiResourceItemReader结果管理,spring-batch,Spring Batch,我最近遇到了spring批处理需求的变化:必须从单个文件输入(由层应用程序提供)切换到多个文件输入(从中读取的目录)。 到目前为止,还没有什么大不了的,研究已经完成,我已经准备好了一个新的MultiResourcesItemReader,这个很好用。但当涉及到错误管理时,一些问题开始出现 是否有办法处理单独处理的每个文件中的错误?我觉得MultiResourcesItemReader提供了一种处理多个文件的好方法,但处理它们就像“一个集团”。也就是说,一切不是失败就是成功 我来写一个Custom

我最近遇到了spring批处理需求的变化:必须从单个文件输入(由层应用程序提供)切换到多个文件输入(从中读取的目录)。 到目前为止,还没有什么大不了的,研究已经完成,我已经准备好了一个新的MultiResourcesItemReader,这个很好用。但当涉及到错误管理时,一些问题开始出现

是否有办法处理单独处理的每个文件中的错误?我觉得MultiResourcesItemReader提供了一种处理多个文件的好方法,但处理它们就像“一个集团”。也就是说,一切不是失败就是成功

我来写一个CustomSkippPolicy来帮助我管理读处理过程中可能出现的错误,但我几乎不知道如何将它绑定到相关文件。如果我的SkippPolicy帮助我精确地“狙击”文件中的哪一行失败,那么我就很难根据状态分别处理每个文件

这就引出了我的第二点:如何在这个MultiResourcesItemReader上下文中将一个失败或成功的文件移动到一个特定的目录中(比如/failed或/success)(因为stepExecution似乎不提供当前处理的资源)

TLDR:我在这里的最终目标是为一些QA用户提供一种有意义的方法来更正文件:以最简单的方式更正哪一个失败以及失败的原因

总结:

  • 文件1确定>移动到/成功
  • 文件2正常但1行失败>集成正常内容>记录/写入错误>移动到/失败
  • 文件3失败>写入错误>移动到/失败
我在这里和那里找到了一些答案,但并不完全符合我的要求。 希望我说得够清楚。
CMZ

这是否回答了您的问题?你好,MahmoudBenHassine。谢谢你的回答。这看起来很有趣,如果有帮助,我会更新。