假设我有三个状态A,B,C,并且如果用户触发某个api调用,则会初始化状态机。如果要从状态A-> B-> C进行转换,则在状态B希望向用户发送响应,然后用户将通过添加一些有效负载来校准相同的api,然后它必须进入状态C。
使用弹簧状态机是否可以实现此业务用例。如果可能的话,我们该怎么做。如果从Spring State Machine不可能的话,我可以使用哪个框架来实现此用例
是的,您可以实现此用例,
我,但您需要将信息保留在某处,以便知道要馈送哪些信息以及处于哪种状态,应重置状态机。
状态机中有一些高级控件,您可以在其中将状态机重置为特定状态。我假设您正在使用状态机工厂来获取状态机。
StateMachine<S, E> stateMachine = smFactory.getStateMachine();
stateMachine.getStateMachineAccessor().doWithAllRegions(access -> access
.resetStateMachine(new DefaultStateMachineContext<>(state, null, null,null)));
使用上面的代码,您将获得已经处于所需状态的状态机,然后可以将上下文存储与所需信息一起传递。