2

我们正在考虑在我们的系统中采用状态机无状态框架,但我们有一个我还不明白的要求,无状态框架是否可以提供帮助,或者是否会增加我们系统的复杂性。

为什么要改变?因为系统正在增长并且我们想要删除的每个状态机之间都有一些依赖关系。此外,使用开源和结构良好的框架总是更好地创建一个新框架。

示例:我们有一个状态非确定性机器 [SM_A],它派生出 [n] 个新状态机 [SM_B]。[SM_A] 的最后状态取决于所有 [SM_B] 分叉。每个分叉,工作结束后加入 SM_A,通知他验证是否所有的 SM_B 都完成了。当所有分叉完成时,SM_A 将继续。此外,所有状态都需要持久化,因为此时我们等待一个动作来“唤醒”所有分叉 [SM_B]。

(伪状态:http ://www.uml-diagrams.org/state-machine-diagrams.html#fork-pseudostate )

下图说明了流程:

当前状态机

对不起,如果你不明白。

4

1 回答 1

1

据我了解,Stateless 不支持分叉。但我认为无状态可以用来解决你的问题。也许 SM_A 可用于实例化 n 个 SM_B 对象。SM_A 跟踪所有的 SM_B,每个 SM_B 都让 SM_A 知道它已经完成了它的工作。当 SM_A 注意到所有 SM_B 都已完成时,它将转换到 SM_A_5 状态。

于 2017-02-16T10:45:24.927 回答