【发布时间】:2020-01-02 16:44:40
【问题描述】:
在我的 spring-boot 应用程序中,我正在运行一个计划作业,该作业从一个表中获取记录并将其另存为存档,我只是遇到了一个问题,所以现在我选择保存的记录几乎是 400,000另外,当工作正在执行时,它会继续进行。 ja 可以一次处理这么多要保存的数据吗?下面是我的配置和方法。
#--Additional Settings for Batch Processing --#
spring.jpa.properties.hibernate.jdbc.batch_size=5000
spring.jpa.properties.hibernate.order_inserts=true
spring.jpa.properties.hibernate.generate_statistics=true
spring.jpa.properties.hibernate.jdbc.batch_versioned_data = true
rewriteBatchedStatements=true
cachePrepStmts=true
agentAuditTrailArchiveList 对象的大小为 400,000 以上。
private void archiveAgentAuditTrail(int archiveTimePeriod) {
List<AgentAuditTrail> archivableAgentAuditTrails = agentAuditTrailRepository
.fecthArchivableData(LocalDateTime.now().minusDays(archiveTimePeriod));
List<AgentAuditTrailArchive> agentAuditTrailArchiveList = new ArrayList<>();
archivableAgentAuditTrails
.forEach(agentAuditTrail -> agentAuditTrailArchiveMapper(agentAuditTrailArchiveList, agentAuditTrail));
System.out.println(" agentAuditTrailArchiveList = " + agentAuditTrailArchiveList.size());
System.out.println("archivableAgentAuditTrails = " + archivableAgentAuditTrails.size());
agentAuditTrailArchiveRepository.saveAll(agentAuditTrailArchiveList);
agentAuditTrailRepository.deleteInBatch(archivableAgentAuditTrails);
}
【问题讨论】:
标签: database spring-boot spring-data-jpa spring-data spring-batch