【发布时间】:2018-02-02 00:48:37
【问题描述】:
我对这个案子感到非常惊讶。有人知道为什么会发生这种情况吗?
每次都能正常工作:
child(name) match {
case Some(ref) => ref ! Ping
case _ =>
val ref = actorOf(PingActor.props, name)
ref ! Ping
}
如果孩子不存在,我们将创建演员。 然后发送 Ping 消息。
这有时会挂断演员已经存在的情况:
child(name) getOrElse actorOf(PingActor.props, name) ! GetState
为什么?
【问题讨论】:
-
hangs up... 你的意思是有些东西冻结了? -
是的,发送消息时冻结
-
你怎么知道它在发送消息时冻结,而不是在调用
getOrElse时冻结? -
我只知道一件事 - 当我将它更改为匹配时,演员冻结在 getOrElse 的这个字符串上 - 它开始运行良好
-
我从接受的答案中得知,这与冻结无关,只是没有发送消息。通过更准确地描述问题,您将更快地获得更好的答案。
标签: akka akka-actor