I guess a folow up would be, would it be possible to terminate a long lived
event that was generated with the arrival of another event?
Thanks,
Chris
_____
From: rules-users-bounces(a)lists.jboss.org
[mailto:rules-users-bounces@lists.jboss.org] On Behalf Of Chris Richmond
Sent: Friday, September 25, 2009 10:18 AM
To: 'Rules Users List'
Subject: [rules-users] Event streams
It is my understanding that an event will be detected as soon as it is
inserted into a stream.meaning that I don't have to explicitly call
fireRules in order to evaluate events, but them will be evaluated as soon as
I insert them into a stream, so a rule like the one below would fire as soon
as I perform datastream.insert(myDataStreamObject) without having to
explicitly fire rules? Is that behavior correct/intended?
Declare MyDataStreamObject
@role(event)
End
//rule "detect a stream data object"
When
MyDataStreamObject() from entry point "DATA"
Then
System.err.println("data object inserted");
end
Also, could I generate another event(long lived.say it lives 1 minute) so
that if the above event detector fired and some condition was met, I could
have it fire some event within the rule engine? Something like the
following:
//rule "detect a stream data object"
When
MyDataStreamObject($val: fieldValue < 20) from entry point
"DATA"
Then
//I want to raise an event purely from this rule that will live
for one minute or so, that I can use to further refine this rule, to make
sure this rule makes
//sure that the MyDataStreamObject event "NOT INCLUDED" within
the generated longer lived event lifetime. Efffectively preventing me from
firing this if one of my
//generated events is still living
end
Thanks,
Chris