Могу ли я использовать "отправитель" в коде Akka FSM?
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).
Ценю твою помощь!
2 ответа
Да, конечно! FSM являются только расширением ("предметно-ориентированный язык") для определения субъектов, которые имеют несколько состояний.
Да, ты можешь. FSM - это обычные акторы, для которых реализовано получение, работающее с состояниями.