나는 의제 그룹이 어떻게 작동하는지보기 위해 샘플 예제를 시도했다. 처음에 ksession의 초점을 agenda-group "ag1"에 설정하고 규칙을 실행했습니다.슬럼프에서 의제 그룹 이해
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
이것은 출력물입니다.
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
...
...
출력의 처음 5 줄을 "GoodBye 2"까지 이해할 수있었습니다. 그러나 초점이 "ag2"로 설정 되었기 때문에 어떻게 ag1a 그룹의 "GoodBye"규칙으로 돌아가 다시 돌아 왔는가?
감사합니다.
이 감사 로그를 활성화하는 방법은 무엇입니까? –
session.addEventListener (new DebugAgendaEventListener())를 살펴보십시오. – Topera