传智播客java学习 jbpm进阶
我今天学习了jbpm的知识:我做了简单的摘要:
流程图中的各种节点的作用及用法:
需要有不同类型(作用)的节点,才能设计出复杂的流程图。Jbpm有一套预先定义好的节点类型。如果不够用,也可以使用自定义节点进行扩展,以完成不同的流程的需要。不同的节点类型代表不同的行为。
每个流程都必须要有开始节点和结束节点。
预定义节点:
start-state,开始节点:标识流程开始、
end-state,结束节点:标识流程结束、
task-node,任务节点:可以放0个或多个任务、
decision,决策节点 :路径选择,只使用一个流转(叉路口)、
fork/join,分支节点/合并节点:可以分为多个并行执行的分支、
state,状态节点:等待。
还有mail-node、process-state、super-state等
每个节点都对应一个类(Jbpm的持久化类),都是org.jbpm.graph.def.Node的子类。节点都有名字、流转(end-state除外)。
start-state 节点:
开始节点:标识流程开始边界。开始状态有且只有一个,就是说流程中不能有任何transition指向开始节点。
创建新的流程实例后,就有一个对应的Token(RootToken,根令牌)指向start-state。并且处于等待状态,需要给Token发信号(signal)才能使流程继续执行。
signal属性:
task-node的signal属性:指定完成任务实例对执行流程的影响(发信号)。
(指定哪个任务实例完成后会发信号离开节点
属性可取的值:
last:默认值,当最后一个实例被完成时候发信号。当在这个入口没有任务被生成时候,流程继续执行(发信号)
first:当第一个实例被完成时候发信号。当在这个入口没有任务被生成时候,执行继续.
never:不管任务实例是否完成,都不发信号。
nsynchronized:进入节点后就发信号,不管任务是否没建立或有没有完成。就是说任务的执行和流程执行互不影响。
last-wait:当进入节点时没有任务实例被创建时,就会一直处于等待状态,直到任务实例被创建;创建任务实例后,就是当所有的实例都执行完成后发信号(和last一样了)。
进后节点后
If( taskInstance的数量 = 0 ){
Wait,直到创建任务实例
}
Signal = “last” first-wait: 和last-wait一样理解。
decision 节点:
决策节点:用于计算流向。在decision中使用DecisionHandler。或使用一个表达式,也是返回要使用的transition的n
相关文档:
我们都知道java、c#、vb等语言都有sleep暂停的函数,而JavaScript脚本没有类似的功能。
下面就是我的实现的方法:
<mce:script type="text/javascript"><!--
function test()
{
var s="javascript--暂停函数";
setTimeout(
function(){
eval(sleep(test)); //执行return之后的代码,也就是&ldq ......
/**
* ### 真難的題目: 狗屁演算法 (測資很機車)
* 測驗結果: x.xx0 ms
* 測驗日期: 200y-mm-dd
* @author Raymond Wu (小璋丸)
*/
public class Main {
// 輸入緩衝區 (緩衝空 ......
因为即将要学习lucene,所以我提前预习了lucene的相关知识,
1,lucene是众多搜索引擎中的一个,就像持久层除了Hibernate外也有很多其它框架
一样。Lucene是一个开发工具包,我们可以使用他为应用程序添加全文检索的功能。
2,目前已经有很多应用程序的搜索功能是基于 Lucene 的,比如 Eclipse 的帮助系
统的搜索功能。 ......
1.创建线程
方式一:通过Thread的子类创建,此时需要在Thread类的子类中重写父类的public void run()方法
方式二:直接使用Thread类创建
  ......