并行会签:or 签 / 会签 / 阈值
串行是排队,并行是同一张单同时摆到几个人面前。问题立刻来了:三个人投票,到底几票算过?这就是归并策略 (quorum)——把多个子结果归并成一个父结果:any(一票通过)、all(全票通过)、N-of-M(多数通过)。下面你亲自扮演财务、法务、HR 三位审批人逐个投票,实时看不同策略何时判定通过 / 否决,以及一旦定局,其余人的待办怎么自动结束。
1 · 三种策略,一句话区分
| 策略 | 通过条件 | 否决条件 | 典型场景 |
|---|---|---|---|
| any 或签 | ≥ 1 票通过 | 全部驳回 | 「任一值班经理批了即可放行」 |
| all 会签 | 全部通过 | ≥ 1 票驳回 | 「财务 + 法务 + HR 都点头才能签合同」 |
| N-of-M 阈值 | ≥ N 票通过 | 驳回数 > M−N(凑不够 N 了) | 「5 位委员里 3 人同意即过」 |
定局即结束 (short-circuit)。 or 签里只要有人先批,其余人的待办立即作废(无需再投);会签里只要有人先拒,其余人也不必再看。流程引擎要主动撤销 (cancel) 这些 pending 任务——否则它们会成为永远处理不掉的「僵尸待办」。
进阶:动态会签 / 多实例 (multi-instance)。 上面会签人是写死的三个。真实场景常是「所有部门经理会签」——人数运行时才定,节点动态展开成 n 个并行子任务,再按 all / any / N-of-M 归并。这正是把「一个节点」摊成「一组节点」,归并逻辑完全复用。