StateTimeout не работает с Akka FSM в Java

Я пытаюсь построить FSM-актер Akka в Java, который истекает через некоторое время, если он остается в состоянии ожидания. Я использую это ( https://doc.akka.io/docs/akka/2.5/fsm.html) в качестве справочного материала. Ниже приведен пример кода, который я использую

public class TestActorFSM extends AbstractLoggingFSM<State, Data> {
{
    startWith(Idle, Uninitialized);

    when(Idle, Duration.create(10, SECONDS),
        matchEventEquals(StateTimeout(), Todo.class,
            (event, todo) -> {
                log().info("Timeout received");
                return goTo(Expired);
            }));

    initialize();
}

Актер создается в состоянии ожидания, и если он остается в этом состоянии в течение 10 секунд, он должен перейти в состояние с истекшим сроком действия. Через 10 секунд я получаю событие, но оно не попадает в обработчик и выдает предупреждение с сообщением ниже. "необработанное событие StateTimeout в состоянии Idle"

Может кто-нибудь объяснить, пожалуйста, что я здесь делаю не так?

0 ответов

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