【问题标题】:SpringBatch- How to process files itself as a Item?SpringBatch-如何将文件本身作为项目处理?
【发布时间】:2021-07-16 00:24:01
【问题描述】:

我是春季批量开发的新手。我有以下要求。 将有一个带有 zip 文件的 s3 源,每个 zipfile 将包含多个 pdf 文件和 xml 文件。[例如:100 个 pdf 和 100 个 xml 文件](xml 文件将包含有关 pdf 的数据) 批处理需要读取pdf文件及其关联的xml文件并将它们推送到rest service/db。

当我查看示例时,大部分内容都涉及如何从文件中读取一行并处理它。在这里,我将项目本身作为文件。我想按设置读取一个pdf文件(以字节为单位)+ xml文件(转换为pojo)并将其一一推送到休息服务。

现在,我正在一个 tasklet 中进行所有的读取和处理。但我相信会有更好的解决方案来实现它。请提出建议,谢谢。

【问题讨论】:

    标签: java spring spring-boot spring-batch batch-processing


    【解决方案1】:

    面向块的处理模型要求您首先定义一个项目是什么。在您的情况下,一种选择是将项目视为 PDF 文件(数据)及其关联的 XML 文件(元数据)。您可以创建一个表示此类项目的类和一个自定义项目阅读器。一旦到位,您就可以在面向块的步骤中使用读取器,以及将数据发送到 REST 端点的处理器或写入器。

    【讨论】:

    • 非常感谢您的意见。 xml 和 pdf 文件名对存在于一个 xml 文件(summary.xml)中。所以我想在阅读器中阅读summary.xml,然后在处理器中阅读实际的一对pdf文件/xml文件并将其传递给编写器以推送到rest和oracle DB。这有意义吗?
    • 其他方法时如何将 pdf 文件名和 xml 文件名传递给 itemreader 的任何想法?它存在于另一个 xml (summary.xml) 中。 test4.pdftest4.xml
    • 您可以为每个文件创建一个包含一个字段的类,并使其代表一个逻辑项。封装 FTW ;-)
    • 感谢您的建议。让我尝试在代码中实现
    • 您对此有什么建议吗-stackoverflow.com/questions/67479648/…
    猜你喜欢
    • 2021-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多