我有大约50个从xsl文件生成的规则文件。 在每个drl文件中,我每个都有大约500个规则。每个规则都喜欢找到包含,开始或结束某个给定字符串的字符串。 目前我们只有一个知识库,其中已加载所有规则。 目前运行规则对我们来说是一个性能影响,它占用了我们大部分的执行时间。将有数以千计的请求将每秒点击一次服务,少量的性能改进将使我们受益。 有没有办法提高性能。 我想的一种方法是为每组规则创建不同的知识库并调用它们。这是一种正确的做法,还是我们有其他最好的方法来优化规则。
规则示例:
rule "StampingRules_26"
salience 200000
when
$map : Map(UTILITY.supportsDirectoryType($map,'PCM'),
UTILITY.supportsDirectory($map,'CMMSCPE'),
! UTILITY.exitAllRules($map),
! executed,
UTILITY.applicable($map,'resellerName'),
UTILITY.setRuleLevel($map,'resellerCountry'),
UTILITY.checkRuleLevel($map,'US'),
UTILITY.startsWith ($map, 'Advent System~~AdventSystem'))
then
((Map)$map.get('PARAMETERS')).put('replaceParameter','csd_id');
String replaceParameter='csd_id';
((Map)$map.get('PARAMETERS')).put(replaceParameter, '001d000001Fsm72AAB');
((RulesUtility)$map.get('UTILITY')).setExitAllRules($map,'yes');
end
提前致谢