2016-10-15 1 views
1

나는 Akka와 함께 FSM을 만들었습니다. 그러나 내 FSM은 FSM 상태와 관련이있는 메시지 만 전달하지 않습니다. 그 자식도 ActorRef을 전달할 수 있으며, 그러면 내 FSM은 부모에게 더 이상 전달해야합니다. Akka의 FSM은 (자연스럽게) 배우이기도하므로 ActorRefs을 잡기 위해 receive을 덮어 쓰고 싶습니다. 그러나이를 수행하면 액터의 FSM 기능이 손상됩니다. 이런 상황을 어떻게 처리 할 수 ​​있을까요? 어떤 FSM 상태에 대해 관련이없는Akka FSM에서 '수신'을 무시하는 것이 안전합니까?

+1

Akka-FSM에는 많은 단점이 있습니다. https://github.com/alexandru/scala-best-practices/blob/master/sections/5-actors.md#55-should-not-use- akka-fsm – dk14

답변

2

메시지 whenUnhandled으로 처리 할 수 ​​있습니다

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

비록을, 너무, receive해야, AFAIK, 작업을 무시.