drools规则语言指南(四)规则属性

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"

更多参考

你可能感兴趣的:(java)