<div dir="ltr">Hi, everyone,<br><br>  I just find that, insert an event into a entry point or insert it directly into session will cause different behaviour, is this expected?<br><br>  Here is the details:<br><br>1. drools run in stream mode and use pseudo clock<br>
2. insert a MyEvent into entry-point &quot;stream&quot; and a MyEvent into session directly every 1 seconds, start at 500ms.<br>3. call fireAllRules every 1seconds, at second 1, second 2, etc<br>4. drools version 5.5.0.Final<br>
<br>Below is the rule:<br><br>package me.ycy.drools.test1.data<br><br>import java.util.List<br><br>declare MyEvent<br>    @role(event)<br>    @timestamp(timestamp)<br>end<br><br>rule &quot;over 0.3s&quot;<br>    when<br>        $list: List() from collect(MyEvent() over window:time(300ms))<br>
    then<br>        System.out.println(&quot;Rule: with in 0.3s --&gt; &quot; + $list);<br>end<br><br>rule &quot;over 1s&quot;<br>    when<br>        $list: List() from collect(MyEvent() over window:time(1s))<br>    then<br>
        System.out.println(&quot;Rule: with in 1s --&gt; &quot; + $list);<br>end<br><br>rule &quot;over 3s&quot;<br>    when<br>        $list: List() from collect(MyEvent() over window:time(3s))<br>    then<br>        System.out.println(&quot;Rule: with in 3s --&gt; &quot; + $list);<br>
end<br><br>rule &quot;over 0.3s ep&quot;<br>    when<br>        $list: List() from collect(MyEvent() over window:time(300ms) from entry-point &quot;stream&quot;)<br>    then<br>        System.out.println(&quot;Rule: with in 0.3s use ep --&gt; &quot; + $list);<br>
end<br><br>rule &quot;over 1s ep&quot;<br>    when<br>        $list: List() from collect(MyEvent() over window:time(1s) from entry-point &quot;stream&quot;)<br>    then<br>        System.out.println(&quot;Rule: with in 1s use ep --&gt; &quot; + $list);<br>
end<br><br>rule &quot;over 3s ep&quot;<br>    when<br>        $list: List() from collect(MyEvent() over window:time(3s) from entry-point &quot;stream&quot;)<br>    then<br>        System.out.println(&quot;Rule: with in 3s use ep --&gt; &quot; + $list);<br>
end<br><br>// ------- end of rule <br><br>Finally, the output(just run 5 seconds)<br><br>-------------- fire at 1000 ---------------<br>Rule: with in 3s use ep --&gt; [MyEvent(event 0,500)]<br>Rule: with in 1s use ep --&gt; [MyEvent(event 0,500)]<br>
Rule: with in 0.3s use ep --&gt; [MyEvent(event 0,500)]<br>Rule: with in 3s --&gt; [MyEvent(event 0,500)]<br>Rule: with in 1s --&gt; [MyEvent(event 0,500)]<br>Rule: with in 0.3s --&gt; []<br>-------------- fire at 2000 ---------------<br>
Rule: with in 3s use ep --&gt; [MyEvent(event 0,500), MyEvent(event 1,1500)]<br>Rule: with in 1s use ep --&gt; [MyEvent(event 0,500), MyEvent(event 1,1500)]<br>Rule: with in 0.3s use ep --&gt; [MyEvent(event 0,500), MyEvent(event 1,1500)]<br>
Rule: with in 3s --&gt; [MyEvent(event 0,500), MyEvent(event 1,1500)]<br>Rule: with in 1s --&gt; [MyEvent(event 1,1500)]<br>Rule: with in 0.3s --&gt; []<br>-------------- fire at 3000 ---------------<br>Rule: with in 3s use ep --&gt; [MyEvent(event 0,500), MyEvent(event 1,1500), MyEvent(event 2,2500)]<br>
Rule: with in 1s use ep --&gt; [MyEvent(event 0,500), MyEvent(event 1,1500), MyEvent(event 2,2500)]<br>Rule: with in 0.3s use ep --&gt; [MyEvent(event 0,500), MyEvent(event 1,1500), MyEvent(event 2,2500)]<br>Rule: with in 3s --&gt; [MyEvent(event 0,500), MyEvent(event 1,1500), MyEvent(event 2,2500)]<br>
Rule: with in 1s --&gt; [MyEvent(event 2,2500)]<br>Rule: with in 0.3s --&gt; []<br>-------------- fire at 4000 ---------------<br>Rule: with in 3s use ep --&gt; [MyEvent(event 1,1500), MyEvent(event 2,2500), MyEvent(event 3,3500)]<br>
Rule: with in 1s use ep --&gt; [MyEvent(event 1,1500), MyEvent(event 2,2500), MyEvent(event 3,3500)]<br>Rule: with in 0.3s use ep --&gt; [MyEvent(event 1,1500), MyEvent(event 2,2500), MyEvent(event 3,3500)]<br>Rule: with in 3s --&gt; [MyEvent(event 1,1500), MyEvent(event 2,2500), MyEvent(event 3,3500)]<br>
Rule: with in 1s --&gt; [MyEvent(event 3,3500)]<br>Rule: with in 0.3s --&gt; []<br>-------------- fire at 5000 ---------------<br>Rule: with in 3s use ep --&gt; [MyEvent(event 2,2500), MyEvent(event 3,3500), MyEvent(event 4,4500)]<br>
Rule: with in 1s use ep --&gt; [MyEvent(event 2,2500), MyEvent(event 3,3500), MyEvent(event 4,4500)]<br>Rule: with in 0.3s use ep --&gt; [MyEvent(event 2,2500), MyEvent(event 3,3500), MyEvent(event 4,4500)]<br>Rule: with in 3s --&gt; [MyEvent(event 2,2500), MyEvent(event 3,3500), MyEvent(event 4,4500)]<br>
Rule: with in 1s --&gt; [MyEvent(event 4,4500)]<br>Rule: with in 0.3s --&gt; []<br><br><br><br>-- <br>Best regards,<br>Changyuan
</div>