使用自动对焦时的规则激活顺序
Rule activation order while using auto-focus
如果给定属性auto-focus
,我对激活规则的顺序有些疑问。
例如,如果我有以下规则文件:
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
表示Rule2
先执行
现在如果我颠倒规则的顺序:
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
现在首先被触发。
这是否意味着在 auto-focus
的情况下显着性不影响激活顺序,而是取决于规则文件中写入规则的顺序?
关于这个话题,我已经 this discussion 了一遍,但没有找到满意的答案。
如果我描述的行为是正确的,是否有任何记录?
我正在使用 Drools 6.2.0。
许多规则属性都是专门的扩展,允许规则作者减少规则的逻辑。每当 SW 功能宣布 "auto(matic)".
时,您应该非常小心
如果激活(不与执行相同)设置议程组,则显着性将仅在内决定团体。另一方面,显着性不决定评估顺序。
如果需要按规则处理两个或多个议程组之间的决策,请移除自动聚焦和议程组。调用例如
drools.setFocus( "group1" );
在规则的右侧进行选择。
如果给定属性auto-focus
,我对激活规则的顺序有些疑问。
例如,如果我有以下规则文件:
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
表示Rule2
先执行
现在如果我颠倒规则的顺序:
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
现在首先被触发。
这是否意味着在 auto-focus
的情况下显着性不影响激活顺序,而是取决于规则文件中写入规则的顺序?
关于这个话题,我已经 this discussion 了一遍,但没有找到满意的答案。
如果我描述的行为是正确的,是否有任何记录?
我正在使用 Drools 6.2.0。
许多规则属性都是专门的扩展,允许规则作者减少规则的逻辑。每当 SW 功能宣布 "auto(matic)".
时,您应该非常小心如果激活(不与执行相同)设置议程组,则显着性将仅在内决定团体。另一方面,显着性不决定评估顺序。
如果需要按规则处理两个或多个议程组之间的决策,请移除自动聚焦和议程组。调用例如
drools.setFocus( "group1" );
在规则的右侧进行选择。