Drools:第3章 3.2 KIE API解析

简介: Drools:第3章 3.2 KIE API解析

image.png

3.2.4 KieServices

该接口提供了很多方法,可以通过这些方法访问KIE关于构建和运行的相关对象,比如说可以获取KieContainer,利用KieContainer来访问KBase和KSession等信息;可以获取KieRepository对象,利用KieRepository来管理KieModule等。

KieServices就是一个中心,通过它来获取的各种对象来完成规则构建、管理和执行等操作。

3.2.5 KieContainer

可以理解KieContainer就是一个KieBase的容器。提供了获取KieBase的方法和创建KieSession的方法。其中获取KieSession的方法内部依旧通过KieBase来创建KieSession。

3.2.6 KieBase

KieBase就是一个知识仓库,包含了若干的规则、流程、方法等,在Drools中主要就是规则和方法,KieBase本身并不包含运行时的数据之类的,如果需要执行规则KieBase中的规则的话,就需要根据KieBase创建KieSession。

3.2.7 KieSession

KieSession就是一个跟Drools引擎打交道的会话,其基于KieBase创建,它会包含运行时数据,包含“事实Fact”,并对运行时数据实时进行规则运算。通过KieContainer创建KieSession是一种较为方便的做法,其本质上是从KieBase中创建出来的。KieSession就是应用程序跟规则引擎进行交互的会话通道。

创建KieBase是一个成本非常高的事情,KieBase会建立知识(规则、流程)仓库,而创建KieSession则是一个成本非常低的事情,所以KieBase会建立缓存,而KieSession则不必。

3.2.8 KieRepository

KieRepository是一个单例对象,它是存放KieModule的仓库,KieModule由kmodule.xml文件定义(当然不仅仅只是用它来定义)。

3.2.9 KieProject

KieContainer通过KieProject来初始化、构造KieModule,并将KieModule存放到KieRepository中,然后KieContainer可以通过KieProject来查找KieModule定义的信息,并根据这些信息构造KieBase和KieSession。

3.2.10 ClasspathKieProject

ClasspathKieProject实现了KieProject接口,它提供了根据类路径中的META-INF/kmodule.xml文件构造KieModule的能力,是基于Maven构造Drools组件的基本保障之一。意味着只要按照前面提到过的Maven工程结构组织我们的规则文件或流程文件,只用很少的代码完成模型的加载和构建。

3.2.11 kmodule.xml

kmodule的简单配置规则在上面的实例中已经简单介绍,下面具体介绍具体的配置。

kbase的属性:

属性名 默认值 合法的值 描述
name none any KieBase的名称,这个属性是强制的,必须设置。
includes none 逗号分隔的KieBase名称列表 意味着本KieBase将会包含所有include的KieBase的rule、process定义制品文件。非强制属性。
packages all 逗号分隔的字符串列表 默认情况下将包含resources目录下面(子目录)的所有规则文件。也可以指定具体目录下面的规则文件,通过逗号可以包含多个目录下的文件。
default false true, false 表示当前KieBase是不是默认的,如果是默认的话,不用名称就可以查找到该KieBase,但是每一个module最多只能有一个KieBase。
equalsBehavior identity identity,equality 顾名思义就是定义“equals”(等于)的行为,这个equals是针对Fact(事实)的,当插入一个Fact到Working Memory中的时候,Drools引擎会检查该Fact是否已经存在,如果存在的话就使用已有的FactHandle,否则就创建新的。而判断Fact是否存在的依据通过该属性定义的方式来进行的:设置成 identity,就是判断对象是否存在,可以理解为用==判断,看是否是同一个对象; 如果该属性设置成 equality的话,就是通过Fact对象的equals方法来判断。
eventProcessingMode cloud cloud, stream 当以云模式编译时,KieBase将事件视为正常事实,而在流模式下允许对其进行时间推理。
declarativeAgenda disabled disabled,enabled 这是一个高级功能开关,打开后规则将可以控制一些规则的执行与否。

ksession的属性:

属性名 默认值 合法的值 描述
name none any KieSession的名称,该值必须唯一,也是强制的,必须设置。
type stateful stateful, stateless 定义该session到底是有状态(stateful)的还是无状态(stateless)的,有状态的session可以利用Working Memory执行多次,而无状态的则只能执行一次。
default false true, false 定义该session是否是默认的,如果是默认的话则可以不用通过session的name来创建session,在同一个module中最多只能有一个默认的session。
clockType realtime realtime,pseudo 定义时钟类型,用在事件处理上面,在复合事件处理上会用到,其中realtime表示用的是系统时钟,而pseudo则是用在单元测试时模拟用的。
beliefSystem simple simple,defeasible, jtms 定义KieSession使用的belief System的类型。


目录
相关文章
|
2月前
|
人工智能 自然语言处理 算法
AI与API结合:自动解析商品描述+情感分析评论数据
AI与API深度融合正在重塑电商运营模式。通过自动解析商品描述、分析评论情感,企业可实现信息标准化、用户画像精准化及运营决策自动化。本文从技术架构、核心算法、实战案例三方面,详解AI如何驱动电商智能化升级。
|
2月前
|
JSON 数据挖掘 API
闲鱼商品列表API响应数据python解析
闲鱼商品列表API(Goodfish.item_list)提供标准化数据接口,支持GET请求,返回商品标题、价格、图片、卖家信息等。适用于电商比价、数据分析,支持多语言调用,附Python示例代码,便于开发者快速集成。
|
2月前
|
JSON 自然语言处理 API
闲鱼商品详情API响应数据python解析
闲鱼商品详情API(goodfish.item_get)通过商品ID获取标题、价格、描述、图片等信息,支持Python等多语言调用。本文提供Python请求示例,包含请求构造与数据处理方法。
|
2月前
|
JSON 搜索推荐 API
小红书笔记详情API响应数据解析
小红书开放平台提供笔记详情API,支持获取笔记内容、互动数据及用户信息,适用于品牌营销与市场分析。接口支持HTTP GET/POST请求,返回JSON格式数据。需申请权限并替换参数如note_id与access_token。附Python请求示例,建议添加异常处理。
|
2月前
|
供应链 监控 API
亚马逊商品详情API响应数据解析
本教程介绍如何使用亚马逊商品详情API(如Product Advertising API或SP-API),通过ASIN或关键词查询商品信息。支持获取价格、库存、评价等50多个字段,适用于价格监控、竞品分析和供应链管理。提供Python请求示例代码,实现商品数据安全高效获取。
|
2月前
|
JSON API 数据格式
速卖通商品列表API响应数据解析
速卖通商品列表API支持通过关键词、分类、价格等条件批量获取商品数据,适用于比价、爆款挖掘等场景。提供HTTP GET/POST请求方式,返回JSON格式数据,支持分页与多字段排序。
|
2月前
|
JSON API 数据格式
微店商品列表API响应数据python解析
微店商品列表API为开发者提供稳定高效获取商品信息的途径,支持HTTP GET/POST请求,返回JSON格式数据,含商品ID、名称、价格、库存等字段,适用于电商数据分析与展示平台搭建等场景。本文提供Python调用示例,助您快速上手。
|
2月前
|
监控 API 数据处理
淘宝商品详情API响应数据解析的详细说明
本内容介绍了淘宝商品详情API的调用与数据解析方法,涵盖商品基础信息、价格、库存、规格、促销、物流等关键数据的获取方式。提供了核心接口如taobao.item.get、taobao.itemprops.get、taobao.item.sku.get的功能说明及Python请求示例,适用于跨平台数据整合、价格监控、自动化运营等场景,并提示了字段兼容性、错误处理及数据更新等注意事项。
|
2月前
|
JSON 缓存 监控
1688商品详情API实时数据解析的示例
1688商品详情API可实时获取商品标题、价格、规格、库存等核心数据。通过商品ID调用接口,支持解析基础信息、SKU规格、卖家与物流详情。提供Python调用示例与完整数据解析逻辑,适用于采购比价、供应商监控等场景,确保数据精准获取与处理。
|
2月前
|
JSON 监控 算法
1688商品列表API响应数据解析
1688商品列表API是阿里巴巴开放平台的核心接口,支持通过关键词、价格、类目等多维度筛选商品,返回商品标题、价格、销量等信息,适用于电商数据分析与竞品监控。接口采用RESTful设计,响应快、数据实时更新。本文提供Python调用示例,助您快速接入。

热门文章

最新文章

推荐镜像

更多
  • DNS