《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 条评论
登录 后参与评论

相关文章

来自专栏ATYUN订阅号

如何在Python中保存ARIMA时间序列预测模型

自回归移动平均模型(ARIMA)是一种常用于时间序列分析和预测的线性模型。 statsmodels库提供了Python中使用ARIMA的实现。ARIMA模型可以...

3966
来自专栏王小雷

R语言基础命令与安装

1. R的安装过程 1.1.首先附上清华线路的下载链接Windows版3.3.1 1.2. 选择安装路径 ? 1.3. 注意根据自己的计算机位数选择,如我的是6...

1945
来自专栏漫漫深度学习路

tensorflow:AToolDeveloperGuideToTFModelFIles

Tensorflow Model Files 最近闲来无聊,想深入理解一下tensorlfow,也不知从何下手,突然间发现了官方文档的Extend模块下还有这个...

2855
来自专栏企鹅号快讯

深度学习系列教程(六)tf.data API 使用方法介绍

"玩转TensorFlow与深度学习模型”系列文字教程,本周带来tf.data 使用方法介绍! 大家在学习和实操过程中,有任何疑问都可以通过学院微信交流群进行提...

2647
来自专栏点滴积累

geotrellis使用(九)使用geotrellis进行栅格渲染

目录 前言 图像渲染 总结 参考链接 一、前言        前面几篇文章讲解了如何使用Geotrellis进行数据处理、瓦片生成等,今天主要表一下如何使用Ge...

3185
来自专栏机器之心

资源 | 神经网络框架Chainer发布2.0正式版:CuPy独立

选自GitHub 机器之心编译 参与:李泽南、吴攀 Chainer 是一个灵活的神经网络框架,它的一个主要目标就是展现灵活性,允许我们用简单直观的方式编写出复...

39913
来自专栏腾讯Bugly的专栏

【新技能get】让App像Web一样发布新版本

背景 当一个App发布之后,突然发现了一个严重bug需要进行紧急修复,这时候公司各方就会忙得焦头烂额:重新打包App、测试、向各个应用市场和渠道换包、提示用户升...

35813
来自专栏练小习的专栏

带你轻松打开svg滤镜的大门

上次和大家一起,用最简单直白,轻松粗暴的方式学习了一遍SVG动画,这次我们再一起来搞点不一样的东西,SVG滤镜的实现。 SVG滤镜绝对称得上是他最强大的功能之一...

1908
来自专栏点滴积累

geotrellis使用(二十二)实时获取点状目标对应的栅格数据值

目录 前言 实现方法 总结 一、前言        其实这个功能之前已经实现,今天将其采用1.0版的方式进行了重构与完善,现将该内容进行总结。        其...

3595
来自专栏黒之染开发日记

【easeljs】显示对象基础 DisplayObject 类

DisplayObject is an abstract class that should not be constructed directly. Inst...

613

扫码关注云+社区