Activit各個閘道器使用簡單介紹

2022-05-04 17:54:10 字數 1480 閱讀 2043

一、排他閘道器 exclusive gateway

排他閘道器又叫互斥閘道器,條件計算為true的順序流會被選擇繼續流程,有且只有一條出口,如果出現多個條件為true,則會預設選擇第一條true來執行,如果沒有條件輸出true,流程走到這一步的時候則會報錯

二、並行閘道器 parallel gateway

它可以將執行分支(fork)為多條路徑,也可以合併(join)執行的多條入口路徑。簡單點說就是,並行閘道器它可以有多條入口和出口,並且在合併入口處會等待其他分支執行完,然後再執行後面的流程,另外,需要注意的是,並行閘道器沒有條件的概念,

即便設定了條件,它會自動忽略

三、包容閘道器 inclusive gateway

用內部帶有』圓圈』圖示的閘道器(菱形)表示。

這個閘道器比較特殊,它集合了前面兩個閘道器的特點,一句話來說就是,它既可以像排他閘道器那樣設定條件,也能像並行閘道器這樣設定多條分支並行執行,在上圖中,當流程啟動後,如果流程變數paymentreceived == false且shiporder == true,將會建立兩個任務。如果只有乙個流程變數等於true,則只會建立乙個任務。如果沒有條件計算為true,會丟擲異常,並可通過指定出口順序流

舉個例子:啟動流程的時候傳入下面的引數,執行流程。

hashmap variablemap = new hashmap();

variablemap.put("receivedpayment", true);

variablemap.put("shiporder", true);

在上面的例子中,只有ship order 乙個任務會被建立,當這個任務完成後,第二個包容閘道器會合併這兩個執行,並且由於只有一條出口順序流,不會再建立並行執行路徑,只會啟用archive order任務繼續後面的流程。

四、基於事件的閘道器 event-based gateway

這個閘道器相比其他三個閘道器,用的相對沒那麼多,主要還是根據業務需求吧

該閘道器在執行出口處,要連線乙個捕獲中間事件。當流程執行到該閘道器時,流程類似處於等待的狀態,此時執行被暫停,並建立乙個事件訂閱

需要訂閱什麼事件。基於下列約束:

當然,新手看到了這裡可能還是不知道什麼是事件閘道器,它到底有什麼用處呢?下面,我用乙個例子來解釋一下:

上圖使用了事件閘道器、定時器事件,訊號捕捉事件,當啟動流程後,流程例項訂閱alert訊號事件,並建立乙個 5分鐘後觸發的定時器。這使得流程引擎等待5分鐘,並等待訊號事件。如果訊號在5分鐘內觸發,則定時器會被取消,執行沿著訊號繼續。如果訊號未被觸 發,執行會在定時器到時後繼續,並取消訊號訂閱。

一句話概括事件閘道器,如果你提交了請假申請,此時流程處於等待狀態,當某個事件觸發時,流程走到使用者任務,辦理了你的請假申請,那麼等待會被取消,如果超過1天,還是沒有觸發某個事件,那麼你的請假單直接跳過你的上級,直接往後面的流程走

springboot中使用Activiti郵件任務

springboot中使用activiti郵件任務 解決方法 activiti允許通過自動郵件服務任務來增強業務流程,這些任務將電子郵件傳送給乙個或多個收件人,多個人以逗號隔開,包括抄送,密件抄送,支援傳送html內容等。to 郵件接收人,多個人使用英文逗號隔開 subject 郵件主題 cc 電子...

如何使用adb命令檢視當前activity

1.將手機連線電腦,將你要找的activity所在頁面顯示在手機上 2.windows r開啟黑視窗 輸入 adb shell dumpsys activity 然後按回車 這一步使用的前提是,你的電腦需要配置adb命令 3.回車之後 成功的話就會列印出很多資訊 資訊太多黑視窗中可能會顯示不全 所以...

閘道器的簡單概念

大家都知道,從乙個房間走到另乙個房間,必然要經過一扇門。同樣,從乙個網路向另乙個網路傳送資訊,也必須經過一道 關口 這道關口就是閘道器。顧名思義,閘道器 gateway 就是乙個網路連線到另乙個網路的 關口 那麼閘道器到底是什麼呢?閘道器實質上是乙個網路通向其他網路的ip位址。比如有網路a和網路b,...