首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

规则引擎Drools在贷后催收业务中的应用

本篇文章主要介绍了规则引擎的概念以及Kie和Drools的关系,重点讲解了Drools规则文件编写以及匹配算法Rete原理。文章的最后为大家展示了规则引擎在催收系统中是如何使用的,主要解决的问题等。...2.1.2 Drools介绍Drools 的基本功能是将传入的数据或事实与规则的条件进行匹配,并确定是否以及如何执行规则。...global通过 KIE 会话配置在 Drools 引擎的工作内存中设置全局值,在 DRL 文件中的规则上方声明全局变量,然后在规则的操作 ( then) 部分中使用它。...Rete算法可以分为两部分:规则编译和运行时执行。编译算法描述了如何处理生产内存中的规则生成有效的决策网络。在非技术术语中,决策网络用于在数据通过网络传播对其进行过滤。...最后结合催收系统大家讲解了Drools在催收系统中是如何使用的。通过规则引擎的引入让开发人员不再需要参与到规则的开发与维护中来,极大节约了开发成本。

1.3K20
您找到你想要的搜索结果了吗?
是的
没有找到

Drools二】打工人学习Drools基础语法

后面将规则文件放入该文件夹中。 1. 规则文件 1.1 构成 在使用Drools非常重要的一个工作就是编写规则文件,通常规则文件的后缀为.drl。...如果定义了绑定变量名,就可以在规则体的RHS部分使用此绑定变量名来操作相应的Fact对象。 Field约束部分是需要返回true或者false的0个或多个表达式。...那么如果我们只想执行其中的某个规则如何实现呢? Drools给我们提供的方式是通过规则过滤器来实现执行指定规则。...mvel表达式内容包括属性表达式,布尔表达式,方法调用,变量赋值,函数定义等。 4.3 salience属性 salience属性用于指定规则的执行优先级,取值类型为Integer。...建议在编写规则使用salience属性明确指定执行优先级。

1.9K20

Drools7.0.0.Final规则引擎教程》番外实例篇——Map使用案例

背景 技术交流群中,不少朋友在问,如何Drools规则文件中使用Map。今天就用实例带大家了解一下map的使用方法。...下面看一下规则代码: package com.rules import java.util.Map; import com.secbro.drools.model.Person; rule "map-usage...另外就是map定义一个变量,获取了map中key为p1的对象,并比较p1这个对象与$obj对象是否相当,不相等的话满足条件。在上面的过程中实现了一种从map获取对象的方法。...然后再看一下RHS部分,直接使用get方法从map中获取值,并强转为原始的对象,调用对象的对应方法。...目前国内第一套关于Drools(7)的入门教程《Drools 7 规则引擎入门教程》正在火热录制中,其他更多关于Drools的系列教程也在筹划中,希望大家多多支持。

1.3K80

规则引擎深度对比,LiteFlow vs Drools

规则驱动角色流转。 两款框架的异同点 Drools和LiteFlow都是优秀的开源框架,都能把业务中的逻辑剥离出来。并且拥有自己表达式语法。...所以评判一个规则引擎是否合格的主要因素有: 有没有灵活的规则表达式来支持 规则和Java之间能否非常方便的联动 API调用是否方便,和各种场景系统的集成如何 侵入性耦合比较 规则的学习成本,是否容易上手...来看下drl文件的大体样子: drl文件 可以看到,Drools定义规则的方式是一个规则一段,有明确的when...then,表示当满足什么条件,做什么。...结论 考虑到使用eclipse的人几乎很少了,基本上2款规则引擎在语言插件上都做到了。 规则的存储 Drools规则理论上支持你的规则存于任何地方,但这一切都需要你手动去额外完成。...「结论」 LiteFlow的规则存储支持比Drools丰富的多。 规则的变更能否实时改变逻辑 Drools热刷新规则的方式现在看起来有点傻,它的规则是通过生成jar的方式。

2.9K40

drools规则动态化实践

复杂规则,需要动态生成规则,easycode目前还不支持。drools从流行度及活跃度考虑,都比easy-rule强,所以选择drools。...但是,这样并不能满足我们线上化判断,或者频繁更改规则的诉求。于是我们在实践中需要对drools更高阶的使用方式。...四、 drools动态化实践 从以上简单demo中我们可以看出,规则依赖drl文件存在。而业务实际使用中,需要动态对规则进行修改,无法直接使用drl文件。...自己拼装String,动态生成drl文件,网上大多数博文使用方式,过于原始。 api方式,drools的api方式复杂,使用需要对drl文件有足够的了解。...五、 总结 从上边的流程中我们体验了动态规则的创建以及使用。动态规则满足了我们规则动态变化,规则统一管理的诉求。 我也总结了在这种使用方式下drools的几个优缺点。

16810

规则引擎 - drools 使用讲解(简单版) - Java

生成drl规则文件; 用户侧有相关请求到达,服务端加载规则文件(可能是多个,一般一个广告、活动对应一个规则文件),并通过引擎去检查当前用户各种状态是否满足规则文件; 将所有满足的规则文件对应的广告、活动进行下发...,当然了为了更加极致的抽象,通常还需要对规则中的一些可配条件(大于、小于、等于、范围、次数等)也提取到数据库中,这样在现有规则不满足要求,可以直接通过更改数据库的对应规则表来完善,同样不需要改代码;...我们当时的需求主要就是广告、活动下发规则比较多,广告也是各式各样,因此去调研了drools,对drools也没有过多的挖掘其更多特性,因此还需要大家的指点; drools简单使用 服务端项目中使用drools...比如生成 music.drl 的音乐规则文件,这一步是可选的,区别在于规则文件的生成是代码生成,还是人工生成,我们的项目中是运维同学在后台管理界面通过一些图形化输入框输入一些指定参数,而生成规则文件是服务端代码生成的...} } 小结 本文通过对drools的简单使用步骤的讲解,为大家展示了drools最简单的使用方式,而它能做到的远远不止看到的这些,但是基本框架是这样,大家可以尝试挖掘规则文件的一些黑操作,可以对多变的业务进行极致的抽象

1.7K31

Java规则引擎drools:drt动态生成规则并附上具体项目逻辑

,spring-security,spring-jpa,webjars,Aspect 这次就来整合drools的动态生成规则(drt)。...二 开发目的 为什么写规则引擎要做到动态生成规则呢?...中国人看不懂drools的决策表,更不会根据workbench生成决策表。 于是,第一版drool的系统上线了之后,在需求的意见下,我们要搞个降智的后台操作系统。...然后,再根据网上各处资源的魔改,我们规则引擎升级成动态生成规则文件的,这也是我要拿来做例子的 四 代码讲解 我一直是代码即文档的伪支持者,所以大家吧项目clone下来观看更佳。...规则引擎其实就是规则的加载,规则使用。(动态的规则引擎的规则加载,还要实现规则生成。) 也就是loadRule和useRule。

2.6K20

Drools(BRMS) 速成教程(上)

: 3.1 package部分 这个是用来管理包的,跟java的package概念类似,多个rule文件,可以按包来管理rule代码。...3.2 import drl 规则文件中,可以直接使用java定义好的类,只需要import进来就好。...3.3 global 相当于全局变量声明,多个规则文件中可共享该变量(后面会演示这一用法),要注意的是:共享全局变量建议不要用Integer这种"简单"类型,这样无法在规则文件中修改变量的"值",建议用复杂类型...一个项目里,可以同时有多个规则文件,还可以再加一个hello2.drl,演示共享变量 package com.cnblogs.yjmyzz.drools; import com.cnblogs.yjmyzz.drools.demo.model.Message...部分,一般是在规则触发前提前把共享变量先设置好初始值,最终输出如下: hi,杨过, welcome to drools //规则:say-hi bye bye ,姑姑 //规则:say-goodbye

1K20

Drools三】打工人学习Drools高级语法

语法结构为:global 对象类型 对象名称 在使用global定义的全局变量时有两点需要注意: 1、如果对象类型为包装类型,在一个规则中改变了global的值,那么只针对当前规则有效,对其他规则中的...可以理解为它是当前规则代码中的global副本,规则内部修改不会影响全局的使用。 2、如果对象类型为集合类型或JavaBean,在一个规则中改变了global的值,对java代码和所有规则都有效。...Drools规则体中的LHS部分可以使用in或者not in进行复合值的匹配。...两者的区别:当向Working Memory中加入多个满足条件的Fact对象使用了exists的规则执行一次,不使用exists的规则会执行多次。...每个规则最好都加上salience属性,明确执行顺序 Drools默认dialect为"Java",尽量避免使用dialect “mvel” 参考资料 1.Drools5规则引擎开发教程

2.4K10

工作流引擎activiti和jbpm哪个比较好

之前在选择工作流引擎曾经在activiti和jbpm之间有过比较,当时做出的决定是使用jbpm,但实际开发过程中发现这个选择是不合适的。...通过Activiti的平台可以根据这些设置去生成表单,但如果不使用其平台只使用引擎的话,也支持通过它来表达与第三方表单的关系。这些表单设置的元数据信息也可以通过接口去获取。...总结: JBPM5,JBPM6使用drools规则引擎来实现工作流引擎听起来是一个很酷的概念,但JBPM开发团队显然没有很好地去掌控好整个架构的变化。...因此选择activiti作为工作流引擎至少在可见的几年间都是正道,今后需要实现规则,再单独引入drools工具包,相信drools会是一个比JBPM靠谱的工具。...(包括会签变量、按钮变量、表单变量)以及各节点属性优化,遵循以使用者为中心的优化原则,将整个流程的操作变得简单、快捷,实现0基础短时间可自由编辑流程模板。

2.3K20

小明历险记:规则引擎Drools教程一

小明的烦恼 活动规则是根据用户购买订单的金额用户送相应的积分,购买的越多送的积分越多,用户可以使用积分来兑换相应的商品,我们这次活动的力度很大,肯定会吸引很多的用户参加,产品经理小王兴高采烈唾液横飞的对小明讲到...因此一个完整的业务规则包括了条件和触发操作两部分内容。而引擎是事物内部的重要的运行机制,规则引擎即重点是解决规则如何描述,如何执行,如何监控等一系列问题。...Drools允许使用声明方式表达业务逻辑。可以使用非XML的本地语言编写规则,从而便于学习和理解。并且,还可以将Java代码直接嵌入到规则文件中,这令Drools的学习更加吸引人。...Drools通过事实、规则和模式相互组合来完成工作,Drools在开源规则引擎中使用率最广,但是在国内企业使用偏少,保险、支付行业使用稍多。...解决小明的烦恼 Drools有专门的规则语法drl,就是专门描述活动的规则如何执行的,按照小明的需求规则如下: Point-rules.drl 文件内容 package rules import com.neo.drools.entity.Order

1K30

Google Aviator——轻量级 Java 表达式引擎实战

表达式引擎技术及比较Drools 简介Drools(JBoss Rules )是一个开源业务规则引擎,符合业内标准,速度快、效率高。...目前,Drools提供了三种语义模块Python模块Java模块Groovy模块Drools规则是写在drl文件中。...是一个高性能的规则引擎,但是设计的使用场景和在本次测试中的场景并不太一样,Drools的目标是一个复杂对象比如有上百上千的属性,怎么快速匹配规则,而不是简单对象重复匹配规则,因此在这次测试中结果垫底。...Aviator会把表达式编译成字节码,然后代入变量再执行,整体上性能做得很好。...,生成一些匿名类,然后返回编译结果 Expression 实例, execute 方法会继续调用 Expression#execute(env) 执行。

2.9K30

Drools7.0.0.Final规则引擎教程》第4章 4.1 规则文件

分开放置,当规则变动不至于影响到不相干的业务。读取构建规则的成本业务会相应减少。...比如,上面实例中package的定义: package com.rules import:导入规则文件需要的外部变量使用方法跟java相同。...可以使用LHS部分定义的变量名、设置的全局变量、或者是直接编写Java 代码。...RHS部分可以直接编写Java代码,但不建议在代码当中有条件判断,如果需要条件判断,那么需要重新考虑将其放在LHS部分,否则就违背了使用规则的初衷。...利用这些函数可以实现对当前Working Memory中的Fact对象进行新增、修改或删除操作;如果还要使用Drools提供的其它方法,可以使用另一个外宏对象drools,通过该对象可以使用更多的方法;

91150

从零搭建精准运营系统

早期方案.png 早期方案存在以下痛点 至少两次跨部门沟通配合成本,周期被拉长 非实时消息推送,无法实现基于用户行为的实时推送场景 非实时效果验证,无法及时调整运营策略 系统搭建的目标 需要定义规则,提供可视化界面业务人员动态配置...下面重点看下kafka connector和Elasticsearch如何使用 kafka connector kafka connector有Source和Sink两种组件,Source的作用是读取数据到...规则引擎 在设计规则引擎前,我们对业界已有的规则引擎,主要包括Esper, Drools, Flink CEP,进行了初步调研。...Drools Fusion Drools开始于规则引擎,后引入Drools Fusion模块提供CEP的功能。 优势: 功能较为完善,具有如系统监控、操作平台等功能。...,开发基于json的自定义规则规则类似下面例子: { "batchId": "xxxxxxxx", //流水号,创建每条运营规则生成 "type": "trigger", /

1.7K30

OptaPlanner 基本概念 - 规划问题, 约束,方案

什么是Optaplanner   其实这个名称是作者将这个引擎贡献给了Jboss社区后,才使用的名,之前叫做Drools planner。...没错,它就是结合Drools(一个开源规则引擎)一起应用的(也可以单独使用),Drools在这里的作用主要是用来作编写计分脚本,事实上完全可以抛开Drools,直接使用Optaplanner自己的API...,找出一个相对最优化的方案出来返回用户。...当然,当你需要一个独立的,具有良好扩展性的规划服务组件,可以直接使用Optaplanner建立自己的规划服务器,通过Spring等框架,对外提供规划服务。   ...约束就是根据业务规则抽象出来,针对规划变量,在求解规划问题时候的一种限制,或惩罚机制。也就是说,约束是用来制约引擎对规划变量赋值行为的。例如一个人不可能有超过24个小时的可用时间。

1.9K01

Drools6.4 中文文档》第1章1.3(完)

使用Eclipse插件是非必须的。规则文件只是文本输入(或电子表格),IDE(又称Rule Workbench)只是一个便利的工具。规则引擎已经被通过各种方式整合,没有一个可以适用所有场景的。...通过drools-compiler来生产规则包,而不是修改程序。然后,部署这些规则包到运行时系统。运行时系统只需要drools-core.jar和knowledge-api来执行。...另一种选择是使用JBoss IDE,所有需要的插件已经预先打包,也可以选择其他的工具来分离规则。你可以选择安装规则从JBoss IDE附带的“包”。...操作完这一步,然后就可以安装规则插件。 1.3.1.4.2 使用zip文件安装GEF 使用zip文件安装,下载、解压zip文件。在zip文件中找到插件目录和插件自身所需jar包。...当使用mvn install命令,所有项目依赖将被下载,添加到本地maven库。Eclipse无法直接找到它们,除非告诉它资源库的位置,设置M2_REPO环境变量

1.4K40

普通企业的规划类项目中,OptaPlanner更适合作为APS的规划优化引擎

使用约束求解器实现求解,其中关键的步骤是问题进行建模。建模过程其实是把业务场景中的参数、变量规则和优化目标等要素,转化成可被规划引擎识别,并运算的优化模型。...其二,必须具备丰富的分析与抽象经验,掌握各种业务场景下的规则与要求,知道各种业务案例与要求,应该如何归纳成APS系统中的业务实体,规则约束和优化目标。...Drools是一个开源的规则引擎(注意:Drools规则引擎,OptaPlanner是规划引擎,它们同属于开源项目KIE),它具有自己的语法、语义和表达方式。...在OptaPlanner中,它是起到规则判断作用。但这种规则引擎在普通企业中,使用并不多。因此,对于IT设计、开发人来说,需要掌握Drools也需要一定的学习成本。...但根据OptaPlanner项目的发展趋势力来看,未来将会摆脱对Drools的依赖。其实现在也可以完全摆脱Drools,而完全使用Java来实现规则与约束的表达。

2.3K00

Java规则引擎drools:drt动态生成规则并附上具体项目逻辑

,spring-security,spring-jpa,webjars,Aspect 这次就来整合drools的动态生成规则(drt)。...二 开发目的 为什么写规则引擎要做到动态生成规则呢?...中国人看不懂drools的决策表,更不会根据workbench生成决策表。 于是,第一版drool的系统上线了之后,在需求的意见下,我们要搞个降智的后台操作系统。...然后,再根据网上各处资源的魔改,我们规则引擎升级成动态生成规则文件的,这也是我要拿来做例子的 四 代码讲解 我一直是代码即文档的伪支持者,所以大家吧项目clone下来观看更佳。...规则引擎其实就是规则的加载,规则使用。(动态的规则引擎的规则加载,还要实现规则生成。) 也就是loadRule和useRule。

4.9K60
领券