2014-09-09 12 views
1
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"로 이동하고 어떤 경우에는 발신자에게 메시지를 보내야합니다. (보내는 사람).Akka FSM 코드에서 "발신자"를 사용할 수 있습니까?

감사합니다.

답변

0

가능합니다. FSM은 수신자가 상태를 처리하도록 구현 된 정상적인 행위자입니다.

0

예, 물론입니다! FSM은 여러 국가가있는 액터를 정의하기위한 확장 ("도메인 특정 언어") 일뿐입니다.

+0

fsm 파이프가 자기 자신에게 보내는 메시지가 발신자 인 경우 지금은 자기입니까? – Adgezaza