【问题标题】:Top-level Akka actor escalation and shutdown hooking顶级 Akka actor 升级和关闭挂钩
【发布时间】:2015-11-15 04:41:26
【问题描述】:

在我的 Akka 系统中,有一个顶级(“根”)actor,Initializer,所有其他actor 都来自它。还有一个actor,Destroyer,负责在收到Destroy 消息时优雅地关闭系统。有几种情况下,演员会将Destroy 发送到Destroyer,但这些在这里并不重要。

我现在想在InitializerSupervisorStrategy 中实现功能,如果它无法处理其中一个孩子抛出的故障/异常,它将解释为“停止世界”-输入事件,然后优雅地关闭系统。

我的下意识反应是让Initializer 升级失败,但我不确定当最顶级的演员升级时会发生什么。如果有办法让升级以某种方式调用Desroyer,那就太好了,但不知道如何连接。有什么想法吗?

【问题讨论】:

    标签: exception akka akka-supervision


    【解决方案1】:

    我在这里回答了类似的问题:How to escalate top-most supervisors in Akka?

    基本上,在您的配置集中:

    akka.actor.guardian-supervisor-strategy = "akka.actor.StoppingSupervisorStrategy"
    

    然后在您的Initializer 中,您应该升级您希望对系统造成致命的任何异常。然后将停止初始化程序。您可以从Destroyer 观看Initializer 并对Terminated 事件做出反应,或者如果您想坚持您的自定义Destroy 消息,请将DestroypostStop() 发送到Destroyer Initializer.

    【讨论】:

      猜你喜欢
      • 2021-02-17
      • 2013-09-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-23
      • 2017-09-06
      • 2020-01-11
      相关资源
      最近更新 更多