我们在WPF应用程序的一部分中使用Akka.NET。但是,我们目前无法正确利用Akka的容错,因此我们需要在actor中发生任何错误,以实际导致actor系统之外的异常。但是,我还没有找到如何实现这一目标。
在演员抛出测试错误的主管演员中,我设置了主管策略:
protected override SupervisorStrategy SupervisorStrategy() =>
AllForOneStrategy(ex => Directive.Escalate);
正如我所读到的,这是不够的,还有必要通过HOCON配置为用户监护人设置监督策略。由于还没有其他配置,我正在创建它:
var config =
ConfigurationFactory.ParseString(
@"akka.actor.guardian-supervisor-strategy = ""Akka.Actor.StoppingSupervisorStrategy""");
然后将其传递给ActorSystem
构造函数。但是,当actor中发生异常时,它不会导致任何不同的事情发生。
如何防止Akka保护应用程序免受actor系统内引发的异常的影响?