【发布时间】:2021-02-11 07:50:53
【问题描述】:
我的数据库中有大约 1000 万个 blob 格式的文件,我需要将它们转换并保存为 pdf 格式。每个文件大小约为 0.5 - 10mb,组合文件大小约为 20 TB。我正在尝试使用弹簧批处理来实现该功能。但是我的问题是,当我运行批处理时,服务器内存可以容纳那么多数据吗?我正在尝试使用基于块的处理和线程池任务执行器。请建议这种运行作业的最佳方法是否可以在更短的时间内处理大量数据
【问题讨论】:
-
如果你使用块,为什么所有数据都需要在内存中?
-
如果我错了,请纠正我。最初,当我们从数据库中读取项目时,阅读器会将完整的数据保存在其内存中,对吗?
-
不,它只会在内存中保存正在处理的块。
-
好的,谢谢您的澄清状态。在这种情况下,项目处理器是否会在处理数据后释放内存?还是我需要做GC
-
不,GC不会在需要时完成。
标签: spring spring-batch