Drools 规则文件 ——语法属性
2016-07-28 15:29
381 查看
1.salience 功能:设置规制执行的优先级 值:数字(数字越大执行优先级越高) 示例: rule "rule1" salience 1 when eval(true) then System.out.println("rule1"); end 2.no-loop 功能:控制已经执行的规则条件再次满足是否再次执行 值:true/false 示例: rule "rule1" no-loop true when $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 System.out.println("rule1 is execution!"); end 5.enabled 功能:设置规制是否可用 值:true/false 示例: rule "rule1" enabled false when eval(true); then System.out.println("rule1 is execution!"); end 6.dialect 功能:规则当中要使用的语言类型 值:Java/mevl(默认为java) 示例: rule "rule3" dialect "mvel" when $app:Applicant(age == 24); then System.out.println("rule3----" + $app.name); end 7.duration 功能:设定时间之后在另外一个线程里触发 值:一个长整型,单位是毫秒 示例: rule "rule1" duration 3000 when eval(true) then System.out.println("rule thread id:"+Thread.currentThread().getId()); end 8.activation-group 功能:若干个规则划分成一个组 值:分组名称 示例: rule "rule2" activation-group "test" salience 10 when eval(true) then System.out.println("rule2 execute"); end rule "rule1" activation-group "test" salience 9 when 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" when eval(true) then System.out.println("rule1 execute"); end rule "rule2" agenda-group "002" when eval(true) then System.out.println("rule2 execute"); end 10:auto-focus 功能:跟agenda-group一起使用,设置该规则是否可以自动独取 Focus,如果该属性设置为 true,那么在引擎执行时,就不需要 显示的为某个Agenda Group 设置 Focus,否则需要。 值:true/false 示例: rule "rule1" agenda-group "001" auto-focus true when eval(true) then System.out.println("rule1 execute"); end rule "rule2" agenda-group "002" auto-focus true when eval(true) then System.out.println("rule2 execute"); end
相关文章推荐
- Drools 5.5 将支持多个consequences处理
- drools 将添加switch支持
- Drools介绍
- Drools项目发布成Web服务
- 使用drools+freemarker解决非技术人员设计系统业务规则
- Drools 6.0 教程一【在MyEclipse10中的插件安装和Runtimes配置】
- [DROOLS]规则引擎drools常用依赖--Gradle
- 应用drools规则引擎做产生式规则不确定性推理
- 从Drools DSL到antlr
- Eclipse下安装Drools插件
- 事件处理&时空推理(event processing/temporal reasoning)-jboss Drools Fusion
- exception handler in drools rule
- drools rule: stateful vs stateless knowledge session
- Drools(JAVA规则引擎)开发指南
- Drools在Eclipse中环境安装
- Drools规则引擎远程加载规则文件
- Drools规则引擎配置安装
- [Drools]JAVA规则引擎 -- Drools
- Drools学习
- 22、关于Drools Web版本与java实现自动扫描功能