gpt4 book ai didi

scala - Akka - 是否有可能在 Actor 的主管中收到有关它失败的消息?

转载 作者:行者123 更新时间:2023-12-04 20:08:29 25 4
gpt4 key购买 nike

有没有办法在 Actor 主管的 SupervisorStrategy 中获取消息?我的意思是导致 Actor 失败的那个。我想从中获取一些数据。

最佳答案

一种可能的方法:

  • 定义一个新的运行时异常异常类,能够封装错误消息。
  • 在监督 Actor 。捕获异常并抛出上面定义的带有错误消息的异常。
  • 在主管策略中,捕获新的异常类型并访问消息。

  • 例如:
    // The new exception type
    case class MessageException(
    akkaMessage: Any,
    originalException: Throwable
    ) extends RuntimeException("Exception due to message")

    // In the supervised actor
    def receive = {
    case msg => try{ process(msg) } catch {
    case t => throw MessageException(msg,t)
    }
    }

    // In the supervisor
    override val supervisorStrategy =
    OneForOneStrategy(maxNrOfRetries = 10, withinTimeRange = 1 minute) {
    case MessageException(msg,t) => //decide what to do
    }

    关于scala - Akka - 是否有可能在 Actor 的主管中收到有关它失败的消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22142123/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com