我正在尝试实现弹簧状态机,并且在每个状态转换中都希望在从状态A转换为状态B之前回复用户

问题描述 投票:0回答:1

假设我有三个状态A,B,C,并且如果用户触发某个api调用,则会初始化状态机。如果要从状态A-> B-> C进行转换,则在状态B希望向用户发送响应,然后用户将通过添加一些有效负载来校准相同的api,然后它必须进入状态C。

使用弹簧状态机是否可以实现此业务用例。如果可能的话,我们该怎么做。如果从Spring State Machine不可能的话,我可以使用哪个框架来实现此用例

state-machine spring-statemachine state-machine-workflow
1个回答
0
投票

是的,您可以实现此用例,

我,但您需要将信息保留在某处,以便知道要馈送哪些信息以及处于哪种状态,应重置状态机。

状态机中有一些高级控件,您可以在其中将状态机重置为特定状态。我假设您正在使用状态机工厂来获取状态机。

 StateMachine<S, E> stateMachine = smFactory.getStateMachine();
 stateMachine.getStateMachineAccessor().doWithAllRegions(access -> access
          .resetStateMachine(new DefaultStateMachineContext<>(state, null, null,null)));

使用上面的代码,您将获得已经处于所需状态的状态机,然后可以将上下文存储与所需信息一起传递。

© www.soinside.com 2019 - 2024. All rights reserved.