浏览 2586 次
锁定老帖子 主题:jbpm的例子之三 使用fork
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-06-08
最后修改:2009-09-17
1 fork节点出去的transition必须有name属性,因为Fork要用该属性来构建子token,如果不指定的话,那么所有的transition的name都为null,则只有一个transition会被调用。 2 fork的行为是依次调用transition,所以在底层它并不是一个并发的模型,如果需要使用并发模型的话,可以考虑jbpm的异步调用,当然,也可以自己起一个Thread去完成一些task。 3 token的name是和transition的name相关的,如下例所示,rootToken的fullName为'/',fork出来的两个子token分别为'/t2','/t1'。 4 join的token必须是兄弟token。 <process-definition name='TestForkProcess'> <start-state> <transition to='fork'></transition> </start-state> <fork name='fork'> <transition name ='t1' to='node0'></transition> <transition name ='t2' to='node1'></transition> </fork> <node name='node0'> <script> System.out.println("this script is entering node "+node); token.signal(); </script> <transition to='joinNode'></transition> </node> <node name='node1'> <script> System.out.println("this script is entering node "+node); token.signal(); </script> <transition to='joinNode'></transition> </node> <join name='joinNode'> <script> System.out.println("this script is entering node "+node); </script> <transition to='end' /> </join> <end-state name='end' /> </process-definition><process-definition name='TestForkProcess'> <start-state> <transition to='fork'></transition> </start-state> <fork name='fork'> <transition name ='t1' to='node0'></transition> <transition name ='t2' to='node1'></transition> </fork> <node name='node0'> <script> System.out.println("this script is entering node "+node); token.signal(); </script> <transition to='joinNode'></transition> </node> <node name='node1'> <script> System.out.println("this script is entering node "+node); token.signal(); </script> <transition to='joinNode'></transition> </node> <join name='joinNode'> <script> System.out.println("this script is entering node "+node); </script> <transition to='end' /> </join> <end-state name='end' /> </process-definition> 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |