Hibernate与akka演员合作吗?

时间:2015-03-17 08:52:40

标签: multithreading hibernate akka

我主要担心的是ThreadLocal。 akka actor没有绑定到特定的线程,因此任何线程本地存储的使用都会对akka actor产生问题

Hibernate使用ThreadLocal吗?

在这种情况下,他们可以共存吗?

1 个答案:

答案 0 :(得分:3)

是。我使用Hibernate(通过JPA接口)和Akka actor一起使用。

我有两种处理多线程的方法:

  1. 如果每个actor更新不会与其他actor冲突的信息(例如,表中的每一行永远不会被多个actor使用),您可以为每个actor创建一个实体管理器并在演员的生命中使用它。虽然,如果交易失败,最好放弃实体经理。
  2. 否则,在每次调用需要数据库访问的actor(通过它的接收函数)时,创建一个新的实体管理器,开始一个事务,访问数据库,提交事务,然后关闭实体管理器
  3. 我有第一种方法在生产系统中运行。