工作流控制模式-多例項模式7種
阿新 • • 發佈:2021-10-07
在一個流程例項裡,當一個活動存在多個工作項或活動例項時,我們稱之為多例項。多例項 產生於3種情況:
- 活動在觸發時產生多個工作項;
- 活動在流程例項中被觸發多次,產生了多個活動例項(迴圈、多例項合併);
- 兩個或多個活動具有相同的工作內容,這些內容重複的活動被抽 離成塊活動或子流程多次執行。
多例項模式共有7種,如圖A-25所示。
圖A-25 多例項模式
- 非同步多例項:活動建立多個工作項,這些工作項彼此獨立同時執行,不需要同步。
- 定義期確定數目的同步多例項:活動建立多個工作項,建立數目在定義期建模時確定, 這些工作項彼此獨立同時執行,當它們都執行完畢後才觸發後續活動的執行。
- 執行期確定數目的同步多例項:與定義期確定數目的同步多例項區別:建立工作項的數 目在執行期、活動建立工作項前確定。
- 執行期不確定數目的同步多例項:活動建立多個工作項,建立數目依賴於執行時的一系 列因素,這些因素包括流程例項狀態、可用的資源、外部環境等,在最後一個工作項執 行完成前都有可能產生新的工作項,這些工作項彼此獨立同時執行,所有工作項都執行 完畢後才觸發後續活動的執行。
- 多例項的靜態部分合並:擴充套件執行期確定數目的同步多例項模式。建立工作項的數目M 在活動建立前確定,同時確定的還有必須完成的例項數目N,N < M。當N個工作項完成 後即觸發後續活動的執行,剩餘的工作項繼續執行,但是被忽略。
- 多例項的取消部分合並:與多例項的靜態部分合並區別:當第N個工作項完成觸發後續活 動後,剩餘工作項被取消不再執行。
- 多例項的動態部分合並:擴充套件執行期不確定數目的同步多例項模式,增加活動的完成條 件,只要滿足條件就觸發後續活動,剩餘的工作項繼續執行,但被忽略。