[rules-users] How to write a rule like this

赵侃侃 kevin223 at gmail.com
Mon Oct 25 08:44:41 EDT 2010


Hello,

I'm still quite new to the drools stuffs just getting the examples running.
I'm sorry if my question is too basic.
I have a system that will continuously to receive events sent from some
other system. Basically I have two types of events, eventA and eventB.
Both eventA and eventB have two properties, index and timestamp.

What I want is to capture a pattern to meet the following conditions

1. every 3 consecutive eventsA without any eventB in between having a same
index value ordering by their timestamp.

2. all events in a matched pattern will have the same value of property
index.

3. if a pattern is matched, any of the events in this pattern should not be
used again for a new matching.

there are some examples below, the number after a colon stands for the value
of its index number and assume those events are already ordered by their
timestamp.

eventB:2    eventA:1     eventA:1     eventA:1  eventB:3      --------- one
successful match, we have three eventA with same index value 1 in a row

eventB:2    eventA:1     eventA:1     eventB:1  eventA:1      --------- no
match because there's an eventB in between

eventB:2    eventA:1     eventA:1     eventB:2  eventA:1      --------- one
successful match because the in-between eventB has a different index value

eventA:1    eventA:1     eventA:1     eventA:1  eventA:1      --------- only
one match, because once matched, the events can not be used for a second
match again.


I just don't know how to write a rule like this. Is there anyone who can
shed some lights on?

Best Regards,
Kevin
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20101025/6e8a43cd/attachment.html 


More information about the rules-users mailing list