rsundaar(a)aretus.biz wrote:
I have a need to "expire" some facts based on time. In other words, if
an event occurs some time and if sufficient time has gone by, the fact
should become inonsequential and be retracted. Here is my simple rule
to do this:
*rule*"Retract expired facts"
*dialect*"mvel"
// salience -5
*when*
e1 : Event (code == "LOGON", status == "ACTIVE")
*eval* ((getCurrentTimeStamp ()- e1.getLongTimeStamp()) > 100)
*then*
System.out.println( "Retracting expired event with Timestamp: " +
e1.longTimeStamp );
*retract* (e1);
*end*
This does not seem to work because the "eval" method does not evaluate
the rule every cycle. And, there is no other change to the fact
(event) to force the rule to re-evaluate the fact. Is there a way to
make "eval" in the LHS evaluate every cycle? Is there any other method?
Drools 5 supports an expiration time on an event. Beyond that you can
use duration rules.
Mark
I would greatly appreciate any ideas.
Thanks,
Ravi.
------------------------------------------------------------------------
_______________________________________________
rules-users mailing list
rules-users(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users