有没有标准的方法来做'actorFor orElse actorOf`?

时间:2013-07-17 13:35:07

标签: akka

我想获得一个可能已经创建的ActorRef。是否有标准的方式来呼叫context.actorFor,并且只有在它未返回实时ActorRef的情况下,请致电context.actorOf?反之亦然(即调用context.actorOf,并且只有当演员已经存在时,才调用context.actorFor)。

1 个答案:

答案 0 :(得分:6)

首先关闭:get-or-create只有在只有一个实体的情况下才能工作(否则你将无法确定它是如何创建的)。这意味着准演员的父母是放置此代码的地方。

在演员中,这是非常直截了当的:

val child =
  context.child(name) match {
    case None    => context.actorOf(Props(...), name)
    case Some(c) => c
  }

请不要使用actorFor,在{* 3}}的Akka 2.2中弃用它。在这种情况下,context.child()可以更有效地完成您想要的工作。