la compréhension de l'ordre du jour du groupe de bave

J'ai essayé un échantillon de exemple pour voir comment l'ordre du jour les travaux de groupe. J'ai d'abord définir le focus de ksession à l'ordre du jour du groupe "ag1" et a tiré les règles.

package com.sample

import com.sample.DroolsTest.Message;

rule "Hello World"
  agenda-group "ag1"
    when
        m : Message( status == Message.HELLO, myMessage : message )
    then
        System.out.println( "Hello World" ); 
        m.setMessage( "Goodbye cruel world" );
        m.setStatus( Message.GOODBYE );
        update( m );
end

rule "Hello World 2"
  agenda-group "ag2"
    when
        m : Message( status == Message.HELLO, myMessage : message )
    then
        System.out.println( "Hello World 2" ); 
        m.setMessage( "Goodbye cruel world" );
        m.setStatus( Message.GOODBYE );
        update( m );
end

rule "GoodBye"
  agenda-group "ag1"
    when
        m : Message( status == Message.GOODBYE, myMessage : message )
    then
        System.out.println( "GoodBye" );
        drools.setFocus("ag2");
        System.out.println("comeon man");
        m.setStatus(com.sample.DroolsTest.Message.HELLO);
        update(m);
end

rule "GoodBye 2"
  agenda-group "ag2"
    when
        Message( status == Message.GOODBYE, myMessage : message )
    then
        System.out.println( "GoodBye 2" );
end

C'est le résultat que j'ai obtenu.

Hello World
GoodBye
comeon man
Hello World 2
GoodBye 2
GoodBye
comeon man
Hello World 2
GoodBye 2
GoodBye
comeon man
Hello World 2
GoodBye 2
GoodBye
comeon man
Hello World 2
GoodBye 2
GoodBye
comeon man
Hello World 2
...
...

J'ai pu comprendre que les 5 premières lignes de la sortie jusqu'à "au Revoir 2". Mais depuis, l'accent a été mis sur "ag2", comment se fait-il revenir à "ag1" de l'ordre du jour du groupe "au Revoir" à la règle et, par conséquent recursed.

Grâce.

OriginalL'auteur Manish Mulani | 2011-07-29