2016-10-15 3 views
1

Я создал FSM с Аккой. Однако мой FSM не только передает переданные сообщения, которые имеют отношение к его состоянию FSM. Его дети также могут пройти ActorRef s до этого, которые мой FSM должен затем пройти дальше до своего родителя. Поскольку FSM в Акке (естественно) и актеры, я хотел бы переопределить receive, чтобы поймать их ActorRefs. Тем не менее, это нарушило функциональность FSM актера. Каков правильный способ справиться с такой ситуацией?Можно ли переопределить `получение` в FK Akka?

+1

Просто отметим, что Akka-FSM имеет множество недостатков: https://github.com/alexandru/scala-best-practices/blob/master/sections/5-actors.md#55-should-not-use- Акка-FSM – dk14

ответ

2

Сообщения, которые не имеют отношения к какой-либо FSM состояния могут быть обработаны в whenUnhandled:

whenUnhandled { 
    case Event(someActorRef: ActorRef, _) => 
    context.parent ! someActorRef 
    stay() 
} 

Хотя, перекрывая receive должен, AFAIK, работа тоже.

Смежные вопросы