【问题标题】:Can i use "sender" in Akka FSM code?我可以在 Akka FSM 代码中使用“发件人”吗?
【发布时间】:2014-11-03 00:29:27
【问题描述】:
class RulesFSMActor extends Actor with FSM[State, Data]{
  When(Rule1)
  {
    case Event(CASE_MSG1, Data) => 
      if (<someconditon>)
        goto(Rule2)
  }
  When(Rule2)
  {
    case Event(CASE_MSG2, Data) => 
    if (<someconditon>){
      sender ! MessgeBackToCaller"    // Is it allowed to use "sender" ?
      goto(Rule1)
  }
 }
//unhandled ,...etc
}

假设我的初始状态是“Rule1”并且它不断在状态之间切换,如果它在“Rule1”中,它会移动到“Rule2”,反之亦然,基于某些条件它必须将消息发送回 Caller(Sender )。

感谢您的帮助!

【问题讨论】:

    标签: scala akka scala-2.10 fsm gen-fsm


    【解决方案1】:

    是的,你可以。 FSM 是普通的参与者,实现了接收来处理状态。

    【讨论】:

      【解决方案2】:

      是的,当然! FSM 只是一种扩展(一种“领域特定语言”),用于定义具有多种状态的 Actor。

      【讨论】:

      • 如果 fsm 将消息通过管道发送给自己,发件人现在是自己吗?
      • 是的,但是你可以把initialsender的信息放在数据中,然后跨州传递
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-17
      • 2011-09-05
      • 1970-01-01
      • 2014-09-26
      • 1970-01-01
      • 2012-04-09
      相关资源
      最近更新 更多