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



假设我有三个状态A,B,C,并且状态机初始化发生,如果用户触发一些api调用。 如果要从状态 A -> B -> C 发生转换,那么在状态 B 想要向用户发送响应,然后用户将通过附加一些有效负载来计算相同的 api,然后它必须进入状态 C。

是否可以使用弹簧状态机实现此业务用例。如果可能的话,那么我们如何做到这一点。如果不可能从弹簧状态机我可以使用哪个框架来实现此用例

是的,你可以实现这个用例,

我但是你需要将信息持久化到某个地方,以便你知道要提供什么信息以及在哪种状态下,你应该重置状态机。

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

stateMachine.getStateMachineAccessor().doWithAllRegions(access -> access
.resetStateMachine(new DefaultStateMachineContext<>(state, null, null,null)));

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

最新更新