文档章节

03-drools的控制流

朝花夕拾
 朝花夕拾
发布于 2016/04/13 15:28
字数 262
阅读 39
收藏 0

###1.执行流程

执行流程主要分为2个阶段:
  • Rule Runtime Actions:简单说在执行fireAllRules()之前,都处于这个阶段。
  • Agenda Evaluation:fireAllRules()之后就转至该阶段,这个阶段主要是匹配Rule,然后触发规则。

drools执行流程

###2.控制执行顺序

各Rule的执行顺序默认是arbitrary(任意的),但是大部分场景下我们是需要按照某些顺序执行的,因此drools给Rule提供了一些属性来解决这些问题。

####2.1 Salience 即优先级,可以为正数,负数。数字越大,则优先级越高。 ###2.2 Agenda Groups 即把规则在agenda阶段分组,所有的Group会有栈(Stack)的方式来进行存储。 agenda-group "calculation" 例如,我们有如下的代码:

Agenda agenda = ksession.getAgenda();
agenda.getAgendaGroup( "report" ).setFocus();
agenda.getAgendaGroup( "calculation" ).setFocus();
ksession.fireAllRules();

那么calculation会在report之前执行,同一个group中,会按照Salience优先级执行。 ###2.3 Rule Flow 和Agenda Groups类似,不过这个是属于规则流,类似于工作流,需要额外定义rf文件。

© 著作权归作者所有

朝花夕拾
粉丝 16
博文 9
码字总数 7533
作品 0
深圳
程序员
私信 提问
如何利用Flink实现超大规模用户行为分析

各位晚上好,首先感谢大家参与我的这次主题分享,同时也感谢 InfoQ AI 前线组织这次瀚思科技主题月! 瀚思科技成立于 2014 年,按行业划分我们是一家安全公司。但和大家熟知的卖杀毒软件或者...

吴昊
2017/12/14
0
0
17、Drools——KieHelper的用法,通过模板的例子说明

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013115157/article/details/52029258 章节有说明。这里重点介绍一下 Drools6.4不通过kmodule.xml就可以实现规...

MorganLai
2016/07/25
0
0
12、Drools决策表的定义6.4版本的应用及5.x版本的用法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013115157/article/details/52025744 下面我们说明一下两种方法的写法: 注:以下代码均为5.x版本的写法,至...

MorganLai
2016/07/25
0
0
SpringBoot整合Drools7.0

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013115157/article/details/88413946 SpringBoot相信大家都很熟悉了,这里小编就再进行讲述了,由于现在用S...

MorganLai
03/12
0
0
开源规则流引擎实践

基于 rete 算法的规则引擎 在 AI 领域,产生式系统是一个很重要的理论,产生式推理分为正向推理和逆向推理产生式,其规则的一般形式是:IF 条件 THEN 操作。rete 算法是实现产生式系统中正向...

银月光海
2016/02/18
268
0

没有更多内容

加载失败,请刷新页面

加载更多

只需一步,在Spring Boot中统一Restful API返回值格式与统一处理异常

统一返回值 在前后端分离大行其道的今天,有一个统一的返回值格式不仅能使我们的接口看起来更漂亮,而且还可以使前端可以统一处理很多东西,避免很多问题的产生。 比较通用的返回值格式如下:...

晓月寒丶
昨天
59
0
区块链应用到供应链上的好处和实际案例

区块链可以解决供应链中的很多问题,例如记录以及追踪产品。那么使用区块链应用到各产品供应链上到底有什么好处?猎头悬赏平台解优人才网小编给大家做个简单的分享: 使用区块链的最突出的优...

猎头悬赏平台
昨天
28
0
全世界到底有多少软件开发人员?

埃文斯数据公司(Evans Data Corporation) 2019 最新的统计数据(原文)显示,2018 年全球共有 2300 万软件开发人员,预计到 2019 年底这个数字将达到 2640万,到 2023 年达到 2770万。 而来自...

红薯
昨天
65
0
Go 语言基础—— 通道(channel)

通过通信来共享内存(Java是通过共享内存来通信的) 定义 func service() string {time.Sleep(time.Millisecond * 50)return "Done"}func AsyncService() chan string {retCh := mak......

刘一草
昨天
58
0
Apache Flink 零基础入门(一):基础概念解析

Apache Flink 的定义、架构及原理 Apache Flink 是一个分布式大数据处理引擎,可对有限数据流和无限数据流进行有状态或无状态的计算,能够部署在各种集群环境,对各种规模大小的数据进行快速...

Vincent-Duan
昨天
60
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部