首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >测试Akka FSM

测试Akka FSM
EN

Stack Overflow用户
提问于 2014-05-28 13:16:20
回答 1查看 268关注 0票数 3

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

例如:

代码语言:javascript
复制
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,重新实现所有调用,但这感觉相当笨拙。有什么好主意吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-28 13:53:11

您可以使用onTransition处理程序,例如:

代码语言:javascript
复制
trait InstrumentedActorFSM[S,D] extends Actor with FSM[S,D] { ...

  onTransition {
    case _ -> SomeState => stopTimerAndEmitMessage
  }

}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23912695

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档