流程中的閘道器主要用於控制流程的流向
1、單向閘道器
依據條件只能選擇一條路,沒有符合條件的順序流則會丟擲異常。
2、並行閘道器(parallelgateway)
可以同時執行多個流程, 直到總流程的結束
. 可以對流程進行分支和聚合, 此時流程例項(processinstance)id和執行物件(execution)id是不一樣的
流程(並行閘道器)部署啟動後相關表資料變化(2個分支)
2.1、正在執行的執行物件表act_ru_execution(3條資料, 並行分支數2+流程例項1)
2.2、流程例項的歷史表act_hi_procinst(1條資料)、
2.3、正在執行的任務表act_ru_task(2條資料, 並行分支數)
2.4、歷史任務表act_hi_taskinst(2)
2.5、歷史活動節點表act_hi_actinst(4, +並行閘道器)
備註:a、乙個流程可以有多個執行物件,但是只有乙個流程例項
b、並行閘道器的功能是基於進入和外出的順序流的:
分支(fork): 並行後的所有外出順序流,為每個順序流都建立乙個併發分支。
匯聚(join): 所有到達並行閘道器,在此等待的進入分支,直到所有進入順序流的分支都到達以後, 流程就會通過匯聚閘道器。
c、並行閘道器不會解析條件。 即使順序流中定義了條件,也會被忽略
d、並行閘道器的進入和外出節點數目不一定相等
e、如果同乙個並行閘道器有多個進入和多個外出順序流, 它就同時具有分支和匯聚功能。 這時,閘道器會先匯聚所有進入的順序流,然後再切分成多個並行分支
3、包容閘道器
包容閘道器(inclusive gateway)就是並行閘道器(parallel gateway)和排他閘道器(exclusive gateway)的組合。可以在出口順序流上定義條件,包容閘道器會計算它們。然而主要的區別是,包容閘道器與並行閘道器一樣,可以選擇多於一條(出口)順序流
3.1、分支(fork):所有出口順序流都會被計算,對於計算為true的分支都會被執行
3.2、聚合(join):所有到達包容閘道器的並行執行,都會在閘道器處等待,直到每一條具有流程標誌的入口順序流,都有乙個執行到達。這是與並行閘道器的重要區別。換句話說,包容閘道器只會等待將會被執行的入口順序流。在合併後,流程穿過合併並行閘道器繼續
4、事件閘道器
該閘道器在執行出口處,要連線乙個捕獲中間事件。當流程執行到該閘道器時,流程類似處於等待的狀態,此時執行被暫停,activiti會為全部的中間catching事件建立相應的資料,哪個事件先被觸發,則流程會往該事件所處方向執行。
基於事件閘道器的外出順序流和普通順序流不同,這些順序流
不一定真的"執行", 相反它們讓流程引擎去決定執行到基於事件閘道器的流程需要訂閱哪些事件
備註:a、事件閘道器的進入和外出節點數目不一定相等
activiti操作之組任務與閘道器
組任務的存在是指定給特定的一批人去操作任務,例如班長審核,既可以是正班長,也可以是副班長,但是並沒有指定某乙個人,只要符合條件的都可以去拾取任務,然後完成任務。任務查詢 list tasklist taskservice.createtaskquery processdefinitionkey de...
Activiti(五)閘道器
在學習了activiti的流程變數之後,對整體的乙個流程有了乙個大致的了解,下面來學習一下activiti的閘道器。activiti閘道器用來控制流程的流向,閘道器可以 消費,也可以 生成 token。這裡主要是寫了排他閘道器和並行閘道器的例子。一 排他閘道器 測試 1 部署流程定義 2 啟動流程例...
Spring Cloud系列之閘道器 Zuul
pom.xml cloud demo cn.hao.learning 1.0 snapshot 4.0.0 gateway org.springframework.cloud spring cloud starter netflix zuul com.fasterxml.jackson.core j...