1

Spring Batch 是否适合处理大量单个文件?

Spring Batch 似乎面向以数据为中心的工作。我需要从 S3 存储桶中提取数百万个文件,解压缩它们,根据内容执行一些逻辑,然后调用 Web 服务。

手动实现这一点是微不足道的,但在跟踪作业执行以及作业失败前的进展情况时,我不太喜欢重新发明轮子。Spring Batch 似乎非常适合这种工作监控,但我不确定颠覆它来进行文件处理是否太过分了。

4

1 回答 1

2

简短的回答是是的,您可以为此使用弹簧批处理。我做了一个小型 POC,我们必须以批处理的方式将数百万张图像从源系统迁移到目标系统,恕我直言,它运行良好。

补充@Prasanna Talakanti 的评论,我建议结合使用 Spring Integration 和 Spring Batch。虽然 Spring Batch 将为您提供批处理的基础设施(间隔提交,如果失败则重新启动作业等),Spring 集成将为您提供有关 Web 服务网关的东西。

在 Spring 批处理中,您可以定义用于从 S3 读取数据的读取器和用于写入目标的写入器,如果需要,可以在两者之间使用处理器。您还可以微调提交间隔,因此如果作业在两者之间失败,您就有一个回滚点。

于 2012-06-19T17:13:05.750 回答