Drools中的非模板动态规则

时间:2012-07-14 15:47:14

标签: java dynamic drools rule-engine

简化我的用例。我有温度点t1-t4,其值正在测量中。 用户可以为要触发的规则指定不同的条件和值。例如

t1+ ( 2* t2) LESS-THAN 100 or t3 EQUAL 5. 

因此条件和比较器是动态的,比较值和测量值也是动态的。  这是Drools或任何其他规则引擎的候选者。 在我看来,Drools是一个面向模板的规则引擎,所以可以做到

rule "engine_is_hot"
  no-loop
 when
 $t1 : Temp( id =="1", $v1 : value) 
 $t2 : Temp( id =="2", $v2 : value) 
   eval ( $v1>=50 || $v1 + $v2<=100)
 then
        System.out.println( $t1.getId()+""+$t2.getId());
end

因此可以动态地生成规则,并且我的意思是,逻辑比较器,比较值和当前值是动态的。我尝试使用PackageDescr,它不灵活;我无法指定我想要一个&lt;或&gt; =逻辑比较器。