美文网首页Drools
Drools规则文件——常用的语法属性

Drools规则文件——常用的语法属性

作者: 天堂的码头 | 来源:发表于2017-09-30 09:50 被阅读339次

Drools规则文件——语法属性

  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
    功能:设置DRL文件开始执行之后延迟多长时间开始执行这条规则
    值:一个长整型,单位是毫秒

    示例:

    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规则文件——常用的语法属性

    Drools规则文件——语法属性 salience 功能:设置规制执行的优先级值:数字(数字越大执行优先级越高)...

  • 入门Demo

    drools有专门的规则语法drl,就是专门描述活动的规则是如何执行的: Point-rules.drl 文件内容...

  • Drools 规则文件语法概述

    概述(Overview) 以.drl为扩展名的文件,是Drools中的规则文件,规则文件的编写,遵循Drools规...

  • Drools详解

    Drools规则引擎的结构示意图 Drools相关概念 事实(Fact):对象之间及对象属性之间的关系 规则(ru...

  • 关于规则引擎--easy rules

    一、常用规则引擎 Drools、easyRule、QlExpress、Aviator、Vincio按照GitHu...

  • Linx--常用命令第三篇

    一.常用命令 - find 根据文件属性进行搜索 语法: find 路径 文件属性 例如: find ....

  • Drools

    一. Drools规则引擎 Drools就是为了解决业务代码和业务规则分离的引擎。Drools 规则是在 Java...

  • Linux-03

    一、常用命令 - find 根据文件属性进行搜索 语法: find 路径 文件属性 例如: find . -nam...

  • drools执行指定的规则

    1、背景 在我们编写drools规则文件的过程中,可能会编写好多规则。drools引擎在模式匹配的时候,可能一下子...

  • DROOLS RULE基础知识学习整理

    对于Drools Rule的理解 一个规则可以包含三个部分: 属性部分:定义当前规则执行的一些属性等,比如是否可被...

网友评论

    本文标题:Drools规则文件——常用的语法属性

    本文链接:https://www.haomeiwen.com/subject/ugrgextx.html