当前位置: 首页 > 知识库问答 >
问题:

Drools规则分类

闻人和歌
2023-03-14

谢谢

共有1个答案

蔡修远
2023-03-14

对规则进行分类的最好方法是通过元数据进行分类。将元数据条目添加到规则中:

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次,并给出以下输出: 我可能忽略了一些事情,但我没有找到关于我的问题的太多信息。有人能解释一下这里到底发生了什么吗?非常感谢。