可以使用状态机模式完成并行拆分工作流程吗?

时间:2013-11-01 20:27:16

标签: workflow state-machine state-machine-workflow

或者我应该说,实现并行拆分任务的正确方法/工具是什么?

我有一个参与工作流程的实体的状态/状态。我可以为每个并行路径添加一些额外的状态,但是有更好的方法吗?

由于

修改

这还不是一个完整的答案,但经过大量研究后我最终做的就是为状态机创建一种包装器。我看过的现有工具开销太大,无法满足我的需求。每个状态机都是一个“进程”,进程的每个状态都是“会话”的一部分。会话又有一个会话密钥,它只是每个进程当前状态的集合。

我将会话密钥令牌序列化为字符串,因此持久化会话看起来像这样:

"enroll=get-contact|verify=null|authorize=null"

各种状态的触发器可以将并行拆分指定为目标。它实际上看起来效果很好。

1 个答案:

答案 0 :(得分:2)

状态机与状态之间的执行语义无关。所有状态机都会显示状态之间的转换以及在转换期间验证和运行的逻辑。

在转换过程中运行的逻辑可以并行运行,例如通过生成新线程。线程可以与执行异步运行,也可以生成它们,然后作为主线程的一部分连接回主线程。