I've declared an @expires of 30s for both events. However, my problem is that within a 30 second window it doesn't seem possible to ascertain whether both of the events occur simultaneously. I could change the @expires to 10 seconds for the above rule, which would make it work. However, I would like to be to perform more complicated matches, e.g. matching sequences of events which occur after another.
$f : Double(doubleValue > 1.0) from accumulate( Event($v : value, name == "Foo") over window:time ( 10s ) from entry-point EntryPoint, average($v)) // following event must start immediately _after_ the above. $b : Double(doubleValue < 1.0) from accumulate( Event($v : value, name == "Bar") over window:time ( 20s ) from entry-point EntryPoint, average($v)) Any suggestions how I can achieve this kind of functionality? Many Thanks, Paul On Sun, Jan 17, 2010 at 4:19 AM, Greg Barton <greg_bar...@yahoo.com> wrote: > Do your Foo and Bar events declare an @expires value? If their expiration > is less than 10 seconds then the rule below won't work properly. (And by > default an event's expiration is 0, which makes the rule below go wacky if > @expires hasn't been declared...) If the @expires is 10s or greater for > both events it should work. > > --- On Thu, 1/14/10, Paul R. <reverselo...@gmail.com> wrote: > > > From: Paul R. <reverselo...@gmail.com> > > Subject: [rules-users] Accumulate + Temporal Operators > > To: rules-users@lists.jboss.org > > Date: Thursday, January 14, 2010, 1:56 PM > > Hi, > > > > I'm using accumulate with sliding windows to verify > > that certain event conditions are present for a specified > > period of time, which works fine, however > > I need to verify that both conditions are present at the > > same time, i.e Foo.value > 1 for 10 seconds and Bar.value > > < 1 for 10 seconds. There doesn't > > > > appear to be an obvious way to use the temporal operators > > in this situation. Can anybody offer any suggestions? > > > > rule test no-loop true > > when > > $f : Double(doubleValue > 1.0) from > > accumulate( Foo($v : value) over window:time ( 10s ) > > > > from entry-point EntryPoint, > > min($v)) > > $b : Double(doubleValue < 1.0) from > > accumulate( Bar($v : value) over window:time ( 10s ) > > from entry-point EntryPoint, > > max($v)) > > then > > > > // ... > > end > > > > Any help greatly appreciated. > > > > Thanks, > > > > Paul > > > > > > -----Inline Attachment Follows----- > > > > _______________________________________________ > > rules-users mailing list > > rules-users@lists.jboss.org > > https://lists.jboss.org/mailman/listinfo/rules-users > > > > > > > _______________________________________________ > rules-users mailing list > rules-users@lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users >
_______________________________________________ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users