<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html;charset=UTF-8" http-equiv="Content-Type">
<title></title>
</head>
<body bgcolor="#ffffff" text="#000000">
<a class="moz-txt-link-abbreviated" href="mailto:rsundaar@aretus.biz">rsundaar@aretus.biz</a> wrote:
<blockquote
cite="mid:20090430033824.0fcc8502db30fb9baeee71277b2015cf.6955ed15c1.wbe@email.secureserver.net"
type="cite"><span
style="font-family: Verdana; color: rgb(0, 0, 0); font-size: 10pt;">
<div> </div>
<div>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:</div>
<div> </div>
<font size="2"></font>
<div align="left"><font size="2"><b><font color="#960000" size="2"><font
color="#960000" size="2">rule</font></font></b><font color="#008000"
size="2"><font color="#008000" size="2">"Retract expired facts"</font></font></font></div>
<div align="left"><font size="2"><b><font color="#960000" size="2"><font
color="#960000" size="2">dialect</font></font></b><font color="#008000"
size="2"><font color="#008000" size="2">"mvel"</font></font></font></div>
<div align="left"><font size="2"><font color="#808000" size="2"><font
color="#808000" size="2">// salience -5</font></font></font></div>
<div align="left"><font size="2"><b><font color="#960000" size="2"><font
color="#960000" size="2">when</font></font></b></font></div>
<div align="left"><font size="2"><font size="2">e1 : Event (code == </font><font
color="#008000" size="2"><font color="#008000" size="2">"LOGON"</font></font><font
size="2">, status == </font><font color="#008000" size="2"><font
color="#008000" size="2">"ACTIVE"</font></font><font size="2">)</font></font></div>
<div align="left"><font size="2"><b><font color="#960000" size="2"><font
color="#960000" size="2">eval</font></font></b><font size="2">
((getCurrentTimeStamp ()- e1.getLongTimeStamp()) > </font><font
size="2">100)</font></font></div>
<div align="left"><font size="2"><b><font color="#960000" size="2"><font
color="#960000" size="2">then</font></font></b></font></div>
<div align="left"><font size="2"><font size="2">System.out.println( </font><font
color="#008000" size="2"><font color="#008000" size="2">"Retracting
expired event with Timestamp: "</font></font><font size="2"> +
e1.longTimeStamp ); </font></font></div>
<div align="left"><font size="2"><b><font color="#960000" size="2"><font
color="#960000" size="2">retract</font></font></b><font size="2"> (e1);</font></font></div>
<div align="left">
<div><font size="2"><font color="#960000" size="2"><font
color="#960000" size="2"><strong>end</strong></font></font></font></div>
<div><font size="2"><font color="#960000" size="2"><font
color="#960000" size="2"> </font></font></font></div>
<div><font size="2"><font color="#960000" size="2"><font
color="#960000" size="2"><font color="#000000">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?</font></font></font></font></div>
</div>
</span></blockquote>
Drools 5 supports an expiration time on an event. Beyond that you can
use duration rules.<br>
<br>
Mark<br>
<blockquote
cite="mid:20090430033824.0fcc8502db30fb9baeee71277b2015cf.6955ed15c1.wbe@email.secureserver.net"
type="cite"><span
style="font-family: Verdana; color: rgb(0, 0, 0); font-size: 10pt;">
<div align="left">
<div><font size="2"><font color="#960000" size="2"><font
color="#960000" size="2"> </font></font></font></div>
<div><font size="2"><font color="#960000" size="2"><font
color="#960000" size="2"><font color="#000000">I would greatly
appreciate any ideas.</font></font></font></font></div>
<div><font size="2"><font color="#960000" size="2"><font
color="#960000" size="2"> </font></font></font></div>
<div><font size="2"><font color="#960000" size="2"><font
color="#960000" size="2"><font color="#000000">Thanks,</font></font></font></font></div>
<p><font size="2"><font color="#960000" size="2"><font color="#960000"
size="2"><font color="#000000">Ravi.</font></font></font></font></p>
</div>
</span>
<pre wrap="">
<hr size="4" width="90%">
_______________________________________________
rules-users mailing list
<a class="moz-txt-link-abbreviated" href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a>
<a class="moz-txt-link-freetext" href="https://lists.jboss.org/mailman/listinfo/rules-users">https://lists.jboss.org/mailman/listinfo/rules-users</a>
</pre>
</blockquote>
<br>
</body>
</html>