[rules-users] sliding window problem

Sandhya Sree sandhyachinnaraj at gmail.com
Tue Mar 11 13:49:54 EDT 2014


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

rule "new file"
when
$p: RuleContext( $old : getOldContext().getContainedFiles(), $new
:getNewContext().getContainedFiles())
RuleContext( $old != $new)
accumulate( $s : Object( this not memberOf $old ) from $new, $plus :
collectList( $s ) )
events : Object() from $plus;
then
Event event = new Event("new file
added",$p.getOldContext().getParent(),new Date());
end


rule " file deleted"
when
$p: RuleContext( $old : getOldContext().getContainedFiles(),
$new:getNewContext().getContainedFiles())
RuleContext( $old != $new)
accumulate( $t : Object( this not memberOf $new ) from $old, $mins :
collectList( $t ) )
events : Object() from $mins;
then
Event event = new Event("file
deleted",$p.getOldContext().getParent(),new Date());
end

(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 :

declare Event
@role( event )
end


rule "More than 5 additions"
when
Number(intValue > 5)
from    accumulate( $tick : Event ( name == "new file added" ) over
window:time( 1m ),
        count( $tick ) ) )
then
    System.out.println("too many additions");
end

i have enabled stream mode processing too.. but it doesnt seem to work.
what could be the problem?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140311/8d33d6dd/attachment.html 


More information about the rules-users mailing list