根据事件和一组标准构建Spring State Machine

时间:2017-12-15 10:58:51

标签: java spring spring-mvc fsm spring-statemachine

我想构建一个状态机,它可能有一组单独的事件和/或状态用于一组标准(如用户,位置等等)。将有一个基本FSM和许多自定义FSM用于组合以上标准。

例如:

用户U1有一个单独的FSM

用户U2 =>使用全局FSM

用户U3 @位置印度=>有一个单独的FSM

用户U3 @位置USA =>有不同的FSM

所有用户@位置UK =>有一个不同的FSM

我正在考虑Spring State Machine的地区,但看起来不能实现这一点。

有没有办法可以使用Spring State Machine实现这一点,还是有人可以推荐任何其他FSM库?

1 个答案:

答案 0 :(得分:1)

是的,地区在这里没有帮助,因为那时你只有平行的状态。

一种选择是创建一个状态机,就像全局一样。然后,对于每个其他状态机类型/用户,您将在全局状态上创建一个新状态(这将成为父状态),然后在子状态机中处理所有子状态。然后在全局机器上,您可以有条件地转换到处理子状态的状态。在spring-statemachine中有一个限制,即不同机器中的所有子状态都需要具有不同的状态ID。

我可能只是尝试构建不同的机器配置,然后根据标准有条件地请求不同的机器。