Hey,
I had a similar issue where a massive log file was being generated due to the activation and cancellation of rules outside of the current ruleflow-group. My issues were not strictly performance related, I just didn't want to sift through thousands of lines of logging. This is one way I resolved my issue:
declare GroupOneFinished
end
rule "simple rule in group one"
ruleflow-group "group one"
when
DomainObject(expression == true)
then
//do something
end
rule "last rule to fire in group one"
ruleflow-group "group one"
salience -100
when
not GroupOneFinished()
then
insert(new GroupOneFinished());
end
rule "simple rule in group two"
ruleflow-group "group two"
when
GroupOneFinished()
DomainObject(costlyExpression == true)
then
// do something
end
Clearly, this is not a pretty solution and, depending on how drools handles the order of evaluation (does it stop trying to activate "simple rule in group two" as soon as it realizes there is no GroupOneFinished object?), may not add any performance gain, but it definitely reduced the size of my log file!
Hope it helps,
Enda
Hey,
We are dealing with performance issues at the moment are trying to find ways
to improve the performance of our conditional statements.
We see that when an update happens, drools will evaluate conditional
statements of rules outside of the ruleflow-group currently active.
Is there a way to prevent this from happening? It would substantially reduce
the number of rules being evaluated and improve performance for us.
Thanks for any help.
--
View this message in context: http://drools-java-rules-engine.46999.n3.nabble.com/Performance-issue-why-are-rules-outside-of-ruleflow-group-evaluated-tp2228232p2228232.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