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

kbase的属性:

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

ksession的属性:

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

关注微信公众

程序新视界

更多技术、架构、管理等知识分享,请关注微信公众号:程序新视界(ID:ershixiong_see_world)



(第三章)Drools规则引擎系列之《kmodule.xml解析》插图1

关注公众号:程序新视界,一个让你软实力、硬技术同步提升的平台

除非注明,否则均为程序新视界原创文章,转载必须以链接形式标明本文链接

本文链接:http://choupangxia.com/2019/07/06/%ef%bc%88%e7%ac%ac%e4%b8%89%e7%ab%a0%ef%bc%89drools%e8%a7%84%e5%88%99%e5%bc%95%e6%93%8e%e7%b3%bb%e5%88%97%e4%b9%8b%e3%80%8akmodule-xml%e8%a7%a3%e6%9e%90%e3%80%8b/