首页 文章

spring batch - 数据库到多个文件的作业

提问于
浏览
2

我正在尝试在spring批处理中实现一个面向块的步骤,它从数据库中检索记录并将每个块写入一个单独的文件 . 例如,假设DB中有500条记录 . 我需要我的工作来创建10个文件,每个文件有50个记录 .

PS:主要目的是同时创建输出文件 . 由于ItemWriter实现不是线程安全的,我决定创建单独的文件作为输出,这样我就可以减少完成步骤所花费的总时间 .

asnyone知道如何使用Spring Batch实现它吗?我发现了一个使用分区并行处理多个文件的示例项目,但这并不是我想要做的 . 在我的例子中,输入是一个表,而输出是多个文件 .

Here is the link: FileParallelProcessing

2 回答

  • 0

    我找到了答案,

    spring spring samples中的partitionJdbcJob完全符合我的要求

    Spring Batch Sample Job Source can be found here

  • 1

    我建议你写一个服务,哪个角色是在文件中写你的块 . 此服务将采用一个输入:一个块 . 它的逻辑是将其写入文件中 . 您将编写多线程的东西以便在此服务中编写 .

    您的批处理将以多线程方式向此服务发送块 .

    因此,您可以通过Spring Batch获得多线程的好处,并通过自己编写将在文件中输出块的服务来控制潜在的错误 .

    使用ItemWriterAdapter将写入内容委托给您的服务 .

相关问题