Drools 使用自动对焦时的规则激活顺序
如果规则被赋予属性Drools 使用自动对焦时的规则激活顺序,drools,Drools,如果规则被赋予属性自动聚焦,我对规则的激活顺序有一些疑问 例如,如果我有以下规则文件: rule "Rule1" salience 2 agenda-group "group1" auto-focus when ... then ... end rule "Rule2" salience 1 agenda-group "group2" auto-focus when ... then ... end
自动聚焦
,我对规则的激活顺序有一些疑问
例如,如果我有以下规则文件:
rule "Rule1" salience 2
agenda-group "group1"
auto-focus
when
...
then
...
end
rule "Rule2" salience 1
agenda-group "group2"
auto-focus
when
...
then
...
end
我通过一个事实激活了这两个规则,我观察到议程组是按顺序排列的:
group2
group1
这意味着首先执行规则2
现在如果我颠倒规则的顺序:
rule "Rule2" salience 1
agenda-group "group2"
auto-focus
when
...
then
...
end
rule "Rule1" salience 2
agenda-group "group1"
auto-focus
when
...
then
...
end
我注意到Rule1
现在首先被触发
这是否意味着显著性不影响自动聚焦时的激活顺序,而是取决于规则文件中写入规则的顺序
关于这个问题,我仔细研究了一下,但没有找到令人满意的答案
如果我所描述的行为是正确的,是否在任何地方都有记录
我使用的是Drools 6.2.0。许多规则属性都是特殊的扩展,它们被发明用来让规则作者减少规则的逻辑。当软件功能宣布“自动(自动)”时,您应该非常小心
如果一个激活(与执行不同)设置了一个议程组,那么显著性只会在该组中决定。另一方面,显著性并不支配评价顺序
如果需要按规则处理两个或多个议程组之间的决策,请删除自动聚焦和议程组。打电话
drools.setFocus( "group1" );
在规则的右侧进行选择