最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Flowable?ReceiveTask使用場景分析

 更新時間:2022年10月11日 16:58:21   作者:江南一點雨  
這篇文章主要為大家介紹了Flowable?ReceiveTask使用場景分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

1. 使用場景

在之前的案例中,松哥和大家舉例最多的 Task 主要是 UserTask 和 ServiceTask,ReceiveTask 雖然也和大家提過但是沒有仔細講過,今天我們就來捋一捋 ReceiveTask 在 Flowable 中到底怎么玩。

接受任務(wù)(Receive Task),接觸過 Flowable 的小伙伴應(yīng)該是見過或者聽說過,它的圖標如下圖:

ReceiveTask 可以算是 Flowable 中最簡單的一種任務(wù),當該任務(wù)到達的時候,它不做任何邏輯,而是被動地等待用戶 Trigger。

ReceiveTask 往往適用于一些不明確的阻塞,例如:一個復雜的計算需要等待很多條件,這些條件是需要人為來判斷是否可以執(zhí)行,而不是直接執(zhí)行,這個時候,工作人員如果判斷可以繼續(xù)了,那么就 Trigger 一下使流程繼續(xù)向下執(zhí)行。

基于以上介紹,ReceiveTask 還有一個中文名字叫做等待任務(wù),也就是說,流程走到 ReceiveTask 這個節(jié)點的時候,就卡住了,需要用戶手動點一下,流程才會繼續(xù)向下走。

2. 實踐

2.1 繪制流程圖

我們繪制一個簡單的流程圖來看下 ReceiveTask 到底是啥樣子,流程圖如下:

ReceiveTask 圖標上有一個信封。

小伙伴們繪制的時候,首先選擇用戶任務(wù):

然后點擊設(shè)置按鈕,將用戶任務(wù)切換為 ReceiveTask 即可:

繪制完成后,我們下載這個流程圖對應(yīng)的 XML 文件。

來看看,帶 ReceiveTask 的流程圖是下面這樣的:

<process id="receiveTask_demo" name="接收任務(wù)測試流程" isExecutable="true">
  <documentation>接收任務(wù)測試流程</documentation>
  <startEvent id="startEvent" flowable:formFieldValidation="true"></startEvent>
  <sequenceFlow id="sid-9E7B327E-EFC8-4D29-8C6F-157D5E1B7A4E" sourceRef="startEvent" targetRef="todaySales"></sequenceFlow>
  <receiveTask id="todaySales" name="統(tǒng)計今日銷售額"></receiveTask>
  <receiveTask id="sendMsg" name="發(fā)送今日銷售業(yè)績給老板"></receiveTask>
  <endEvent id="endEvent"></endEvent>
  <sequenceFlow id="s2" sourceRef="todaySales" targetRef="sendMsg"></sequenceFlow>
  <sequenceFlow id="s3" sourceRef="sendMsg" targetRef="endEvent"></sequenceFlow>
</process>

2.2 部署

這個松哥在之前的文章中已經(jīng)反復介紹過多次了,這里就不再贅述了,大家參考我們之前的文章部署并啟動上面這個流程。

2.3 分析

當流程啟動之后,按照我們前面文章的分析,我們先去數(shù)據(jù)庫中 ACT_RU_TASK 表進行查看,發(fā)現(xiàn)該表空空如也。也就是 ReceiveTask 并不會被記錄在 ACT_RU_TASK 表中,他們只是單純的被記錄在 ACT_RU_EXECUTION 表中,因為在該表中,我們可以查看 ReceiveTask 的記錄。

對于 ReceiveTask 的觸發(fā)方式也很簡單,如下:

@Test
void test10() {
    List<Execution> list = runtimeService.createExecutionQuery().activityId("todaySales").list();
    for (Execution execution : list) {
        runtimeService.trigger(execution.getId());
    }
}

由于 ReceiveTask 的觸發(fā)需要傳入的參數(shù)是執(zhí)行實例 ID 而不是流程實例 ID,所以我們要查詢出來當前待觸發(fā)的執(zhí)行實例 ID。具體的查詢方式就是根據(jù) ReceiveTask 的節(jié)點名稱去查詢。

查詢到執(zhí)行實例 ID 之后,調(diào)用 trigger 方法完成觸發(fā),使得流程繼續(xù)向下走。

好啦,現(xiàn)在流程進入到發(fā)送今日銷售業(yè)績給老板這個環(huán)節(jié)了,老辦法繼續(xù)查詢并執(zhí)行:

@Test
void test10() {
    List<Execution> list = runtimeService.createExecutionQuery().activityId("sendMsg").list();
    for (Execution execution : list) {
        runtimeService.trigger(execution.getId());
    }
}

這個執(zhí)行完層后,這個流程就結(jié)束了?,F(xiàn)在我們?nèi)ゲ榭?ACT_RU_ACTINST 表已經(jīng)空了,查看 ACT_RU_EXECUTION 表也空了。

以上就是Flowable ReceiveTask使用場景分析的詳細內(nèi)容,更多關(guān)于Flowable ReceiveTask使用場景的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • SpringBoot項目如何設(shè)置權(quán)限攔截器和過濾器

    SpringBoot項目如何設(shè)置權(quán)限攔截器和過濾器

    這篇文章主要介紹了使用lombok時如何自定義get、set方法問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • springboot加載一個properties文件轉(zhuǎn)換為map方式

    springboot加載一個properties文件轉(zhuǎn)換為map方式

    這篇文章主要介紹了springboot加載一個properties文件轉(zhuǎn)換為map方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • Java 虛擬機棧詳解分析

    Java 虛擬機棧詳解分析

    在線程創(chuàng)建時,JVM會為每個線程創(chuàng)建一個單獨的棧空間。JVM的棧內(nèi)存不需要是連續(xù)的。JVM在棧上會進行兩個操作:壓入和彈出棧幀。對于一個特定的線程來說,棧被稱為運行時棧。這個線程調(diào)用的每個方法會被存儲在響應(yīng)的運行時棧里,包括了參數(shù),局部變量,計算媒介和其他數(shù)據(jù)
    2021-11-11
  • java利用Future實現(xiàn)多線程執(zhí)行與結(jié)果聚合實例代碼

    java利用Future實現(xiàn)多線程執(zhí)行與結(jié)果聚合實例代碼

    這篇文章主要給大家介紹了關(guān)于java利用Future實現(xiàn)多線程執(zhí)行與結(jié)果聚合的相關(guān)資料,Future模式的核心,去除了主函數(shù)的等待時間,并使得原本需要等待的時間段可以用于處理其他業(yè)務(wù)邏輯,需要的朋友可以參考下
    2021-12-12
  • 詳解java中float與double的區(qū)別

    詳解java中float與double的區(qū)別

    這篇文章主要介紹了JAVA中float與double的區(qū)別,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-04-04
  • 如何基于SpringBoot實現(xiàn)人臉識別功能

    如何基于SpringBoot實現(xiàn)人臉識別功能

    人工智能時代的到來,相信大家已耳濡目染,虹軟免費,離線開放的人臉識別SDK,正推動著全行業(yè)進入刷臉時代,下面這篇文章主要給大家介紹了關(guān)于如何基于SpringBoot實現(xiàn)人臉識別功能的相關(guān)資料,需要的朋友可以參考下
    2022-05-05
  • Java連接mysql數(shù)據(jù)庫以及mysql驅(qū)動jar包下載和使用方法

    Java連接mysql數(shù)據(jù)庫以及mysql驅(qū)動jar包下載和使用方法

    這篇文章主要給大家介紹了關(guān)于Java連接mysql數(shù)據(jù)庫以及mysql驅(qū)動jar包下載和使用方法,MySQL是一款常用的關(guān)系型數(shù)據(jù)庫,它的JDBC驅(qū)動程序使得我們可以通過Java程序連接MySQL數(shù)據(jù)庫進行數(shù)據(jù)操作,需要的朋友可以參考下
    2023-11-11
  • spring boot動態(tài)切換數(shù)據(jù)源的實現(xiàn)

    spring boot動態(tài)切換數(shù)據(jù)源的實現(xiàn)

    這篇文章主要介紹了spring boot動態(tài)切換數(shù)據(jù)源的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-01-01
  • java聯(lián)調(diào)生成測試數(shù)據(jù)工具類方式

    java聯(lián)調(diào)生成測試數(shù)據(jù)工具類方式

    這篇文章主要介紹了java聯(lián)調(diào)生成測試數(shù)據(jù)工具類方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • 帶你輕松了解Modbus協(xié)議

    帶你輕松了解Modbus協(xié)議

    這篇文章主要給大家介紹了關(guān)于Modbus協(xié)議的相關(guān)資料,此協(xié)議定義了一個控制器能認識使用的消息結(jié)構(gòu),而不管它們是經(jīng)過何種網(wǎng)絡(luò)進行通信的,需要的朋友可以參考下
    2021-11-11

最新評論

龙南县| 松溪县| 陆良县| 陇西县| 海兴县| 墨竹工卡县| 安国市| 崇左市| 磐安县| 衡水市| 拜城县| 富平县| 福安市| 唐海县| 获嘉县| 锦州市| 德江县| 启东市| 织金县| 米脂县| 山东省| 泸水县| 香港| 法库县| 桂林市| 峨山| 建阳市| 莱西市| 锡林郭勒盟| 苏尼特左旗| 乌海市| 诏安县| 林州市| 左云县| 长春市| 论坛| 阿图什市| 汤阴县| 勃利县| 南漳县| 镇平县|