0

現在、依存性注入に scaldi を使用して Akka ルーター ロジックを実装するのに苦労しています。私のアクターはルーターであり、そのインスタンスを 1 つだけ持ちたいのに、scaldi を使用して単一のアクター インスタンスにバインドできないのはなぜですか? 私がこの質問をするようになった方法は、別のスタックオーバーフロー エントリでした。

私のスカルディモジュール:

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

この方法では、1 つのインスタンスのみが作成され、ルーターに複数回注入するとすぐに、sender() メソッドから送信者としてデッド レター アクターが取得されます。

バインディングを次のように変更すると...

binding toProvider new UserDaoRouter

...完全に正常に動作しますが、すべての注入はルーターの新しいインスタンスを意味します。私は正しいですか?

では、注入可能なルーターのインスタンスを 1 つだけ持つにはどうすればよいでしょうか?

前もって感謝します

4

2 に答える 2

0

これは私のために働いたものです:

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)

これが他の誰かに役立つことを願っています;)

于 2014-10-16T08:16:15.010 に答える