我想得到一个ActorRef
可能已经创建的。是否有标准的调用方式,context.actorFor
并且只有在它没有返回 live 时才ActorRef
调用context.actorOf
?反之亦然(即调用context.actorOf
,并且仅当参与者已经存在时,调用context.actorFor
)。
问问题
442 次
1 回答
6
首先:get-or-create 只能在只有一个实体执行它的情况下才能工作(否则,当您找到它时,您将永远无法确定它是如何创建的)。这意味着准演员的父母是放置此代码的地方。
在演员内部,这是非常直接的:
val child =
context.child(name) match {
case None => context.actorOf(Props(...), name)
case Some(c) => c
}
请不要使用actorFor
,它在 Akka 2.2 中已被弃用,这是有充分理由的。在这种情况下context.child()
,可以更有效地执行您想要的操作。
于 2013-07-17T15:05:06.247 回答