【发布时间】:2011-05-17 07:29:48
【问题描述】:
在 Scala 中,当另一个(远程)actor 终止时,可以通过设置 trapExit 标志并以第二个 actor 作为参数调用 link() 方法来通知一个 actor。在这种情况下,当远程参与者通过调用 exit() 结束其工作时,第一个参与者通过接收退出消息来通知。
但是当远程参与者以不那么优雅的方式终止时会发生什么(例如,它正在运行的 VM 崩溃)?换句话说,本地参与者如何发现远程参与者不再可用?当然,我希望(如果可能的话)可以通过类似于退出消息的消息通知本地参与者,但这似乎不可行。我错过了什么吗?我应该不断地轮询远程参与者的状态(在这种情况下,我不知道哪种方法是最好的)还是有更聪明的解决方案?
【问题讨论】:
-
演员永远不会死,如果你称它为 ChuckNorris :)
标签: scala exit actor fault-tolerance remote-actors