drools rule (一) 属性

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

属性 类型 默认值 涵义
no-loop Boolean false  

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

ruleflow-group String N/A

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

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

lock-on-active

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

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

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

猜你喜欢

转载自blog.csdn.net/top_explore/article/details/93635908