gpt4 book ai didi

scala - 检测 Akka FSM

转载 作者:行者123 更新时间:2023-12-04 15:52:52 26 4
gpt4 key购买 nike

我喜欢采用 FSM 需要的指标,直到它达到某个状态。我不想用度量代码向我的类发送垃圾邮件,而是想添加一个特征来覆盖某些方法并在调用该方法时发出一条消息。

例如:

trait InstrumentedActorFSM[S,D] extends Actor with FSM[S,D] {self: Actor with FSM[S,D] with Logging  =>
startTimer // start measuring time here with Graphite

override def stop = {
stopTimerAndEmitMessage // emit message to graphite
super.stop
}
}

可悲的是,FSM 中的所有方法都被声明为最终的并且不能被覆盖。我可以诉诸 Cake 模式并嵌入 FSM 并重新实现所有调用,但这感觉很笨拙。有什么好的想法吗?

最佳答案

您可以像这样使用 onTransition 处理程序:

trait InstrumentedActorFSM[S,D] extends Actor with FSM[S,D] { ...

onTransition {
case _ -> SomeState => stopTimerAndEmitMessage
}

}

关于scala - 检测 Akka FSM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23912695/

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