如果给出属性 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 .
1 回答
许多规则属性都是ad-hoc扩展,它们是为了允许规则作者减少规则逻辑而发明的 . 只要SW功能宣布“auto(matic)”,您就应该非常小心 .
如果激活(与执行不同)设置议程组,则显着性将仅在该组内决定 . 另一方面,显着性不会影响评估顺序 .
如果您需要按规则处理两个或更多议程组之间的决策,请删除自动焦点和议程组 . 请致电
在规则的右侧做选择 .