[rules-users] How to batch high freq events before sending to RHS

Wolfgang Laun wolfgang.laun at gmail.com
Wed Jul 4 01:32:25 EDT 2012


On 04/07/2012, Ladd <ladd at codemettle.com> wrote:
> Thanks for the quick reply W!!  I think that was the nudge I needed.  It
> seems like as long as I keep my timer interval shorter than the sliding
> window interval this should work.

I'm sure you realize that this is bound to catch events more than once
unless you mark or retract them.

>  This rule passed my simple tests:
> rule "Grouped Events"
>     timer( int: 500ms )

Shouldn't you use a repeat interval?

> when
>     $list : List() from collect ( MyEvent() over window:time(2s) )
> then
>     for( Object myEvent : $list ) {
>         System.out.println( System.currentTimeMillis() + "ms: event group contains: " + myEvent.toString() );
>     }
> end

> Please let me know if there's a danger with this approach or if there's a
> better way to do it.

It's difficult to propose anything else since I don't know the reason
for dealing with events in batches.

As an alternative to the collect, consider a simple rule that just
adds the MyEvent to the end of a list (a singleton fact), and let the
"Grouped Events" rule with its interval timer (using 2s) look at what
is there.

-W

>
> And thanks again!
>
> - Ladd
>
> --
> View this message in context:
> http://drools.46999.n3.nabble.com/How-to-batch-high-freq-events-before-sending-to-RHS-tp4018447p4018449.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
>


More information about the rules-users mailing list