谢谢
对规则进行分类的最好方法是通过元数据进行分类。将元数据条目添加到规则中:
rule metademo
@meta2( 123 )
@meta3( foo )
@meta4( "foo" )
when...then...end
您可以通过从包或某个事件获得的规则访问元数据:
for( Rule rule: kPackage.getRules() ){
Map<String,Object> key2meta = rule.getMetaData();
for( Map.Entry<String,Object> entry: key2meta.entrySet() ){
System.out.print( " @" + entry.getKey() + "( " );
Object value = entry.getValue();
System.out.print( "[" + value.getClass().getSimpleName() + "] "
+ value.toString() );
System.out.println( " ) " );
}
}
产出:
@meta2( [Integer] 123 )
@meta4( [String] foo )
@meta3( [String] foo )
@meta7( foo = "foo", bar = "bar" )
我们使用的是Drools Planner 5.4.0。我们希望对java应用程序进行概要分析,以了解是否可以提高性能。是否有一种方法可以描述一个规则需要评估多少时间?我们使用了很多eval(....)我们的“平均每秒计算次数”接近37。删除所有eval(...)我们的“平均每秒计算次数”保持不变。
我的问题是: 在Drools规则中,有没有一种方法可以拦截“成功”事件?为了更好地解释。。。有一种方法可以在规则的所有条件都为真时调用侦听器? 注意:我不想设置一个全局对象(在会话上)来管理规则的“然后”子句中的这个条件。 我正在寻找一个已经在Drools上实现的解决方案 规则示例
我正在向drools规则引擎插入数据,但我无法理解它是如何处理插入的数据的。插入数据的代码是:
我最近开始研究口水。我只是设计了一个简单的应用程序来更好地理解它。 谢谢。
我是一个流口水的新手(6.3版),我很难想出一个具体的规则。我有一个名为Steps的类,只有一个简单的字段
我是Drools Fusion的新手,我想知道为什么我的规则不总是被取消。我用的是Drools 6.3。以下是我要插入的事件: 这是我的规则文件: 这是我的输出: 我预计我的规则将触发2次,并给出以下输出: 我可能忽略了一些事情,但我没有找到关于我的问题的太多信息。有人能解释一下这里到底发生了什么吗?非常感谢。