`

jBPM5.4的Timer Event没有循环执行的原因

阅读更多
版本是jbpm5.4

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

【原因】
(1)还没等Timer执行,进程就被dispose()方法关闭了,所以需要增加一个sleep()调用
StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
		
		// start a new process instance
        ksession.startProcess("com.sample.bpmn.TimerEvent");
        
        Thread.sleep(8000);
        ksession.dispose();


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

不是这种
<endEvent id="_3" name="EndProcess" >
        <terminateEventDefinition />
    </endEvent>
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics