是否可以使用状态机模式完成并行拆分工作流



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

我有一个工作流中涉及的实体的单一状态/状态。我可以为每个并行路径添加一些额外的状态,但是有更好的方法可以做到这一点吗?

谢谢

编辑

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

我正在将会话密钥令牌序列化为字符串,因此持久会话如下所示:

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

各种状态的触发器可以将并行拆分指定为目标。实际上,它似乎工作得很好。

状态机与状态之间的执行语义无关。状态机所做的只是呈现状态之间的转换,以及在转换期间验证和运行的逻辑。

在转换期间运行的逻辑本身可以并行运行,例如通过生成新线程。线程可以异步运行到执行,也可以生成,然后作为主线程的一部分重新连接到主线程。

最新更新