[rules-users] Implementing Timers With Drools Persistence Enabled

Mauricio Salatino salaboy at gmail.com
Fri Jun 25 19:21:10 EDT 2010


Cool, I will try to test it.

On Fri, Jun 25, 2010 at 8:17 PM, nanic23 <nanic23 at hotmail.com> wrote:

>
> Hi salaboy,
>
> Here is an image of my flow:
>
>
> http://drools-java-rules-engine.46999.n3.nabble.com/file/n923330/SnapShot.jpg
>
> Here is the flow definition:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <process xmlns="http://drools.org/drools-5.0/process"
>         xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
>         xs:schemaLocation="http://drools.org/drools-5.0/process
> drools-processes-5.0.xsd<http://drools.org/drools-5.0/process%0Adrools-processes-5.0.xsd>
> "
>         type="RuleFlow" name="simple-embeded-timer-with-persistence"
> id="simple-embeded-timer-with-persistence" package-name="com.flow" >
>
>  <header>
>  </header>
>
>  <nodes>
>    <start id="1" name="Start" x="16" y="16" width="48" height="48" />
>    <workItem id="2" name="Suspend With Timer" x="96" y="16" width="144"
> height="48" >
>      <work name="doNothingHandler" >
>      </work>
>      <timers>
>        <timer id="1" delay="500" period="1000" >
>        <action type="expression" dialect="mvel" >System.out.println("****
> Timer Triggered ****");</action>
>        </timer>
>      </timers>
>    </workItem>
>    <actionNode id="3" name="Print Out" x="272" y="20" width="80"
> height="40" >
>        <action type="expression" dialect="mvel" >System.out.println("****
> WorkItem Completed!!! Finishing Flow ****");</action>
>    </actionNode>
>    <end id="4" name="End" x="384" y="20" width="80" height="40" />
>  </nodes>
>
>  <connections>
>    <connection from="1" to="2" />
>    <connection from="2" to="3" />
>    <connection from="3" to="4" />
>  </connections>
>
> </process>
>
> Here is the test code:
>
>        @Test
>        public void shouldStartFlowAndSuspend() {
>                /*
>                 * Persistence enabled - Timer does NOT work!!!
>                 */
>                ksession =
> JPAKnowledgeService.newStatefulKnowledgeSession(kbase, null,
> droolsEnvironment);
>
>                /*
>                 * Persistence disabled - Timer DOES work!!!
>                 */
>                //ksession = kbase.newStatefulKnowledgeSession();
>
>                sessionId = ksession.getId();
>
>                ksession.getWorkItemManager()
>                                .registerWorkItemHandler("doNothingHandler",
> new
> DoNothingWorkItemHandler());
>
>
>  ksession.startProcess("simple-embeded-timer-with-persistence", null);
>
>                // start timer thread
>                 new Thread() {
>                        @Override
>                        public void run() {
>                                 System.out.println("**** Timer thread
> started ****");
>                                ksession.fireUntilHalt();
>                }
>                }.start();
>
>                // Allow timer to run for 10s
>            try {
>                Thread.sleep(10000);
>            } catch (InterruptedException e) {
>                e.printStackTrace();
>            }
>        }
>
>        @Test //NOTE: comment out when not using persistence.
>        public void shouldResumeFlowAndComplete() {
>                ksession =
>
>  JPAKnowledgeService.loadStatefulKnowledgeSession(sessionId, kbase, null,
> droolsEnvironment);
>
>                ksession.getWorkItemManager()
>                        .registerWorkItemHandler("doNothingHandler", new
> DoNothingWorkItemHandler());
>
>                ksession.getWorkItemManager().completeWorkItem(1, null);
>        }
>
> NOTE: when running WITHOUT persistence the second test method for obvious
> reasons will fail so it needs to be commented out.
>
> Persistence is set up correctly, I've checked the database and everything
> is
> being persisted. I can as well resume and complete with no problems BUT the
> timer is NOT working.
>
> Let me know if this is enough and/or if you have any question.
>
> Thanks,
>
> Nick.
>
> --
> View this message in context:
> http://drools-java-rules-engine.46999.n3.nabble.com/Implementing-Timers-With-Drools-Persistence-Enabled-tp923142p923330.html
> Sent from the Drools - User mailing list archive at Nabble.com.
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>



-- 
- CTO @ http://www.plugtree.com
- MyJourney @ http://salaboy.wordpress.com
- Co-Founder @ http://www.jbug.com.ar

- Salatino "Salaboy" Mauricio -
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20100625/761f815b/attachment.html 


More information about the rules-users mailing list