jBPM5点4的TimerEvent没有循环执行的原因

版本是jbpm5.4

【问题】
我在Eclipse中创建了一个.bpmn流程文件,里面使用了一个Timer Event,后面跟了一个Script Task打印一句话,但是发现每次只执行一遍,没有循环反复执行。

【原因】
(1)还没等Timer执行,进程就被dispose()方法关闭了,所以需要增加一个sleep()调用


  1. StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();  

  2. // start a new process instance

  3.        ksession.startProcess("com.sample.bpmn.TimerEvent");  

  4.        Thread.sleep(8000);  

  5.        ksession.dispose();  



(2).bpmn流程文件的结束事件的Terminate属性设置成true了,应该设置成false。因为如果设置成true,第一遍执行到结束事件时进程就关掉了,所以就没发让Timer循环执行了。
所以应该 使用这种

  1. <endEvent id="_2" name="End" />  


不是这种

  1. <endEvent id="_3" name="EndProcess" >  

  2.        <terminateEventDefinition />  

  3.    </endEvent>  


你可能感兴趣的:(jbpm)