Безопасно ли переопределять `receive` в Akka FSM?

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

1 ответ

Решение

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

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

Хотя, переопределение receive должен, афаик, тоже работать.

Другие вопросы по тегам