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" );
在规则的右侧进行选择