flowable 特殊多例項並行例子解決方案

2021-10-05 09:57:47 字數 2001 閱讀 7939

由於公司需要在流程圖中明確的顯示不同部門的流程情況,而這些部門是並行的,最後要有系統自動判斷這些節點的審核結果給出乙個最終的結果,來確定流程的走向,如果是單個審核節點的話可以使用多例項(設定多例項結束條件即可),但是通常業務中包含著不止乙個節點,這種情況我們可以使用子流程解決,也可以使用下邊我要介紹的方案,這個方案我只畫了每個並行節點的乙個審核,但是實際通常會有多個,我只做例子講解,就不畫多個了。

在系統判斷這個節點的時候我們就要是使用任務***:tasklistener

/**

* @projectname: spark-platform

* @package: com.spark.platform.flowable.biz.listener

* @classname: tasklistener

* @author: wangdingfeng

* @description: 任務***

* @date: 2020/4/8 14:22

* @version: 1.0

*/@slf4j

@component

public class mytasklistener implements tasklistener

}}

tasklistener 雖然是可以做監聽,但是由於此時任務資料還沒有在資料庫中落地,所以無法獲取到當前節點的taskid,不能自動推動流程的走向,所以我加了乙個執行緒用來刷此個節點的taskid,**如下

/**

* @projectname: spark-platform

* @package: com.spark.platform.flowable.biz.listener

* @classname: runnabletask

* @author: wangdingfeng

* @description: 執行緒

* @date: 2020/4/14 11:07

* @version: 1.0

*/@slf4j

public class messagerunnabletask implements runnable

@override

public void run()

/*** 遞迴查詢 直到查詢到task任務已經落地為止,然後發布訊息

** @param delegatetask

* @return

*/private task gettask(delegatetask delegatetask)

log.info("代辦任務資料庫已經落地----");

return task;

}}

由於通常我們的業務**不會在工作流這個服務中判斷,通常由業務發起伺服器判斷,所以我使用了訊息訂閱。此示例**用的是redis訊息發布訂閱,實際開發中不要使用redis,由於redis的訊息佇列一旦消費者不存在,就會出現訊息丟失的情況,請使用rabbitmq這些訊息佇列。

redis 訂閱處理訊息

@component

@slf4j

public class redischannellistener implements messagelistener 發來的訊息:{}", address, address);

switch (address)

} catch (exception e)

}/**

* 文章訊息處理

** @param content

*/public void articlemessage(string content) }}

acttaskservice acttaskservice = springcontextholder.getbean(acttaskservice.class);

if (flag)

acttaskservice.complete(taskvo.getid(), map);

}}

spark: 

flowable 動態多例項

多例項動態測試 啟動流程 param users 使用者組 param processname 流程key return 流程id responsebody public string start process group requestparam value users required fal...

flowable 任務節點多例項使用

我們在使用flowable 工作流引擎的時候,最常用的肯定是任務節點,因為在oa系統 審批系統 辦公自動化系統中核心的處理就是流程的運轉,在流程運轉的時候,可能我們有這樣的乙個需求,在乙個任務節點的時候,我們需要多個人對這個節點進行審批,比如實際中這樣乙個例子,假如是乙個部門的投票,這個部門有5個人...

mysql多例項命令 mysql多例項安裝

1 編輯my.cnf檔案增加相關引數如下 mysqld multi user root pass 123 mysqld usr local mysql bin mysqld safe mysqladmin usr local mysql bin mysqladmin log usr local my...