关闭

jBPM的token(令牌)

标签: tokenjbpmtransitionsignal任务join
1768人阅读 评论(0) 收藏 举报

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

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1351064次
    • 积分:19031
    • 等级:
    • 排名:第457名
    • 原创:583篇
    • 转载:87篇
    • 译文:1篇
    • 评论:609条
    最新评论