版本是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>