摘要:
1、背景 在项目中,我们经常使用到update语句,那么update语句会锁定表中的那些记录呢?此处我们通过一些简单的案例来模拟下。此处是我自己的一个理解,如果那个地方理解错了,欢迎指出 2、前置知识 2.1 数据库的隔离级别 mysql> show variables like 'transact 阅读全文
摘要:
一、背景 本文简单记录一下,在mac arm 架构下使用 Vmware Fusion虚拟机下Centos7下如何配置静态ip地址。如果使用dhcp静态ip地址的动态分配,那么可能ip地址会发生变化,因此需要使用静态ip地址。 二、实现功能 虚拟机内部使用静态ip地址。 虚拟机可以访问到外部网络。 三 阅读全文
摘要:
一、背景 在之前的文章中,我们的业务规则都是写在了drl文件中,这对开发人员来说是没有什么问题,如果是业务人员则不怎么友好,这篇文章我们简单学习一下drools中决策表的使用,规则是写在excel文件中。 二、一个简单的决策表 在上面这个图中ResultSet和ResultTable是必须的,而且同 阅读全文
摘要:
1、背景 在之前的章节中,我们的drools规则文件都是在src/main/resources目录下写死的,这样不够灵活。假设我想在程序运行的过程中,动态去修改规则,这样就不好实现。此处我们将规则文件保存到数据库中,实现规则的动态加载、刷新。 2、前置知识 1、如何动态构建出一个kmodule.xm 阅读全文
摘要:
1、背景 此处主要记录一下2个小的知识点,防止以后忘记。 1、如何在drools中执行某个drl文件。 2、如果我们的规则是一个String类型的字符串,那么该如何执行。 2、实现 2.1 执行指定的drl文件 KieHelper kieHelper = new KieHelper(); // 获取 阅读全文
摘要:
1、背景 在之前的文章中,我们学习了drools的一些基本语法,在这篇文章中,我们实现在SpringBoot中集成drools。 2、需求 我们需要在drools中判断用户是否可以玩游戏。 规则一:如果用户的年龄age>=18,则可以玩游戏。 规则二:如果用户的年龄age<18,则不可以玩游戏。 3 阅读全文
摘要:
1、背景 在我们开发的过程中,可能一个场景需要写多个规则,但是某些规则和别的规则又是互斥的关系。即某个规则成立时,不管其余的规则是否成立,其余的规则都不在执行。那么这种场景该如何处理呢? 2、需求 假设我们有三个规则 rule-01、rule-02和rule-03,当rule-02执行后,那么rul 阅读全文
摘要:
1、背景 在我们编写drools规则文件的过程中,可能会编写好多规则。drools引擎在模式匹配的时候,可能一下子激活了好多规则,但是我只想执行某个指定的规则,那么这个时候该怎么操作呢? 2、方案 2.1 通过AgendaFilter来实现 我们知道,在drools模式匹配的时候,会将所有的规则进行 阅读全文
摘要:
1、背景 此处介绍一下drools中then部分的写法,以及一些内置的方法,比如insert/delete/modify等等。同时也介绍一下rule的继承,和在when中实现if else if 等操作。 2、支持的方法 drools提供了一些内置的方法,这些方法会修改drools的工作内存中Fac 阅读全文
摘要:
1、介绍 此篇文章主要记录一下 drools 中的模式(patterns)和约束(constraints)以及when中条件的写法。 2、语法结构 3、模式例子 3.1 单个对象匹配 rule "工作内存中只要有Person对象就执行,存在多个执行多次" when Person() then Sys 阅读全文