[rules-users] A question about use sliding window with and without entry point

Yu Changyuan reivzy at gmail.com
Fri Oct 4 02:11:37 EDT 2013


Hi, everyone,

  I just find that, insert an event into a entry point or insert it
directly into session will cause different behaviour, is this expected?

  Here is the details:

1. drools run in stream mode and use pseudo clock
2. insert a MyEvent into entry-point "stream" and a MyEvent into session
directly every 1 seconds, start at 500ms.
3. call fireAllRules every 1seconds, at second 1, second 2, etc
4. drools version 5.5.0.Final

Below is the rule:

package me.ycy.drools.test1.data

import java.util.List

declare MyEvent
    @role(event)
    @timestamp(timestamp)
end

rule "over 0.3s"
    when
        $list: List() from collect(MyEvent() over window:time(300ms))
    then
        System.out.println("Rule: with in 0.3s --> " + $list);
end

rule "over 1s"
    when
        $list: List() from collect(MyEvent() over window:time(1s))
    then
        System.out.println("Rule: with in 1s --> " + $list);
end

rule "over 3s"
    when
        $list: List() from collect(MyEvent() over window:time(3s))
    then
        System.out.println("Rule: with in 3s --> " + $list);
end

rule "over 0.3s ep"
    when
        $list: List() from collect(MyEvent() over window:time(300ms) from
entry-point "stream")
    then
        System.out.println("Rule: with in 0.3s use ep --> " + $list);
end

rule "over 1s ep"
    when
        $list: List() from collect(MyEvent() over window:time(1s) from
entry-point "stream")
    then
        System.out.println("Rule: with in 1s use ep --> " + $list);
end

rule "over 3s ep"
    when
        $list: List() from collect(MyEvent() over window:time(3s) from
entry-point "stream")
    then
        System.out.println("Rule: with in 3s use ep --> " + $list);
end

// ------- end of rule

Finally, the output(just run 5 seconds)

-------------- fire at 1000 ---------------
Rule: with in 3s use ep --> [MyEvent(event 0,500)]
Rule: with in 1s use ep --> [MyEvent(event 0,500)]
Rule: with in 0.3s use ep --> [MyEvent(event 0,500)]
Rule: with in 3s --> [MyEvent(event 0,500)]
Rule: with in 1s --> [MyEvent(event 0,500)]
Rule: with in 0.3s --> []
-------------- fire at 2000 ---------------
Rule: with in 3s use ep --> [MyEvent(event 0,500), MyEvent(event 1,1500)]
Rule: with in 1s use ep --> [MyEvent(event 0,500), MyEvent(event 1,1500)]
Rule: with in 0.3s use ep --> [MyEvent(event 0,500), MyEvent(event 1,1500)]
Rule: with in 3s --> [MyEvent(event 0,500), MyEvent(event 1,1500)]
Rule: with in 1s --> [MyEvent(event 1,1500)]
Rule: with in 0.3s --> []
-------------- fire at 3000 ---------------
Rule: with in 3s use ep --> [MyEvent(event 0,500), MyEvent(event 1,1500),
MyEvent(event 2,2500)]
Rule: with in 1s use ep --> [MyEvent(event 0,500), MyEvent(event 1,1500),
MyEvent(event 2,2500)]
Rule: with in 0.3s use ep --> [MyEvent(event 0,500), MyEvent(event 1,1500),
MyEvent(event 2,2500)]
Rule: with in 3s --> [MyEvent(event 0,500), MyEvent(event 1,1500),
MyEvent(event 2,2500)]
Rule: with in 1s --> [MyEvent(event 2,2500)]
Rule: with in 0.3s --> []
-------------- fire at 4000 ---------------
Rule: with in 3s use ep --> [MyEvent(event 1,1500), MyEvent(event 2,2500),
MyEvent(event 3,3500)]
Rule: with in 1s use ep --> [MyEvent(event 1,1500), MyEvent(event 2,2500),
MyEvent(event 3,3500)]
Rule: with in 0.3s use ep --> [MyEvent(event 1,1500), MyEvent(event
2,2500), MyEvent(event 3,3500)]
Rule: with in 3s --> [MyEvent(event 1,1500), MyEvent(event 2,2500),
MyEvent(event 3,3500)]
Rule: with in 1s --> [MyEvent(event 3,3500)]
Rule: with in 0.3s --> []
-------------- fire at 5000 ---------------
Rule: with in 3s use ep --> [MyEvent(event 2,2500), MyEvent(event 3,3500),
MyEvent(event 4,4500)]
Rule: with in 1s use ep --> [MyEvent(event 2,2500), MyEvent(event 3,3500),
MyEvent(event 4,4500)]
Rule: with in 0.3s use ep --> [MyEvent(event 2,2500), MyEvent(event
3,3500), MyEvent(event 4,4500)]
Rule: with in 3s --> [MyEvent(event 2,2500), MyEvent(event 3,3500),
MyEvent(event 4,4500)]
Rule: with in 1s --> [MyEvent(event 4,4500)]
Rule: with in 0.3s --> []



-- 
Best regards,
Changyuan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20131004/c2ceb057/attachment.html 


More information about the rules-users mailing list