<div dir="ltr"><div>Basically agreeing with Sotty, I'd like you to warn you about the danger you're running into if you insert those Event facts without taking any action in order to get rid of them after 1 minute.<br>
</div>-W<br></div><div class="gmail_extra"><br><br><div class="gmail_quote">On 11 March 2014 19:50, Davide Sottara <span dir="ltr"><<a href="mailto:dsotty@gmail.com" target="_blank">dsotty@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
<div>No, the combination of accumulate/count
+ over should be fine (I didn't check though).<br>
The problem is that you are simply creating the Events, but not
inserting them in the wm.<br>
You need to add insert(event) to your rules<div><div class="h5"><br>
<br>
<br>
On 03/11/2014 07:39 PM, grules wrote:<br>
</div></div></div>
<blockquote type="cite"><div><div class="h5">
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">I
think you have to follow the structure of accumulate
function. Like
<u></u><u></u></span></p>
<p class="MsoNormal" style="line-height:13.65pt;background:whitesmoke;vertical-align:baseline"><b><i><span><result pattern></span></i></b><span> from accumulate(
</span><b><i><span><source pattern></span></i></b><span>,<u></u><u></u></span></p>
<p class="MsoNormal" style="line-height:13.65pt;background:whitesmoke;vertical-align:baseline"><span>
init(
</span><b><i><span><init code></span></i></b><span> ),<u></u><u></u></span></p>
<p class="MsoNormal" style="line-height:13.65pt;background:whitesmoke;vertical-align:baseline"><span>
action(
</span><b><i><span><action code></span></i></b><span> ),<u></u><u></u></span></p>
<p class="MsoNormal" style="line-height:13.65pt;background:whitesmoke;vertical-align:baseline"><span>
reverse(
</span><b><i><span><reverse code></span></i></b><span> ), (optional)<u></u><u></u></span></p>
<p class="MsoNormal" style="line-height:13.65pt;background:whitesmoke;vertical-align:baseline"><span>
result(
</span><b><i><span><result expression></span></i></b><span> ) )<u></u><u></u></span></p>
<p class="MsoNormal" style="line-height:13.65pt;background:whitesmoke;vertical-align:baseline"><span><u></u> <u></u></span></p>
<p class="MsoNormal" style="line-height:13.65pt;background:whitesmoke;vertical-align:baseline"><span>examples are:<u></u><u></u></span></p>
<p class="MsoNormal" style="line-height:13.65pt;background:whitesmoke;vertical-align:baseline"><span>when<u></u><u></u></span></p>
<p class="MsoNormal" style="line-height:13.65pt;background:whitesmoke;vertical-align:baseline"><span> $order : Order()<u></u><u></u></span></p>
<p class="MsoNormal" style="line-height:13.65pt;background:whitesmoke;vertical-align:baseline"><span> $total : Number( doubleValue
> 100 )
<u></u><u></u></span></p>
<p class="MsoNormal" style="line-height:13.65pt;background:whitesmoke;vertical-align:baseline"><span> from accumulate(
OrderItem( order == $order, $value : value ),<u></u><u></u></span></p>
<p class="MsoNormal" style="line-height:13.65pt;background:whitesmoke;vertical-align:baseline"><span> init(
double total = 0; ),<u></u><u></u></span></p>
<p class="MsoNormal" style="line-height:13.65pt;background:whitesmoke;vertical-align:baseline"><span>
action( total += $value; ),<u></u><u></u></span></p>
<p class="MsoNormal" style="line-height:13.65pt;background:whitesmoke;vertical-align:baseline"><span>
result( total ) )<u></u><u></u></span></p>
<p class="MsoNormal" style="line-height:13.65pt;background:whitesmoke;vertical-align:baseline"><span>then<u></u><u></u></span></p>
<p class="MsoNormal" style="line-height:13.65pt;background:whitesmoke;vertical-align:baseline"><span> # apply discount to $order<u></u><u></u></span></p>
<p class="MsoNormal" style="line-height:13.65pt;background:whitesmoke;vertical-align:baseline"><span>end<u></u><u></u></span></p>
<p class="MsoNormal" style="line-height:13.65pt;background:whitesmoke;vertical-align:baseline"><span><u></u> <u></u></span></p>
<p class="MsoNormal" style="line-height:13.65pt;background:whitesmoke;vertical-align:baseline"><span>As I understand from your code,
<u></u><u></u></span></p>
<p style="line-height:13.65pt;background:whitesmoke;vertical-align:baseline">
<span><span>1.<span style="font:7.0pt "Times New Roman"">
</span></span></span><span>Make List for Event class, because
accumulate will loop through the elements of
List<Event><u></u><u></u></span></p>
<p style="line-height:13.65pt;background:whitesmoke;vertical-align:baseline">
<span><span>2.<span style="font:7.0pt "Times New Roman"">
</span></span></span><span>Init (write action codes, i.e.
initialize value so you will find how many time it got
looped)<u></u><u></u></span></p>
<p style="line-height:13.65pt;background:whitesmoke;vertical-align:baseline">
<span><span>3.<span style="font:7.0pt "Times New Roman"">
</span></span></span><span>Write code inside the block of
action(//code here) and
<u></u><u></u></span></p>
<p style="line-height:13.65pt;background:whitesmoke;vertical-align:baseline">
<span><span>4.<span style="font:7.0pt "Times New Roman"">
</span></span></span><span>Update it in result block i.e.
result(//update here);<u></u><u></u></span></p>
<p class="MsoNormal" style="line-height:13.65pt;background:whitesmoke;vertical-align:baseline"><span><u></u> <u></u></span></p>
<p class="MsoNormal" style="line-height:13.65pt;background:whitesmoke;vertical-align:baseline"><span>Being said, follow the structure 1)
init, 2) action, 3) result as above..<u></u><u></u></span></p>
<p class="MsoNormal" style="line-height:13.65pt;background:whitesmoke;vertical-align:baseline"><span><u></u> <u></u></span></p>
<p class="MsoNormal" style="line-height:13.65pt;background:whitesmoke;vertical-align:baseline"><span><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">From:</span></b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">
Sandhya Sree [via Drools] [<a href="mailto:ml-node+" target="_blank">mailto:ml-node+</a><a href="http://user/SendEmail.jtp?type=node&node=4028640&i=0" rel="nofollow" link="external" target="_blank">[hidden
email]</a>]
<br>
<b>Sent:</b> Tuesday, March 11, 2014 1:51 PM<br>
<b>To:</b> Gopu Shrestha<br>
<b>Subject:</b> [rules-users] sliding window problem<u></u><u></u></span></p>
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<p style="margin-right:0in;margin-bottom:12.0pt;margin-left:0in;line-height:13.35pt;vertical-align:baseline"><span style="font-size:10.5pt;font-family:"Arial","sans-serif"">i
have a class called Event which has the following members
{ name, source, timestamp } with getters ,setters and
constructor. i have a rule file which creates Event
objects whenever a file is added / deleted in a particular
folder. the rule file is as follows<u></u><u></u></span></p>
<pre style="margin-bottom:7.5pt;line-height:13.35pt;background:#eeeeee;vertical-align:baseline;max-height:600px;word-wrap:normal;overflow:auto"><span style="font-size:10.5pt;font-family:Consolas"><u></u> <u></u></span></pre>
<pre style="line-height:13.35pt;background:#eeeeee;vertical-align:baseline"><code><span style="font-family:Consolas;padding:0in;border:none windowtext 1.0pt">rule "new file"<u></u><u></u></span></code></pre>
<pre style="line-height:13.35pt;background:#eeeeee;vertical-align:baseline"><code><span style="font-family:Consolas;padding:0in;border:none windowtext 1.0pt">when<u></u><u></u></span></code></pre>
<pre style="line-height:13.35pt;background:#eeeeee;vertical-align:baseline"><code><span style="font-family:Consolas;padding:0in;border:none windowtext 1.0pt">$p: RuleContext( $old : getOldContext().getContainedFiles(), $new :getNewContext().getContainedFiles())<u></u><u></u></span></code></pre>
<pre style="line-height:13.35pt;background:#eeeeee;vertical-align:baseline"><code><span style="font-family:Consolas;padding:0in;border:none windowtext 1.0pt">RuleContext( $old != $new)<u></u><u></u></span></code></pre>
<pre style="line-height:13.35pt;background:#eeeeee;vertical-align:baseline"><code><span style="font-family:Consolas;padding:0in;border:none windowtext 1.0pt">accumulate( $s : Object( this not memberOf $old ) from $new, $plus : collectList( $s ) ) <u></u><u></u></span></code></pre>
<pre style="line-height:13.35pt;background:#eeeeee;vertical-align:baseline"><code><span style="font-family:Consolas;padding:0in;border:none windowtext 1.0pt">events : Object() from $plus;<u></u><u></u></span></code></pre>
<pre style="line-height:13.35pt;background:#eeeeee;vertical-align:baseline"><code><span style="font-family:Consolas;padding:0in;border:none windowtext 1.0pt">then<u></u><u></u></span></code></pre>
<pre style="line-height:13.35pt;background:#eeeeee;vertical-align:baseline"><code><span style="font-family:Consolas;padding:0in;border:none windowtext 1.0pt">Event event = new Event("new file added",$p.getOldContext().getParent(),new Date());<u></u><u></u></span></code></pre>
<pre style="line-height:13.35pt;background:#eeeeee;vertical-align:baseline"><code><span style="font-family:Consolas;padding:0in;border:none windowtext 1.0pt">end<u></u><u></u></span></code></pre>
<pre style="line-height:13.35pt;background:#eeeeee;vertical-align:baseline"><code><span style="font-family:Consolas;padding:0in;border:none windowtext 1.0pt"><u></u> <u></u></span></code></pre>
<pre style="line-height:13.35pt;background:#eeeeee;vertical-align:baseline"><code><span style="font-family:Consolas;padding:0in;border:none windowtext 1.0pt"><u></u> <u></u></span></code></pre>
<pre style="line-height:13.35pt;background:#eeeeee;vertical-align:baseline"><code><span style="font-family:Consolas;padding:0in;border:none windowtext 1.0pt">rule " file deleted"<u></u><u></u></span></code></pre>
<pre style="line-height:13.35pt;background:#eeeeee;vertical-align:baseline"><code><span style="font-family:Consolas;padding:0in;border:none windowtext 1.0pt">when<u></u><u></u></span></code></pre>
<pre style="line-height:13.35pt;background:#eeeeee;vertical-align:baseline"><code><span style="font-family:Consolas;padding:0in;border:none windowtext 1.0pt">$p: RuleContext( $old : getOldContext().getContainedFiles(), $new:getNewContext().getContainedFiles())<u></u><u></u></span></code></pre>
<pre style="line-height:13.35pt;background:#eeeeee;vertical-align:baseline"><code><span style="font-family:Consolas;padding:0in;border:none windowtext 1.0pt">RuleContext( $old != $new)<u></u><u></u></span></code></pre>
<pre style="line-height:13.35pt;background:#eeeeee;vertical-align:baseline"><code><span style="font-family:Consolas;padding:0in;border:none windowtext 1.0pt">accumulate( $t : Object( this not memberOf $new ) from $old, $mins : collectList( $t ) )<u></u><u></u></span></code></pre>
<pre style="line-height:13.35pt;background:#eeeeee;vertical-align:baseline"><code><span style="font-family:Consolas;padding:0in;border:none windowtext 1.0pt">events : Object() from $mins; <u></u><u></u></span></code></pre>
<pre style="line-height:13.35pt;background:#eeeeee;vertical-align:baseline"><code><span style="font-family:Consolas;padding:0in;border:none windowtext 1.0pt">then<u></u><u></u></span></code></pre>
<pre style="line-height:13.35pt;background:#eeeeee;vertical-align:baseline"><code><span style="font-family:Consolas;padding:0in;border:none windowtext 1.0pt">Event event = new Event("file deleted",$p.getOldContext().getParent(),new Date());<u></u><u></u></span></code></pre>
<pre style="line-height:13.35pt;background:#eeeeee;vertical-align:baseline"><code><span style="font-family:Consolas;padding:0in;border:none windowtext 1.0pt">end <u></u><u></u></span></code></pre>
<p style="margin-right:0in;margin-bottom:12.0pt;margin-left:0in;line-height:13.35pt;vertical-align:baseline"><span style="font-size:10.5pt;font-family:"Arial","sans-serif"">(do
not confuse with RuleContext and other unknown
identifiers.. they r just related with other classes in
the project.. these two rules just works fine )..i need to
use a sliding time window and create another event if the
number of file additions are > 5 over the past 1
minute. my rule file is :<u></u><u></u></span></p>
<pre style="margin-bottom:7.5pt;line-height:13.35pt;background:#eeeeee;vertical-align:baseline;max-height:600px;word-wrap:normal;overflow:auto"><span style="font-size:10.5pt;font-family:Consolas"><u></u> <u></u></span></pre>
<pre style="line-height:13.35pt;background:#eeeeee;vertical-align:baseline"><code><span style="font-family:Consolas;padding:0in;border:none windowtext 1.0pt">declare Event <u></u><u></u></span></code></pre>
<pre style="line-height:13.35pt;background:#eeeeee;vertical-align:baseline"><code><span style="font-family:Consolas;padding:0in;border:none windowtext 1.0pt">@role( event ) <u></u><u></u></span></code></pre>
<pre style="line-height:13.35pt;background:#eeeeee;vertical-align:baseline"><code><span style="font-family:Consolas;padding:0in;border:none windowtext 1.0pt">end <u></u><u></u></span></code></pre>
<pre style="line-height:13.35pt;background:#eeeeee;vertical-align:baseline"><code><span style="font-family:Consolas;padding:0in;border:none windowtext 1.0pt"><u></u> <u></u></span></code></pre>
<pre style="line-height:13.35pt;background:#eeeeee;vertical-align:baseline"><code><span style="font-family:Consolas;padding:0in;border:none windowtext 1.0pt"><u></u> <u></u></span></code></pre>
<pre style="line-height:13.35pt;background:#eeeeee;vertical-align:baseline"><code><span style="font-family:Consolas;padding:0in;border:none windowtext 1.0pt">rule "More than 5 additions"<u></u><u></u></span></code></pre>
<pre style="line-height:13.35pt;background:#eeeeee;vertical-align:baseline"><code><span style="font-family:Consolas;padding:0in;border:none windowtext 1.0pt">when <u></u><u></u></span></code></pre>
<pre style="line-height:13.35pt;background:#eeeeee;vertical-align:baseline"><code><span style="font-family:Consolas;padding:0in;border:none windowtext 1.0pt">Number(intValue > 5) <u></u><u></u></span></code></pre>
<pre style="line-height:13.35pt;background:#eeeeee;vertical-align:baseline"><code><span style="font-family:Consolas;padding:0in;border:none windowtext 1.0pt">from accumulate( $tick : Event ( name == "new file added" ) over window:time( 1m ),</span></code><span style="font-family:Consolas;padding:0in;border:none windowtext 1.0pt">
<code><span style="font-family:Consolas"> count( $tick ) ) )<u></u><u></u></span></code></span></pre>
<pre style="line-height:13.35pt;background:#eeeeee;vertical-align:baseline"><code><span style="font-family:Consolas;padding:0in;border:none windowtext 1.0pt">then <u></u><u></u></span></code></pre>
<pre style="line-height:13.35pt;background:#eeeeee;vertical-align:baseline"><code><span style="font-family:Consolas;padding:0in;border:none windowtext 1.0pt"> System.out.println("too many additions"); <u></u><u></u></span></code></pre>
<pre style="line-height:13.35pt;background:#eeeeee;vertical-align:baseline"><code><span style="font-family:Consolas;padding:0in;border:none windowtext 1.0pt">end <u></u><u></u></span></code></pre>
<p style="margin-right:0in;margin-bottom:12.0pt;margin-left:0in;line-height:13.35pt;vertical-align:baseline"><span style="font-size:10.5pt;font-family:"Arial","sans-serif"">i
have enabled stream mode processing too.. but it doesnt
seem to work. what could be the problem?<u></u><u></u></span></p>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><br>
_______________________________________________ <br>
rules-users mailing list <br>
<a href="http://user/SendEmail.jtp?type=node&node=4028639&i=0" rel="nofollow" link="external" target="_blank">[hidden email]</a>
<br>
<a href="https://lists.jboss.org/mailman/listinfo/rules-users" rel="nofollow" link="external" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a>
<u></u><u></u></p>
<div class="MsoNormal" style="text-align:center" align="center">
<hr style="color:#cccccc" align="center" noshade size="1" width="100%">
</div>
<div>
<div>
<p class="MsoNormal"><b><span style="font-size:9.0pt;font-family:"Tahoma","sans-serif";color:#444444">If
you reply to this email, your message will be added to
the discussion below:<u></u><u></u></span></b></p>
</div>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Tahoma","sans-serif";color:#444444"><a href="http://drools.46999.n3.nabble.com/rules-users-sliding-window-problem-tp4028639.html" rel="nofollow" link="external" target="_blank">http://drools.46999.n3.nabble.com/rules-users-sliding-window-problem-tp4028639.html</a>
<u></u><u></u></span></p>
</div>
<div style="margin-top:4.8pt">
<p class="MsoNormal" style="line-height:18.0pt"><span style="font-size:8.5pt;font-family:"Tahoma","sans-serif";color:#666666">To
start a new topic under Drools: User forum, email
<a href="http://user/SendEmail.jtp?type=node&node=4028640&i=1" rel="nofollow" link="external" target="_blank">[hidden
email]</a>
<br>
To unsubscribe from Drools, <a rel="nofollow" link="external">
click here</a>.<br>
<a href="http://drools.46999.n3.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml" rel="nofollow" link="external" target="_blank"><span>NAML</span></a>
<u></u><u></u></span></p>
</div>
</div>
<br>
<hr align="left" width="300">
View this message in context: <a href="http://drools.46999.n3.nabble.com/RE-rules-users-sliding-window-problem-tp4028640.html" target="_blank">RE:
[rules-users] sliding window problem</a><br>
Sent from the <a href="http://drools.46999.n3.nabble.com/Drools-User-forum-f47000.html" target="_blank">Drools:
User forum mailing list archive</a> at Nabble.com.<br>
<br>
<fieldset></fieldset>
<br>
</div></div><pre>_______________________________________________
rules-users mailing list
<a href="mailto:rules-users@lists.jboss.org" target="_blank">rules-users@lists.jboss.org</a>
<a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a></pre>
</blockquote>
<br>
</div>
<br>_______________________________________________<br>
rules-users mailing list<br>
<a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br></blockquote></div><br></div>