了解系统在特定参与者失败时的行为非常重要 - 恢复如何运行,是否正确获取快照等。令人惊讶的是,我在文档中没有找到任何建议
我在一些例子中看到的一种方法是有一个特殊的Fail
msg 并让演员Exception
在这个 msg 上抛出一个。
class MyActor extends Actor {
override def receive =
...
case Fail => throw new Exception("kaboom")
}
我希望永远不要使用它,因为它混合了生产代码和测试代码,并且可能会在毫无戒心的读者中产生一些合理的 WTF。
我将如何诱导任意演员正确失败?
谢谢