- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想弄清楚我是否使用了传递 Akka ActorRef
周围的其他 Actor 不是一种反模式。
我的系统中有几个 Actor 。有些人很长寿( restClientRouter
, publisher
),有些人在完成工作后死去( geoActor
)。短期 Actor 需要向长期 Actor 发送消息,因此需要他们的ActorRef
s。
//router for a bunch of other actors
val restClientRouter = createRouter(context.system)
//publishers messages to an output message queue
val publisher: ActorRef = context.actorOf(Props(new PublisherActor(host, channel)), name = "pub-actor")
//this actor send a message to the restClientRouter and then sends the response
//to the publisher
val geoActor = context.actorOf(Props(new GeoInferenceActor(restClientRouter, publisher)), name = "geo-inference-actor")
restClientRouter
和
publisher
)传递给
GeoInferenceActor
的构造函数.这好吗?有没有更好的方法来做到这一点?
最佳答案
有几种好方法可以将角色引用“引入”到需要它们的角色实例。
1) 使用它需要的 refs 作为构造函数 args 创建actor(这就是你正在做的)
2)在实例创建后通过消息传入所需的引用
您的解决方案是完全可以接受的,甚至是 Akka 的技术主管 Roland Kuhn 在这篇文章中提出的建议:
Akka actor lookup or dependency injection
关于scala - 将 ActorRef 传递给其他 Actor 是好是坏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24840608/
我正在尝试使用 Source.actorRef创建 akka.stream.scaladsl.Source 的方法目的。某种形式 import akka.stream.OverflowStrategy
我需要将 ActorRef 保留一段确定的时间。与此同时,我一直在“观察”这个 ActorRef。 由于某种原因,我的 ActorRef 是否可能变得无效,而我却没有收到“死信”? 抱歉,如果这个问题
我开始学习Akka并从official guid下载了示例: 我不明白tell方法第二个参数的用法: 在main方法中写入: howdyGreeter.tell(new WhoToGreet("Akk
我正在学习 Akka,并试图弄清楚如何让 Actor 互相交谈(我们称他们为 A 和 B)。这不是请求/响应场景,A和 B随时互相发送消息。 目前我有两个兄弟 Actor ,他们在两个方向上互相传递消
我们通过扩展 EventSourcedBehavior 将事件源与 Akka Persistence 结合使用。当我们创建持久性 Actor 时,我们通过使用 uuid 给它一个唯一的名称(与我们在
我有以下内容: val future = myActor ?消息 在我的 Actor 中,我收到的消息是这样的: 发件人!响应 如果我做了以下并忽略了响应,是否有任何负面影响? 我的 Actor !消
我尝试从 ActorSelection 获取多个 ActorRef。有人知道是否可能吗? 我的代码 ActorRef actorRef = Await.result(getContext().acto
我不明白关于在回调中关闭 actor ref 的声明。目前我正在使用 public void onReceive(Object message) throws Exception {
根据此链接的程序: Java Akka's ActorRef async issues 是否有任何 Akka native 函数可以用作 actor.tell 的调度函数?我想安排每个时间间隔来自动“
我已经开始使用 Akka 与并发程序进行异步: import akka.actor.ActorRef; import akka.actor.ActorSystem; import akka.actor
我开始使用 Spark Streaming 来处理我收到的实时数据馈送。我的场景是我有一个使用“with ActorHelper”的 Akka Actor 接收器,然后我让我的 Spark 工作做一些
我有两个 Actor 。每个 Actor 都位于不同的 ActorSystem 中。首先缓存第二个ActorRef。第一个 Actor 这样做: actorRef.tell(msg, self())
我想弄清楚我是否使用了传递 Akka ActorRef周围的其他 Actor 不是一种反模式。 我的系统中有几个 Actor 。有些人很长寿( restClientRouter , publisher
我尝试为一个类进行 Spock 测试,我需要检查它是否向 actor 发送消息(例如 statActor)。我知道 Akka 有专门的集成测试库,但对于非常简单的测试来说似乎太多了。所以,我尝试过:
我正在尝试使用 Source.actorRef 向 actor binset 发送消息,但这部分代码: println(s"Before mapping $src") src.mapMateriali
我有一个场景,当 Actor 收到特定消息时,它必须将该消息转发给当时存在的所有子级。 我想我有两个选择来解决这个问题。 getContext().actorSelection("*").forwar
好的,所以我正在使用 SJSON 为 scala 中的案例类编写隐式转换,以使用 akka 框架向远程参与者发送消息。其中一个案例类如下所示 case class Example(id: String
我想用预定义的消息数来完成一个流: Source.actorRef(Integer.MAX_VALUE, OverflowStrategy.fail()) .limit(1) .to(
根据Play documentation on WebSockets建立 WebSocket 的标准方法是使用 ActorFlow.actorRef,它采用返回我的 Actor 的 Props 的函数
我正在学习 Akka,在探索 API 时,我遇到了一些奇怪的东西(至少对我来说)。 tell函数直接在 ActorRef 类上定义。但是,ask函数在 AskSupport 特征中声明。我想不出他们为
我是一名优秀的程序员,十分优秀!