在play框架中插入批量数据的最佳方法是什么?

时间:2012-06-30 11:09:43

标签: java asynchronous playframework bulkinsert

我正在玩一个游戏框架项目,我项目的一部分需要在给定的时间间隔内插入大量数据。

我在这里有两个问题:

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方法中。

我需要知道是否有更好更快的方法来完成批量插入方法,以及在作业运行时是否有更好的方法来使用或优化服务器响应时间。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

你看过Akka了吗?它在Play 2.0(以及Play 1.x中的模块支持,如果你正在使用它)中有很强的支持。 Akka被设计为高性能并发包,其中一个用例是Batch / Bulk。