我主要是一名c#开发人员,正在为一系列长时间运行的流程设计有限状态机寻找一些指导(理论和/或代码示例)。定义的每个操作可以运行几分钟。我只是使用Windows任务计划程序来管理计划和实例化。
以下是我正在看的内容的简要概述。到目前为止,我已经使用Stateless构建了Op Status FSM。现在,我正在尝试找出处理操作顺序的最佳方法,其中包含一些条件,例如第3项显示。这些条件基于Op2产生的数据。
到目前为止我考虑的选项:
- 为操作序列创建一个FSM(看起来过于复杂,但也许我在某处遗漏了一个基础)
- 为每个操作创建一个操作管理器,让每个经理担心它感兴趣的状态以及下一个状态应该是什么
操作 - >下一步的顺序操作
- 无 - > Op1
- Op1 - > Op2
- Op2 - > Op3或Op4有条件
- Op3 - > Op4
- Op4 - > Op5
- Op5 - >无
醇>
OP状态
- 空闲
- 触发器:预定 - >未决
- 约束:必须设置操作
- 待
- 运行
- 触发器:失败 - >错误
- 触发:成功 - >空闲
- 触发器:NotReady - >未决
- 错误
- 触发:重试 - >未决
- 触发:取消 - >空闲(删除指定的操作)