Another noob question:
Is there a generally understood way of implementing the concept of a time interval rule?
That is, lets say I have a Drools-enabled client which is constantly receiving information
from outside resources. Most of this data (and the consequences of its changes) is time
sensitive, so I'm calling the fireAllRules() method in a loop every minute.
And now, let's say I have a rule that in addition to being driven by incoming data
changes has to be linked to a repeating clock interval or synched with wall time such that
the rule only activates and fires if the data meets certain parameters AND it's been
exactly 1 hour since the last check or that it will fire at the top of every wall time
hour (1 PM, 2PM, 3 PM, etc.).
Furthermore, timing may change. A successful rule activation and firing might do something
like "now change this timing so that for the next 24 hours, this rule must be
examined every 30 minutes instead of every hour".
My initial reading of the Drools documetation I came across the Duration, and Date-*
keywords. Their descriptions didn't seem to fit the bill.
I ask this because our old rules engine software that has been retired to obsolescence
allowed this kind of thing to be easily set up. Coming at it in the Drools world seems a
lot more challenging.
Thoughts? Examples?
-Allen