我们可以在Spring Batch中处理大型zip文件吗?

时间:2016-08-30 13:44:07

标签: java spring file-io concurrency spring-batch

我有一个大小为GB的大型zip文件。里面会有成千上万的平面文件。目前我们有单线程应用程序。我们希望通过应用并发来提高性能。我认为在文件I / O上进行并发是很昂贵的。以下是功能

  1. 将zip文件解压缩到某个位置
  2. 在该过程中每个平面文件并执行一些数据库插入,例如在某些数据库表上插入文件信息

  3. 处理完

  4. 后将文件移至归档

    由于这些是一系列步骤,我们可以使用Spring批处理吗?是否可以在Spring批处理中执行上述顺序步骤?任何人都建议是否有任何现有的框架或应用程序来引用文件I / O操作的并发性。

    非常感谢帮助!

1 个答案:

答案 0 :(得分:0)

根据上述要求,绝对可以构建基于SpringBatch的应用程序,如下所示:

  1. 分区程序级别(您可以使用网格大小)
  2. 您将解压缩文件并为从zip中提取的每个平面文件创建1个执行上下文。

    1. 读者级别
    2. 您可以使用ItemFileReader或自定义Reader来读取平面文件。

      1. 处理器级别
      2. 您可以处理从Reader发送的项目。

        1. 作家级别
        2. 您可以设置commit-interval来控制如何写入DB。

          谢谢, Nghia酒店