drools rule (一) 属性

规则属性提供了一种影响规则行为的声明方式。有些很简单,有些则是规则流等复杂子系统的一部分。要从Drools中获得最大收益,您应该确保对每个属性有正确的理解。

属性类型默认值涵义
no-loopBooleanfalse 

当规则的结果修改了fact时,它可能导致规则再次激活,从而导致无限循环。将no-loop设置为true将跳过为具有当前fact集的规则创建另一个Activation。

ruleflow-groupStringN/A

Ruleflow是一种Drools特性,可让您控制规则的触发。由相同的ruleflow-group标识规则仅在其组处于活动状态时触发。

 

agenda-groupStringMAINagenda-group允许用户对agenda进行分组,从而提供更多的执行控制。当agenda-group获得焦点时,相同agenda-group的规则才能被匹配。
auto-focusBooleanfalseauto-focus(自动获取焦点)被设置为true的规则被激活时,如果该规则所匹配的agenda-group没有获取到焦点,会自动获取到焦点。即,一旦auto-focus设置为ture,那么该规则所在的agenda-group会随着该规则的激活而获取到焦点。

lock-on-active

Booleanfalse当一个ruleflow-group被激活或者agenda-group获得焦点时,其中lock-on-active标记为true的规则将被锁定,无法被激活,不管fact被修改多少次,该规则的匹配都将被丢弃。这是一个更加严格的no-loop,相比于no-loop,该属性为true的规则一次也不会被匹配。只有当rule-group退出激活或者agenda-group失去焦点时,该规则才会重新处于可匹配的状态。
activation-groupStringN/A属于同一activation-group(激活组)的规则(由此属性的字符串值标识)将仅以独占方式触发。更确切地说,要激活的激活组中的第一个规则将取消组中所有规则的所有未决激活,即阻止它们触发。
salienceinteger0

规则排序,等待匹配的规则队列将salience的值由高到低排列,salience高的规则,会优先获得匹配。

 

dialectString在package中指定默认值。可能的值:“java”或“mvel”dialect(方言种类)是用于LHS或RHS代码块中的任何代码表达式的语言。目前有两种方言,Java和MVEL。虽然可以在包级别指定方言,但此属性允许为规则覆盖包定义。
date-effectiveStringN/A有效期。只有当前日期和时间在date-effective之后时,才能激活规则。
date-expiresStringN/A失效期。如果当前日期和时间在date-expires属性之后,则无法激活规则。
durationlong 激活间隔。如果一个规则匹配为ture时,经过duration的时间间隔后再次匹配,如果仍然为true则执行规则then。
enabledbooleantrue当enabled为false时,即使规则匹配也不会执行。需要注意的是,即使该属性设置为false,仍然会参与匹配,会对性能产生影响。

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值