我想构建一个状态机,它可能有一组单独的事件和/或状态用于一组标准(如用户,位置等等)。将有一个基本FSM和许多自定义FSM用于组合以上标准。
例如:
用户U1有一个单独的FSM
用户U2 =>使用全局FSM
用户U3 @位置印度=>有一个单独的FSM
用户U3 @位置USA =>有不同的FSM
所有用户@位置UK =>有一个不同的FSM
我正在考虑Spring State Machine的地区,但看起来不能实现这一点。
有没有办法可以使用Spring State Machine实现这一点,还是有人可以推荐任何其他FSM库?
答案 0 :(得分:1)
是的,地区在这里没有帮助,因为那时你只有平行的状态。
一种选择是创建一个状态机,就像全局一样。然后,对于每个其他状态机类型/用户,您将在全局状态上创建一个新状态(这将成为父状态),然后在子状态机中处理所有子状态。然后在全局机器上,您可以有条件地转换到处理子状态的状态。在spring-statemachine中有一个限制,即不同机器中的所有子状态都需要具有不同的状态ID。
我可能只是尝试构建不同的机器配置,然后根据标准有条件地请求不同的机器。