Ok, your case seems clearly a case where you need either a StatefulSession or your application needs to send previous readings to drools.
If you are using a StatefulSession AND you always use the same SystemInfo object (just use update on it), you could use "duration" on your rule:
rule "Start_New_Process_If_System_is_70%_Idle_Continuously_for_60_Seconds"
duration 60000
when
SystemInfo (idle >= 70) //Idle continuously for 60 seconds
then
// start new process
end
Using StatelessSession, you must have an update rule for your object
rule "System_is_70%_Idle"
salience 10
when
$si : SystemInfo (idle >= 70)
then
$si.setIdleCounter( $si.getIdleCounter() + 1 );
end
rule "Start_New_Process_If_System_is_70%_Idle_Continuously_for_60_Seconds"
when
SystemInfo( idleCounter >= 12)
then
// start new process
end
[]s
Edson
2008/8/19 ganesh.p
<ganesh_patkar@hotmail.com>
I need to create a rule with following requirements:
There is a fact class called SystemInfo which contains idle information of a
sytem
public class SystemInfo {
private double idle; //System idle percentage
public void setIdle(double idle) {
this.idle = idle;
}
public double getIdle() {
return this.idle;
}
}
The SystemInfo objects are continuously sent to DROOLS (StatelessSession)
with 5 second delay.
I need to create a rule
rule "Start_New_Process_If_System_is_70%_Idle_Continuously_for_60_Seconds"
when SystemInfo (idle >= 70) //Idle continuously for 60 seconds
then
// start new process
end
I need to fire this rule only if all the 12 SystemInfo objects which are
sent with 5 seconds delay for 60 seconds, match the condition "idle >= 70".
Even if a single SystemInfo doesn't match this condition then this rule
shouldn't be fired.
I am using DROOLS 4.0. Please help me in implementing the WHEN condition.
Thanks
-Ganesh
--
View this message in context: http://www.nabble.com/Fire-rule-only-when-all-the-fact-objects-sent-during-a-specific-period-match-the-WHEN-part-tp19029247p19029247.html
Sent from the drools - user mailing list archive at Nabble.com.
_______________________________________________
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users
--
Edson Tirelli
JBoss Drools Core Development
JBoss, a division of Red Hat @ www.jboss.com