DRL中的规则属性
如下图所示,规则的所有属性都在里面了
规则的属性是对规则行为的额外声明。在DRL文件中,在条件的上面定义属性,多个属性分行表示:
rule "rule_name"
// Attribute
// Attribute
when
// Conditions
then
// Actions
end
属性对照表:
Attribute | Value |
---|---|
salience | 规则执行的优先级,正整数,数值越大优先级越高,例:salience 10 |
enabled | 规则是否可用,true/false,例:enabled true |
date-effective | 规则生效的时间,在这个时间之后的,规则才可以生效,例:date-effective “4-Sep-2018” |
date-expires | 规则失效时间,在这个时间之后规则就失效,例:date-expires “4-Oct-2018” |
no-loop | 规则不会被再次激活,true/false,例:no-loop true |
agenda-group | agenda组 ,这个相当于对规则进行了分组,只有被选定的组才能激活规则,例:agenda-group “GroupName” |
activation-group | activation组,在同一个组中的规则,当其中一个被激活之后其他的规则就不会被激活,例:activation-group “GroupName” |
duration | 规则持续时间,毫秒值,在指定的毫秒值之后规则才能被激活 |
timer | 定时调度规则,int (interval) or cron,例: timer ( cron:* 0/15 * * * ? ) (every 15 minutes) |
calendar | 基于Quartz日期的定时调度规则,例: calendars “* * 0-7,18-23 ? * *” (exclude non-business hours) |
auto-focus | true/false,仅适用于有agenda group的规则,为true时当某个agenda group中的规则被激活之后,那么这个group就会自动获得焦点,例:auto-focus true |
lock-on-active | true/false,仅适用于带有rule flow group 或者agenda group的规则,为true时,在下一次rule flow group变为可激活或者agenda group获得了焦点,这个规则不能被激活直到这个group失去焦点。这是no-loop的增强版本,任何的地方对fact的修改都不会再次触发规则。lock-on-active true |
ruleflow-group | 在规则流中,只有指定得ruleflow-group才能被激活,例:ruleflow-group “GroupName” |
dialect | 使用JAVA还是MVEL作为规则的语言,例:dialect “JAVA” |