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