我需要编写一个批处理作业,该作业从数据库表中获取行并根据特定条件写入其他表或使用特定值更新该行。我们使用 spring 和 jdbc 来获取结果集,并使用计划每周运行的独立 java 程序遍历和处理记录。我知道这不是正确的做法,但我们不得不将其作为临时解决方案。随着记录增长到数百万,我们最终会出现内存不足的异常,所以我知道这不是最好的方法。
你们中的任何人都可以推荐处理这种情况的最佳方法吗?
使用线程并为每个线程获取 1000 条记录并并行处理它们?
(或者)
使用任何其他批处理机制来执行此操作(我知道有 spring-batch 但从未使用过)
(或者)
还有其他想法吗?