我正在尝试使用弹簧状态机建模业务流程。到目前为止,我一直非常成功,但我仍然试图模拟一个动态位,其中
这是我想要实现的图形表示。
如果我将每个任务表示为状态机等等,我认为我可以这样做但我宁愿避免走这条路,因为它会使应用程序复杂化。理想情况下,我只有一个状态机配置。
在spring引用中我发现fork伪状态可能是我正在寻找的但是官方的repo只覆盖了一个静态配置(https://github.com/spring-projects/spring-statemachine/blob/master/docs/src/reference/asciidoc/sm-examples.adoc#statemachine-examples-tasks),其中每个任务都已经定义了(T1,T2, T3)。但是,对于我的应用程序需求,我希望能够(在运行时)添加“T4”。
从本质上讲,我想知道我的要求是否可以使用单个状态机满足,以及是否可以使用fork()满足我的需求。如果不是这样的话,我会欢迎任何可以推动我朝着正确方向前进的建议。
答案 0 :(得分:0)
正如我周末评论的那样,如果你需要一个动态的"配置然后最简单的方法是使用"动态构建器接口"这与所有其他例子中的相同。它基本上被添加为能够在spring应用程序上下文之外使用SSM。任务配方使用此模型,因为它支持使用分层区域和子机器运行任务的DAG。
您不一定需要fork,就好像使用相同的初始状态输入并行区域一样。但是,您需要联接以等待并行区域加入其执行。
虽然这个方法提供了一些可以做些什么的背景知识,但我们希望在我们的路线图中有更好的东西,应该添加一种dsl语言,这样可以使这些自定义实现更容易制作。