【问题标题】:Can we process large zip file in Spring Batch?我们可以在 Spring Batch 中处理大型 zip 文件吗?
【发布时间】:2016-08-30 13:44:07
【问题描述】:

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

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

  3. 处理完后将文件移至存档

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

我们将不胜感激!

【问题讨论】:

  • 我处理 zip 文件的经验是不要在文件系统中解压缩它们,而是使用 ZipInputStream 的实例(在 Java 中)或其他语言的类似类来读取它们.这已经节省了很多时间。

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


【解决方案1】:

有了上面的要求,你完全可以构建一个基于 SpringBatch 的应用程序如下:

  1. 分区级别(您可以使用网格大小)

您将解压缩文件并为从 zip 中提取的每个平面文件创建 1 个执行上下文。

  1. 读者级别

您可以使用 ItemFileReader 或您的自定义 Reader 来读取平面文件。

  1. 处理器级别

您可以处理从阅读器发送的项目。

  1. 作家级别

您可以设置提交间隔来控制如何写入数据库。

谢谢, 义

【讨论】:

    猜你喜欢
    • 2016-06-29
    • 2018-05-22
    • 2016-01-18
    • 1970-01-01
    • 1970-01-01
    • 2011-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多