如何通知我有关状态机完成的信息



我有一个配置了伪结束状态的状态配置。我预计状态机将在达到该状态时完成,但我缺少一种获得通知的方法。

我已经注册了一个状态机侦听器,但它没有收到有关状态机完成的通知。

好的 - 我终于发现了。

要使状态机停止,必须定义具有伪状态 END 的状态。当达到此状态时,将通知状态机器侦听器计算机已停止。

下面是弹簧配置的轮廓,我使用。一些细节被省略了。

@Override
public void configure(StateMachineStateConfigurer<String, String> states) throws Exception {
    states
            .withStates()
            .initial("WAITING")
            .state("FAILED", fail(), null)
            .state("SUCCESS", success(), null)
            .end("COMPLETED")
    ;
}

在转换配置中,您这样做:

@Override
public void configure(StateMachineTransitionConfigurer<String, String> transitions) throws Exception {
    transitions
            .withExternal().source("FAILED").target("COMPLETED")
            .and().withExternal().source("SUCCESS").target("COMPLETED")
    ;
}

相关内容

  • 没有找到相关文章

最新更新