我的FSM正在向远程参与者发送消息,并在收到答复时进行转换。 FSM状态配置有可以正常工作的超时(即使没有收到来自远程参与者的响应,超时也会按预期触发并导致“超时”过渡),但是由于某种原因,如果目标参与者死亡,则FSM超时将不开火。
我的FSM如下:
onTransition {
case A -> B ...
case B -> C ...
...
}
onTermination {
case StopEvent(FSM.Normal, state, _) => ...
case StopEvent(FSM.Failure(_, _, _) => ...
}
when(A, stateTimeout = timeout) {
....
}
...
whenUnhandled {
case Event(StateTimeout, _) => NOT CALLED IF THE REMOTE ACTOR DISCONNECTS
}