Need some instruction for retraction strategies. We have an application that
receives messages about the status of various things in the system, and at
the moment I am asserting these messages as facts. The rules are written
against these messages. Various rules might be interested in various values
in the message, and they all fire independently. The problem is that after
all the existing rules that are interested in the message have fired, I want
to retract the message. How do I ensure that all the interested rules have
fired first??
At the moment, I am trying to use a salience value of -1 to make sure a
simple "cleanup" rule fires last:
rule "cleanupMessage"
no-loop true
salience -1
when
msg : MyMessage()
then
retract(msg)
end
Does this sound like a reasonable solution? Is there a better one??
Thanks!