我正在玩一个游戏框架项目,我项目的一部分需要在给定的时间间隔内插入大量数据。
我在这里有两个问题:
1-我需要尽快完成批量插入sa 2-当批量插入作业正在运行时,它会严重影响我的服务器响应时间。我不知道它在play-framework或我的问题。
继承了我目前的批量插入代码:
org.hibernate.Session session =
(org.hibernate.Session)SomeEntityModel.em().getDelegate();
Transaction tx = session.beginTransaction();
int i = 0;
for(Inventory o:inventories)
{
returnList.add(SomeEntityModel.getInstance(o));
i++;
if(i%100==0)
{
tx.commit();
session.flush();
session.clear();
tx=session.beginTransaction();
}
}
getInstance模型将“o”对象转换为实体模型。
“o”对象来自Web服务批量生成,我将它们转换为“SomeEntityModel”,然后将其保存在getInstance方法中。
我需要知道是否有更好更快的方法来完成批量插入方法,以及在作业运行时是否有更好的方法来使用或优化服务器响应时间。
感谢您的帮助。
答案 0 :(得分:1)
你看过Akka了吗?它在Play 2.0(以及Play 1.x中的模块支持,如果你正在使用它)中有很强的支持。 Akka被设计为高性能并发包,其中一个用例是Batch / Bulk。