网站首页 > 技术文章 正文
接下来看一下规则引擎执行的过程。这个过程是这样的:
·第一步是将初始化的数据,也是fact对象插入到工作内存里面去。比如前面调用insert方法,section的颜色方法,把out对象插入到工作内存。
·插入进去之后就会使用规则引擎内部使用匹配器,将规则库中的规则和fact对象进行比较,进行模式匹配。
·匹配的过程当中如果执行规则存在冲突,同时激活了多个规则,将冲突的规则放入冲突集合,然后解决冲突。将激活的规则按顺序放入议程。
·最后就是执行议程中的规则。
这样规则是不是就执行了?但是可能还有其他的规则也需要执行,所以要重复这个过程,然后进行比较,一个一个比较,直到所有的规则都匹配成功,执行完成。
在这需要来说一下冲突,因为在进行匹配的时候可能涉及到的fact对象很多,并且规则也很多,就有可能同时有很多规则都激活了,都匹配成功了,这个时候难免就会产生一些冲突,当然不用自己管,内部会自动去解决这些冲突。
把这些冲突解决完之后按照顺序放到议程里面去,最后由执行的引擎execution end来执行。这就是大概的规则引擎内部的执行过程。
猜你喜欢
- 2024-11-16 drools的类型声明(Type declarations)
- 2024-11-16 规则引擎drools-实战个人所得税计算器
- 2024-11-16 基于 Flink 和 Drools 的实时日志处理
- 2024-11-16 开源、强大的工作流引擎:camunda入门介绍
- 2024-11-16 53-SpringBoot整合Drools_2(springboot整合zuul)
- 2024-11-16 开启灵活开发编码模式:规则引擎drools——LHS部分
- 2024-11-16 AI应用企业落地方法论:践行财务共享AI审单项目
- 2024-11-16 开启灵活开发编码模式:规则引擎drools——RHS部分
- 2024-11-16 开启灵活开发编码模式:规则引擎drools——高级语法global
- 2024-11-16 43-drools基础语法(比较操作符_memberof)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)