[rules-users] Initial rule delay
Vincent LEGENDRE
vincent.legendre at eurodecision.com
Wed Jun 6 12:03:52 EDT 2012
In 5.4 timers support expressions for values.
You can thus use a fact used to hold timer values (init and delay). This fact is created with some non-zero values, and reset all to zero once a first rule has triggered
rule "delayAtFirstTime" timer(expr: $timerSpec.getDelay()+"s" , "0s")
when
$timerSpec : TimerSpec()
....
then
....
$timerSpec.setDelay(0);
update($timerSpec);
end
Another solution is to create a fact that enable rule triggering that you insert "later" (may be that's the problematic aspect ...), something like that
rule "DoSomethingWhenYouCan"
when
exists( OkToGo() )
....
then
...
end
Note that the OkToGo() fact can be inserted by a rule too ...
rule "OkToGoAfter10s" timer(10s 0)
when
not( OkToGo() )
then
insert( new OkToGo() );
end
----- Original Message -----
From: "Paul R." <reverselogic at gmail.com>
To: "Rules Users List" <rules-users at lists.jboss.org>
Sent: Mercredi 6 Juin 2012 16:47:03
Subject: [rules-users] Initial rule delay
Hi,
I'm looking for a way to delay a rules initial execution? In the following example, I would like to prevent the rule from firing when the first "Foo" event is inserted into the working memory.
rule "DelayTest" when $n : Number() from accumulate( $f : Foo() over window:time(10s) count($f) ) then // bla end
The timer attribute seems to almost support what I'm looking for, i.e. it allows for an initial-delay to be specified; but if the repeat interval is omitted, it uses the initial delay as the repeat interval.
timer ( int: <initial delay> <repeat interval>? )
In my case I would like to block the execution of the rule for an "initial-delay" period, but after that time has elapsed the rule should fire when every time a new "Foo" event is inserted into the working memory. What is the recommended way to do this?
Thanks & Regards,
Paul
_______________________________________________
rules-users mailing list
rules-users at lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users
More information about the rules-users
mailing list