Akka演员选择vs上下文孩子

时间:2017-08-08 08:59:13

标签: akka

所以我似乎有两种可能来获得一个子actor实例:

  1. 使用context.actorSelection,返回Future[ActorRef]
  2. context.actorSelection(actorNameString).resolveOne(2.seconds)
    1. 使用context.child,返回Option[ActorRef]
    2. context.child(actorNameString)

      那么我应该选择哪一个?为什么?

      我知道使用actorSelection是什么,我可以是异步的,但是有什么其他理由支持一个而不是另一个?

1 个答案:

答案 0 :(得分:1)

除非你为你的儿童演员使用远程部署(在这种情况下我不知道该回答什么),或者你想要引用一个孩子的孩子,我认为你不应该使用得到一个ActorRef通过context.actorSelection获取对儿童演员的引用。

context.actorSelection用于识别和获取在任何地方(在其他JVM /主机上)运行的(多个)actor的引用,这就是它异步的原因。当然你可以用它来抓住一个儿童演员,但如果你可以去context.child

我认为您可以将context.child视为专用版本(context.actorSelection(actorNameString).resolve),以用于您希望获得对儿童演员的单一引用的情况。