我有大约 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
提前致谢