为什么我无法使用scaldi绑定到单个actor实例(akka路由器)?

编程入门 行业动态 更新时间:2024-10-26 08:34:32
本文介绍了为什么我无法使用scaldi绑定到单个actor实例(akka路由器)?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

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

I´m currently struggeling with implementing my Akka router logic using scaldi for dependency injection. Why cant I bind to a single actor instance with scaldi, since my actor is a router and I only want to have one single instance of it? The way I came to ask this question was another stackoverflow entry.

我的scaldi模块:

My scaldi Module:

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

这样,仅创建一个实例,并且一旦我多次注入路由器,它就会从sender()方法中获得作为发送者的死信演员。

This way only one instance is created and as soon as I inject my router multiple times it gets a dead letter actor as sender from the sender() method.

当我将绑定更改为...

When I change the binding to...

binding toProvider new UserDaoRouter

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

... it works perfectly fine, but every injection means a new instance of my router. Am I right?

那么我怎么能只拥有一个可注射的路由器实例呢?

So how can I achieve having only a single instance of my router which is injectable?

预先感谢

推荐答案

这对我有用:

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)

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

I hope this will help someone else ;)

更多推荐

为什么我无法使用scaldi绑定到单个actor实例(akka路由器)?

本文发布于:2023-11-25 22:27:30,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1631603.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:绑定   路由器   实例   scaldi   akka

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!