http://liureying.blog.163.com/blog/static/615135201111141012748/
1.
salience
功能:设置规制执行的优先级值:数字( 数字越大执行优先级越高)示例:
rule "rule1"salience 1wheneval(true)
then
System.out.println("rule1");
end
2.
no-loop
功能:控制已经执行的规则条件再次满足是否再次执行值: true/ false示例:
rule "rule1"no-loop truewhen
$customer:Customer(name=="张三")
then
update($customer);System.out.println("customer name:"+$customer.getName());
End
3.
date-effective
功能:当系统时间>=date-effective后才会触发值:日期默认格式为 dd-MMM-yyyy,可以设置其它时间格式如 yyyy-MM-dd,需在代码设置系统时间格式System.setProperty("drools.dateformat", "yyyy-MM-dd");
示例:rule "rule1"date-effective "2009-09-25"when
eval(true);
then
System.out.println("rule1 is execution!");
end
4.
date-expires
功能:当系统时间<=date-expires后才会触发值:日期默认格式为 dd-MMM-yyyy可以设置其它时间格式如 yyyy-MM-dd, 需在代码设置系统时间格式System.setProperty("drools.dateformat", "yyyy-MM-dd");
示例:rule "rule1"date-expires "2009-09-27"when
eval(true);
then
endSystem.out.println("rule1 is execution!");
5.
enabled
功能:设置规制是否可用值:true/false
示例:rule "rule1"enabled falsewhen
eval(true);
then
System.out.println("rule1 is execution!");
end
6.
dialect
功能:规则当中要使用的语言类型值: Java/mevl(默认为java)
示例:rule "rule3"dialect "mvel"when$app:Applicant(age == 24);thenSystem.out.println("rule3----" + $app.name);end
7.
duration
功能:设定时间之后在另外一个线程里触发值:一个长整型,单位是毫秒
示例:rule "rule1"duration 3000when
eval(true)
then
System.out.println("rule thread id:"+Thread.currentThread().getId());
end
8.
activation-group
功能:若干个规则划分成一个组值:分组名称
示例:rule "rule2"activation-group "test"salience 10wheneval(true)thenSystem.out.println("rule2 execute");endrule "rule1"activation-group "test"salience 9when
eval(true)
then
System.out.println("rule1 execute");
end
note:如果同一组规则,谁的salience高就执行谁,没有则按顺序执行最后同组最后那个规则
9.
agenda-group
功能:Agenda Group 是用来在 Agenda的基础之上,对现在的规则进行再次分组.Agenda Group 得到 Focus(焦点),这样位于该 Agenda Group当中的规则才会触发执行,否则将不执行。值:一个字符串
示例:rule "rule1"agenda-group "001"wheneval(true)thenSystem.out.println("rule1 execute");end
rule "rule2"agenda-group "002"wheneval(true)thenSystem.out.println("rule2 execute");end
10:
auto-focus
功能:跟agenda-group一起使用,设置该规则是否可以自动独取 Focus,如果该属性设置为 true,那么在引擎执行时,就不需要显示的为某个Agenda Group 设置 Focus,否则需要。值:true/false
示例:rule "rule1"agenda-group "001"auto-focus truewheneval(true)thenSystem.out.println("rule1 execute");end
rule "rule2"agenda-group "002"auto-focus truewheneval(true)thenSystem.out.println("rule2 execute");end