如何解决在 MongoTemplate 方法中从 Java 执行批量删除操作时出现 OOMJava 内存不足问题
创建了一个调度程序来从 mongoDB 中删除旧记录,该程序每天运行一次,但在从数据库中删除记录时出现 OOM 问题。
我们有超过 5 万条记录需要删除
方法如下
@Override
public void purgeLteTimeBlock(Long timeBlock) {
Query query = new Query();
query.addCriteria(Criteria.where(Constants.TIME_BLOCK).lte(timeBlock));
mongoTemplate.findAllAndRemove(query,abcEntity.class);
}
根据我们的观察,我们发现 mongoTemplate 提供了 3 个 findAllAndRemove 方法,每个方法都返回要删除的对象列表。 所以我们认为这可能是 OOM(内存不足问题)的原因,因为它在代码中返回了超过 50K 的记录
那么有没有什么解决方案可以处理这种来自 mongoDB 的删除操作?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。