[rules-users] Problem with time sliding windows and pseudo clock in Drools Fusion 5.5.0

Martín Zúñiga martinzp at gmail.com
Mon Dec 9 07:35:48 EST 2013


Thank you Matteo for your answer.

I will run my code with the audit log activated and see if i can find
anything.

Kind regards


On Sun, Dec 8, 2013 at 5:00 PM, Matteo Mortari <matteo.mortari at gmail.com>wrote:

> Ciao, not really sure where is your problem exactly, but as I use often
> similar use-case of yours, thought worthy to share what I usually find
> useful:
>
> 1. check STREAM mode is activated
> 2. check in the .drl is clearly defined what is a Fact, and what is an
> Event. In your case I would check TemperatureRead is declared as Event?
> 3. activate Audit log / runtime logger.
>
> I find especially useful point #3 because you will see, as the session
> clock advances, what is still in working memory and when rule is activated
> you will see against which Event/Facts.
>
> Hope this is helpful
> Ciao
> MM
>
>
> On Fri, Dec 6, 2013 at 11:54 PM, martinzp <martinzp at gmail.com> wrote:
>
>> Hi, i am new in the forum, and a beginner user of Drools so forgive me if
>> my
>> question isn't quite good.
>>
>> I want to test the "over window:time" operand.
>>
>> In order to do that i use the pseudo clock, but i have noticed that it
>> doesn't behave as i would expect.
>>
>> The behaviour i think i observed, is that the rule is using the real clock
>> instead of the pseudo clock.
>>
>> *Here is my drl file:*
>>
>> rule "Fire Detected"
>> when
>>     c : Number(intValue >= 3) from accumulate (
>>         $tr : TemperatureRead(read > 40)
>>             over window:time ( 1s )
>>             from entry-point entryone ,
>>             count ($tr)
>>              )
>> then
>>     System.out.println("Fire Detected!");
>> end
>>
>>
>>
>> *and here is the portion of my main file that inserts the events:*
>>
>> TemperatureRead temp1 = new TemperatureRead(33.2);
>> TemperatureRead temp2 = new TemperatureRead(38.7);
>> TemperatureRead temp3 = new TemperatureRead(39.5);
>> TemperatureRead temp4 = new TemperatureRead(42.5);
>> TemperatureRead temp5 = new TemperatureRead(43.1);
>> TemperatureRead temp6 = new TemperatureRead(47.8);
>>
>> SessionPseudoClock clock = ksession.getSessionClock();
>>
>>         entryPoint1.insert(temp1);
>>
>>         clock.advanceTime((new Date()).getTime(), TimeUnit.MILLISECONDS);
>>
>>         fireRules();
>>
>>         entryPoint1.insert(temp2);
>>
>>         clock.advanceTime(1, TimeUnit.SECONDS);
>>
>>         fireRules();
>>
>>         entryPoint1.insert(temp3);
>>
>>         clock.advanceTime(1, TimeUnit.SECONDS);
>>
>>         fireRules();
>>
>>         entryPoint1.insert(temp4);
>>
>>         clock.advanceTime(1, TimeUnit.SECONDS);
>>
>>         fireRules();
>>
>>         entryPoint1.insert(temp5);
>>
>>         clock.advanceTime(1, TimeUnit.SECONDS);
>>
>>         fireRules();
>>
>>         entryPoint1.insert(temp6);
>>
>>         fireRules();
>>
>>
>>
>>
>>
>> In my opinion, the rule shouldn't be fired, because as i am (supposedly)
>> using the pseudo clock, the events shouldn't fall into the same sliding
>> window (1 second.)
>>
>> In general, the rule should fire when it detects 3 or more temperature
>> reads
>> with a temperature over 40.
>>
>> Any idea about what i might be doing wrong?
>>
>> Thanks in advance!
>>
>>
>>
>>
>>
>>
>>
>> --
>> View this message in context:
>> http://drools.46999.n3.nabble.com/Problem-with-time-sliding-windows-and-pseudo-clock-in-Drools-Fusion-5-5-0-tp4027137.html
>> Sent from the Drools: User forum mailing list archive at Nabble.com.
>> _______________________________________________
>> rules-users mailing list
>> rules-users at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/rules-users
>>
>
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20131209/96c4f02b/attachment-0001.html 


More information about the rules-users mailing list