[rules-users] Trying to get Sliding Windows to work

ober0n lili339 at hotmail.com
Thu Mar 26 22:29:00 EDT 2009


Hi, I am having trouble understanding how to use sliding windows. Here are
the relevant snippets of code I added to the Hello World example under
Drools Fusion. I also added a timestamp to the Message class (with
corresponding get and set functions).

DroolsTest.java:

for(int i=0; i < 6; i++) {
	Thread.sleep(10000);
	currDate = new Date();
	Message message = new Message();
	message.setMessage("Hello World");
	message.setStatus(Message.HELLO);
	message.setTemporalStamp(currDate);
	ksession.insert(message);
}			
ksession.fireAllRules();

Sample.drl:

declare Message
    @role( event )
    @timestamp( temporalStamp )
end 
 
rule "Hello World"
	when
		m : Message( status == Message.HELLO, myMessage : message, ts :
temporalStamp ) over window:time( 15s )
	then
		System.out.println( myMessage + ": In the 1 minute window with timestamp:
" + ts );
End

My intention was to print out all messages with status = HELLO AND within 15
seconds of inserting the message into the session.
I thought what would happen is 2 out of the 6 Messages I sent would be
printed out. But, instead, all 6 messages I sent are printed. 

What am I doing wrong?

-- 
View this message in context: http://www.nabble.com/Trying-to-get-Sliding-Windows-to-work-tp22735051p22735051.html
Sent from the drools - user mailing list archive at Nabble.com.




More information about the rules-users mailing list