jbpm的令牌

 

作者:  fndcz

jBPMtoken(令牌)

jbpm中最重要的概念,應該是令牌(Token)和信令(Signal)。在整個流程實例運行過程中,我們可以迅速的利用token得到其當前的current state。在解決並行等(比如Fork)問題時,jBpmToken對象維護了父子關係,這種關係在涉及到Fork的時候會產生。 jBpmToken這個對象身兼了多種使命:

1)快速定位current state

2)用於forkjoin算法

3)用於告知任務執行者的任務索引。

如下代碼:
//pd
process definition,piprocess instance ProcessInstance
pi = new ProcessInstance( pd );
//
得到根令牌
Token token = pi.getRootToken();
//
發信令
token.signal();
Token
signal方法也可以傳入transition參數,這個方法把信令發送給Token,這樣,令牌將被激活,並沿指定的transition離開當前的狀態(如果沒有指定transition,將沿缺省的transition 離開當前狀態)

jbpm是怎麼實現的呢?其實很簡單:
1)Token
記錄了當前的狀態(current state,只有當前的狀態(或稱節點)擁有該令牌
2)
TOKENsignal,當前狀態收到該signal
3)
當前狀態把令牌傳給signal中指定的transition
4)transition
收到令牌後,不強佔,馬上把令牌傳給下個狀態.
5)
根據令牌的位置,流程的狀態已經發生改變.

 

 

 

 

 

發佈了0 篇原創文章 · 獲贊 0 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章