Безопасно ли переопределять `receive` в Akka FSM?
Я создал FSM с Akka. Однако мой FSM не только передает сообщения, которые имеют отношение к его состоянию FSM. Его дети также могут пройти ActorRef
s до этого, который мой FSM должен затем передать дальше его родителю. Поскольку ФСМ в Акке (естественно) тоже актеры, я бы хотел отменить receive
чтобы поймать тех ActorRefs
, Однако это нарушило функционал ФСМ актера. Как правильно справиться с такой ситуацией?
1 ответ
Решение
Сообщения, которые не относятся к какому-либо состоянию FSM, могут быть обработаны в whenUnhandled
:
whenUnhandled {
case Event(someActorRef: ActorRef, _) =>
context.parent ! someActorRef
stay()
}
Хотя, переопределение receive
должен, афаик, тоже работать.