《Drools7.0.0.Final规则引擎教程》番外实例篇——获取规则名称和包名

场景

在QQ(593177274)交流群中,有朋友问到这样一个问题,如果我执行了很多规则,调用fireAllRules方法只会返回触发了几条规则,那么我怎么知道哪些规则被触发了,并把这些触发的规则的名称存如数据库呢?

其实这个问题很好解决,也是实践中必然会遇到的问题,为大家写了一个简单的示例。

实践

在前面的RHS语法章节中我们已经讲过预定义变量drools的简单实用,其实通过它就可以轻松的拿到规则相关的信息。下面看实例: 规则内容如下:

package com.rules

rule "Get name and package demo"

agenda-group "Name and package"

when
then
    System.out.println("The rule's name is '" + drools.getRule().getName() + "'");
    System.out.println("The rule's package is  '" + drools.getRule().getPackageName() + "'");
end

执行规则代码如下:

@Test
    public void test(){
        KieSession kieSession = this.getKieSession("Name and package");
        int count = kieSession.fireAllRules();
        kieSession.dispose();

        System.out.println("Fire " + count + " rule(s)!");

    }

执行结果:

The rule's name is 'Get name and package demo'
The rule's package is  'com.rules'
Fire 1 rule(s)!

源代码已上传至gitHub:https://github.com/secbr/drools

后语

此系列课程持续更新中,QQ群:593177274,欢迎大家加入讨论。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Spark生态圈

[spark] Standalone模式下Master、WorKer启动流程

而Standalone 作为spark自带cluster manager,需要启动Master和Worker守护进程,本文将从源码角度解析两者的启动流程。Mas...

1862
来自专栏恰同学骚年

设计模式的征途—19.命令(Command)模式

在生活中,我们装修新房的最后几道工序之一是安装插座和开关,通过开关可以控制一些电器的打开和关闭,例如电灯或换气扇。在购买开关时,用户并不知道它将来到底用于控制什...

502
来自专栏云端漫步

go设计模式之单例模式

单例模式在系统设计中很常用,如数据库的连接对象等,该类只有一个实例存在,实现很简单,就是在创建实例时,判断一下,实例是否已经存在。

820
来自专栏比原链

剥开比原看代码07:比原节点收到“请求区块数据”的信息后如何应答?

Gitee地址:https://gitee.com/BytomBlockchain/bytom

812
来自专栏技术博客

Asp.Net Mvc3.0(MEF依赖注入实例)

在http://www.cnblogs.com/aehyok/p/3386650.html前面一节主要是对MEF进行简单的介绍。本节主要来介绍如何在Asp.Ne...

812
来自专栏程序你好

不同的.Net版本客户端软件调用Java Web Service区别

最近的系统中需要.Net开发的离线端软件通过Web Service技术和Java开发的在线系统进行数据交互。

923
来自专栏Kubernetes

cAdvisor源码分析

##cAdvisor监控数据分析 ? 入口 cAdvisor 代码托管地址 代码入口: github.com/google/cadvisor/cadvisor...

8546
来自专栏运维一切

laravel自定义错误页面 原

app\Exceptions\handler.php 在render的时候就携带了这个异常

963
来自专栏Danny的专栏

【MyBatis框架点滴】——MyBatis一对多查询

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huyuyang6688/article/...

973
来自专栏Laoqi's Linux运维专列

使用YAML 文件创建 Kubernetes Deployment

3085

扫码关注云+社区