2016-10-15 3 views
1

Ich habe eine FSM mit Akka erstellt. Meine FSM erhält jedoch nicht nur Nachrichten, die für ihren FSM-Status relevant sind. Seine Kinder können auch ActorRef s passieren, die mein FSM dann weiter zu seinem Elternteil weiterleiten sollte. Da FSMs in Akka (natürlich) auch Akteure sind, möchte ich receive überschreiben, um diese ActorRefs zu fangen. Dadurch wurde jedoch die FSM-Funktionalität des Schauspielers durchbrochen. Wie ist der richtige Umgang mit einer solchen Situation? AuchIst es sicher, in einem Akka FSM `receive` zu ​​überschreiben?

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

Obwohl, zwingende receive sollte, afaik, Arbeit,:

+1

Um nur zu erwähnen, dass Akka-FSM viele Nachteile hat: https://github.com/alexandru/scala-best-practices/blob/master/sections/5-actors.md#55-should-not-use-use- akka-fsm – dk14

Antwort

2

Nachrichten, die nicht relevant für alle FSM-Zustand sind, können in whenUnhandled behandelt werden.

Verwandte Themen