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>  


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章