为什么我不能用滚烫绑定到单个参与者实例(akka路由器)



我目前正在努力实现我的Akka路由器逻辑,使用烫伤进行依赖注入。既然我的actor是一个路由器,我只想拥有它的一个实例,为什么我不能用滚烫绑定到一个actor实例?我问这个问题的方式是另一个stackoverflow条目。

我的烫伤模块:

class DAOModule extends Module {
  bind toProvider new UserDaoWorker
  binding to new UserDaoRouter
}

这样只创建了一个实例,一旦我多次注入路由器,它就会从sender()方法中得到一个死信参与者作为发送方。

当我将绑定更改为…时

binding toProvider new UserDaoRouter

它工作得很好,但每次注入都意味着我的路由器有了一个新实例。我说得对吗?

那么,我如何才能实现只有一个可注入的路由器实例呢?

提前感谢

可能是这样的:将[UserDaoRouter]绑定到新的UserDaoRouter??

这就是我的工作原理:

class DAOModule extends Module {
  binding toProvider new UserDaoWorker
  binding toProvider new UserDaoRouter
  binding identifiedBy 'singletonUserRouter to {
    implicit val system = inject[ActorSystem]
    AkkaInjectable.injectActorRef[UserDaoRouter]
  }
}

然后在我的控制器中:

val userDaoRouter = inject[ActorRef] ('singletonUserRouter)

我希望这能帮助其他人;)

最新更新