规则引擎组成
由以下三部分组成
规则引擎执行过程
kie介绍
规则文件构成
规则体
语法:
rule "ruleName"
attributes
when
LHS
then
RHS
end
Pattern模式匹配
比较操作符
触发指定规则
drools内置方法
update方法
update方法的作用是更新工作内存中的数据,并让相关的规则重新匹配。 (要避免死循环)
insert方法
insert方法的作用是向工作内存中插入数据,并让相关的规则重新匹配。
retract方法
retract方法的作用是删除工作内存中的数据,并让相关的规则重新匹配。
注意:工作内存中删除了该fac,规则重新匹配时,没有一个规则能匹配上,因为工作内存中已经没有了这个fac对象
规则属性 attributes
前面我们已经知道了规则体的构成如下:
rule "ruleName"
attributes
when
LHS
then
RHS
end
enabled属性
dialect属性
salience属性
salience属性用于指定规则的执行优先级,取值类型为Integer。数值越大越优先执行。每个规则都有一个默认的执行顺序,如果不设置salience属性,规则体的执行顺序为由上到下。
no-loop属性
activation-group属性
agenda-group属性
agenda-group属性为议程分组,属于另一种可控的规则执行方式。用户可以通过设置agenda-group来控制规则的执行,只有获取焦点的组中的规则才会被触发。
auto-focus属性
auto-focus属性为自动获取焦点,取值类型为Boolean,默认值为false。一般结合agenda-group属性使用,当一个议程分组未获取焦点时,可以设置auto-focus属性来控制。