出于测试目的,我正在尝试重新启动单个演员(使用ClusterSingletonManager
和ClusterSingletonProxy
创建)。但是,gracefulStop
的文档说:
重要通知:演员被终止并且其主管被告知已故演员姓名的可用性是两个不同的操作,不遵守任何可靠的命令。特别是以下内容不起作用:
def receive = {
case msg =>
Await.result(gracefulStop(someChild, timeout), timeout)
context.actorOf(Props(...), "someChild") // assuming that that was someChild’s name, this will NOT work
}
有没有人知道解决这个问题的方法?请不要告诉我使用Thread.sleep
。检查名称可用性的阻塞循环是可以的,但是更少的黑客方式更可取。如果这是唯一的方法,那么如何检查演员姓名是否可用?