首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

一种规则引擎的执行方法、存储介质和服务器 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:平安科技(深圳)有限公司

摘要:本发明提供了一种规则引擎的执行方法、存储介质和服务器,包括:监控业务逻辑的调用接口;若监测到所述调用接口被调用,触发所述业务逻辑的第一事件触发点;用于在所述业务逻辑执行之前触发在第一引擎规则库中事件规则的查询操作;基于所述第一事件触发点,在第一引擎规则库中查询所述业务逻辑是否存在对应的事件规则;根据所述在第一引擎规则库中的查询结果执行所述业务逻辑;若所述业务逻辑执行完毕,触发所述业务逻辑的第二事件触发点;基于所述第二事件触发点,在第二引擎规则库中查找所述业务逻辑是否存在对应的事件规则;根据所述在第二引擎规则库中的查询结果返回所述业务逻辑的执行结果。本发明将业务逻辑与引擎的事件规则分离,可降低引擎重构风险,提高开发效率。

主权项:1.一种规则引擎的执行方法,其特征在于,包括:监控业务逻辑的调用接口;将需在所述业务逻辑执行之前执行处理的事件规则存放于第一引擎规则库中;若监测到所述调用接口被调用,触发所述业务逻辑的第一事件触发点,所述第一事件触发点用于在所述业务逻辑执行之前触发在所述第一引擎规则库中事件规则的查询操作;基于所述第一事件触发点,在第一引擎规则库中查询所述业务逻辑是否存在对应的事件规则;若在所述第一引擎规则库中查找到所述业务逻辑对应的事件规则,则执行所述事件规则定义的处理逻辑;在执行完所述事件规则定义的处理逻辑后,执行所述业务逻辑;若在所述第一引擎规则库中未查询到所述业务逻辑对应的事件规则,则直接执行所述业务逻辑,包括:若所述第一引擎规则库中所述业务逻辑对应的事件规则有多个,获取所述业务逻辑对应的事件规则的优先指数;按所述优先指数从高到低依次执行所述业务逻辑对应的事件规则定义的处理逻辑;所述若所述第一引擎规则库中所述业务逻辑对应的事件规则有多个,获取所述业务逻辑对应的事件规则的优先指数,包括:获取所述业务逻辑对应的多个事件规则之间的依赖关系,所述依赖关系是指一事件规则的执行触发依赖于另一事件规则的执行;根据如下公式计算事件规则的优先指数PriDegi: ;其中,ωi表示所述事件规则i对应的预设权值,L为整数,表示所述事件规则i被依赖的事件规则的数量,L≥0,rely_λl表示所述事件规则i被依赖的事件规则的数量为l时对应的依赖权值,0≤l≤L,N为所述业务逻辑对应的事件规则数,N为正整数,为任意一个实现从到映射的单调递增函数;若所述业务逻辑执行完毕,触发所述业务逻辑的第二事件触发点,所述第二事件触发点用于在所述业务逻辑执行完毕之后触发在第二引擎规则库中事件规则的查询操作,所述第二引擎规则库中存放的事件规则在所述业务逻辑执行之后执行;基于所述第二事件触发点,在所述第二引擎规则库中查找所述业务逻辑是否存在对应的事件规则;根据所述在第二引擎规则库中的查询结果返回所述业务逻辑的执行结果。

全文数据:一种规则引擎的执行方法、存储介质和服务器技术领域本发明涉及计算机应用技术领域,尤其涉及一种规则引擎的执行方法、存储介质和服务器。背景技术复杂企业级项目的开发和维护面临着软件必须“随需而变”的问题。由于随外部条件和需求经常变动的商业决策和业务逻辑被固化在代码中,这使得软件的开发和维护变得异常困难,耗费大量的时间和成本,因此迫切需要分离企业决策者的决策逻辑和应用开发者的技术决策,将这些企业决策者的决策逻辑放在中心数据库或者其他的地方,让他们能在运行时可以动态地被管理和被修改,从而提高软件系统的柔性和适应性。在这样的动态环境中,规则引擎应运而生,规则引擎能够增加软件的可维护性,为软件提供可供用户直接修改业务逻辑的功能,使得软件项目不会因为维护成本太高而难以运行。过去在规则引擎的使用上,很多时候都是在代码中显式的调用规则引擎,并执行规则,每个点需要调用什么规则都是写死在代码中的,这样的弊端在于:调用规则引擎的逻辑比较分散,重构风险大,从而导致开发效率不高。发明内容本发明实施例提供了一种规则引擎的执行方法、存储介质和服务器,以解决现有技术中,调用规则引擎的逻辑比较分散,重构风险大,从而导致开发效率不高的问题。本发明实施例的第一方面提供了一种规则引擎的执行方法,包括:监控业务逻辑的调用接口;若监测到所述调用接口被调用,触发所述业务逻辑的第一事件触发点,所述第一事件触发点用于在所述业务逻辑执行之前触发在第一引擎规则库中事件规则的查询操作;基于所述第一事件触发点,在第一引擎规则库中查询所述业务逻辑是否存在对应的事件规则;根据所述在第一引擎规则库中的查询结果执行所述业务逻辑;若所述业务逻辑执行完毕,触发所述业务逻辑的第二事件触发点,所述第二事件触发点用于在所述业务逻辑执行完毕之后触发在第二引擎规则库中事件规则的查询操作;基于所述第二事件触发点,在第二引擎规则库中查找所述业务逻辑是否存在对应的事件规则;根据所述在第二引擎规则库中的查询结果返回所述业务逻辑的执行结果。本发明实施例的第二方面提供了一种服务器,包括存储器以及处理器,所述存储器存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如下步骤:监控业务逻辑的调用接口;若监测到所述调用接口被调用,触发所述业务逻辑的第一事件触发点,所述第一事件触发点用于在所述业务逻辑执行之前触发在第一引擎规则库中事件规则的查询操作;基于所述第一事件触发点,在第一引擎规则库中查询所述业务逻辑是否存在对应的事件规则;根据所述在第一引擎规则库中的查询结果执行所述业务逻辑;若所述业务逻辑执行完毕,触发所述业务逻辑的第二事件触发点,所述第二事件触发点用于在所述业务逻辑执行完毕之后触发在第二引擎规则库中事件规则的查询操作;基于所述第二事件触发点,在第二引擎规则库中查找所述业务逻辑是否存在对应的事件规则;根据所述在第二引擎规则库中的查询结果返回所述业务逻辑的执行结果。本发明实施例的第三方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如下步骤:监控业务逻辑的调用接口;若监测到所述调用接口被调用,触发所述业务逻辑的第一事件触发点,所述第一事件触发点用于在所述业务逻辑执行之前触发在第一引擎规则库中事件规则的查询操作;基于所述第一事件触发点,在第一引擎规则库中查询所述业务逻辑是否存在对应的事件规则;根据所述在第一引擎规则库中的查询结果执行所述业务逻辑;若所述业务逻辑执行完毕,触发所述业务逻辑的第二事件触发点,所述第二事件触发点用于在所述业务逻辑执行完毕之后触发在第二引擎规则库中事件规则的查询操作;基于所述第二事件触发点,在第二引擎规则库中查找所述业务逻辑是否存在对应的事件规则;根据所述在第二引擎规则库中的查询结果返回所述业务逻辑的执行结果。本发明实施例中,通过设置事件触发点,在事件触发点被触发时才查询并执行业务逻辑对应的事件规则,将引擎的事件规则与业务逻辑分离,在事件规则需要修改时,开发人员无需修改所有的业务逻辑代码,只需直接修改事件规则,降低了开发难度与引擎重构的风险,同时,本方案设置两个事件触发点,第一事件触发点用于在所述业务逻辑执行之前触发在第一引擎规则库中事件规则的查询操作,第二事件触发点用于在所述业务逻辑执行完毕之后触发在第二引擎规则库中的事件规则查询,在所述业务逻辑执行前后分别进行事件规则的查找与执行,以保证事件规则执行的准确性与有效性,从而提高开发效率。附图说明为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1是本发明实施例提供的规则引擎的执行方法的实现流程图;图2是本发明实施例提供的规则引擎的执行方法S102的具体实现流程图;图3是本发明实施例提供的规则引擎的执行方法S104的具体实现流程图;图4是本发明实施例提供的规则引擎的执行方法步骤B1的具体实现流程图;图5是本发明实施例提供的规则引擎的执行装置的结构框图;图6是本发明实施例提供的服务器的示意图。具体实施方式为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。图1示出了本发明实施例提供的规则引擎的执行方法的实现流程,该方法流程包括步骤S101至S107。各步骤的具体实现原理如下:S101:监控业务逻辑的调用接口。具体地,不同的项目有不同的功能,不同的功能需要不同的实现,所述业务逻辑是指实现核心功能的代码。在本发明实施例中,业务逻辑设有调用接口,通过监控所述调用接口来确定所述业务逻辑是否被调用。可选地,由于实现不同功能的代码不相同,即实现不同功能的业务逻辑也不相同,在本发明实施例中,所述业务逻辑具有业务标识,所述业务标识用于唯一标识业务逻辑。进一步地,若有多个业务逻辑,则分别为每一个业务逻辑分配一个调用接口,所述业务逻辑的业务标识与所述调用接口的接口编号对应。S102:若监测到所述调用接口被调用,触发所述业务逻辑的第一事件触发点,所述第一事件触发点用于在所述业务逻辑执行之前触发在第一引擎规则库中事件规则的查询操作。具体地,设置事件触发点用于触发事件规则的查询。所述事件触发点可包括但不限于下述的一种或多种:添加规则、更新规则、查询规则、添加规则组、添加规则到规则组、从规则组中删除规则、根据数据类型获取操作符列表、获取所有的数据类型及每个数据类型支持的操作符列表、根据规则组ID查询该规则组内包含的规则列表、查询所有的规则组、校验指定规则组下规则、判断输入数据是否满足指定规则、对输入的规则依次进行校验和获取指定规则数据项列表。在本发明实施例中,若监测到所述调用接口被调用,触发所述事件触发点时,则触发了规则引擎的调用。所述事件触发点包括第一事件触发点和第二事件触发点。所述第一事件触发点用于在所述业务逻辑执行之前触发在第一引擎规则库中事件规则的查询操作。若检测到所述业务逻辑的所述调用接口被调用时,触发第一事件触发点,也即在所述业务逻辑执行之前触发查询所述第一引擎规则库中事件规则的查询操作。在本发明实施例中,将需在所述业务逻辑执行之前执行处理的事件规则存放于第一引擎规则库中,业务逻辑与引擎的事件规则分离,并设置第一事件触发点触发查询所述业务逻辑对应的事件规则,在监测到所述业务逻辑的调用接口被调用时触发所述第一事件触发点。示例性地,本发明实施例中,通过规则引擎服务器接收规则引擎客户端发送的针对所述业务逻辑的事件规则的调用请求,调用请求可以是通过规则引擎客户端的相应接口发送的请求,其中,规则引擎客户端的个数可以是一个,也可以是多个,例如,大于或等于2个。在一些实施例中,客户端通过规则引擎提供的客户端Jar包调用应用程序接口ApplicationProgrammingInterface,API,通过远程过程调用RemoteProcedureCall,RPC协议调用规则引擎服务器,例如,可以基于HessianRPC调用通信技术进行调用,也可以根据应用需要采用其他RPC调用技术进行调用。作为本发明的一个实施例,如图2所示,上述S102具体包括:A1:获取所述业务逻辑的业务标识。所述业务标识用于标识所述业务逻辑,不同的业务标识对应的业务逻辑,实现的功能也不一样。A2:判断预设的事件触发集合中是否存在所述业务逻辑的业务标识。A3:若所述事件触发集合中存在所述业务标识,则触发所述业务标识对应的第一事件触发点。具体地,不是所有的业务逻辑都有对应的第一事件触发点,因此,不是所有的业务逻辑被调用时都会触发所述第一事件触发点。所述预设的事件触发集合存放的是与所述第一事件触发点对应的业务逻辑的业务标识。在本发明实施例中,若检测到被调用接口的业务逻辑的业务标识在所述预设的事件触发集合中,则触发所述业务标识对应的第一事件触发点,从而对触发所述第一事件触发点的业务逻辑进行筛选。S103:基于所述第一事件触发点,在第一引擎规则库中查询所述业务逻辑是否存在对应的事件规则。具体地,所述第一引擎规则库中存放的事件规则在所述业务逻辑执行之前执行。根据所述业务逻辑的业务标识,在所述第一引擎规则库中查找所述业务标识对应的事件规则。S104:根据所述在第一引擎规则库中的查询结果执行所述业务逻辑。其中,所述查询结果包括所述第一引擎规则库中存在或者不存在所述业务逻辑对应的事件规则。作为本发明的一个实施例,图3示出了本发明实施例提供的规则引擎的执行方法S104的具体实现流程,详述如下:B1:若在所述第一引擎规则库中查找到所述业务逻辑对应的事件规则,则执行所述事件规则定义的处理逻辑。B2:在执行完所述事件规则定义的处理逻辑后,执行所述业务逻辑。B3:若在所述第一引擎规则库中未查询到所述业务逻辑对应的事件规则,则直接执行所述业务逻辑。在本发明实施例中,若在所述第一引擎规则库中查找到所述业务逻辑对应的事件规则,则先执行所述事件规则定义的处理逻辑,再执行所述业务逻辑,若在所述第一引擎规则库中未查找到所述业务逻辑对应的事件规则,则直接执行所述业务逻辑。作为本发明的一个实施例,图4示出了本发明实施例提供的规则引擎的执行方法步骤B1的具体实现流程,详述如下:B11:若所述第一引擎规则库中所述业务逻辑对应的事件规则有多个,获取所述业务逻辑对应的事件规则的优先指数。所述优先指数用于标识所述业务逻辑对应的事件规则的处理排序。所述优先指数可由用户预先定义,也可以根据所述多个事件规则的历史执行记录的统计信息确定。B12:按所述优先指数从高到低依次执行所述业务逻辑对应的事件规则定义的处理逻辑。在本发明实施例中,当所述第一引擎规则库中存在多个与所述业务逻辑对应的事件规则时,根据所述事件规则的优先指数的排序结果依次处理所述多个事件规则,从而避免出现执行冲突。可选地,若所述第一引擎规则库中所述业务逻辑对应的事件规则有多个,获取所述业务逻辑对应的多个事件规则之间的依赖关系,所述依赖关系是指一事件规则的执行触发依赖于另一事件规则的执行,所述依赖关系包括所述事件规则依赖的事件规则的数量以及被依赖的事件规则的数量,可选地,所述事件规则被依赖的事件规则的数量越大,所述事件规则的优先指数越高。可选地,根据如下公式计算事件规则的优先指数PriDegi:其中,ωi表示所述事件规则i对应的预设权值,L为整数,表示所述事件规则i被依赖的事件规则的数量,L≥0,rely_λl表示所述事件规则i被依赖的事件规则的数量为l时对应的依赖权值,0≤l≤L,N为所述业务逻辑对应的事件规则数,N为正整数,Func为任意一个实现从[0,+∞到[0,1映射的单调递增函数。具体地,事件规则对应的预设权值可根据事件规则的类型定义,在本实施例中,事件规则的类型包括添加、修改以及删除,其中,添加的优先级高于修改的优先级,修改的优先级高于删除的优先级。因此,定义添加的预设权值高于修改的预设权值,而修改的预设权值高于删除的预设权值。S105:若所述业务逻辑执行完毕,触发所述业务逻辑的第二事件触发点,所述第二事件触发点用于在所述业务逻辑执行完毕之后触发在第二引擎规则库中事件规则的查询操作。在本发明实施例中,所述第二事件触发点用于在所述业务逻辑执行之后触发在第二引擎规则库中事件规则的查询操作。若检测到所述业务逻辑执行完毕,触发第二事件触发点,从而触发查询所述第二引擎规则库中事件规则的查询操作。S106:基于所述第二事件触发点,在第二引擎规则库中查找所述业务逻辑是否存在对应的事件规则。具体地,所述第二引擎规则库中存放的事件规则在所述业务逻辑执行之后执行。根据所述业务逻辑的业务标识,在所述第二引擎规则库中查找所述业务标识对应的事件规则。S107:根据所述在第二引擎规则库中的查询结果返回所述业务逻辑的执行结果。具体地,若在所述第二引擎规则库中查找到所述业务逻辑对应的事件规则,则在执行完所述业务逻辑之后,再执行所述事件规则定义的处理逻辑,返回所述处理逻辑的执行结果。若在所述第二引擎规则库中未查找到所述业务逻辑对应的事件规则,则直接返回所述业务逻辑的执行结果。示例性地,条件为门店编号640100001,结论为门店公司段作业092801和门店成本中心作业1201。假如有一条订单的门店编号为640100001,则规则引擎自动的把门店公司段作业和门店成本中心作业这两个字段分别更新为092801和1201。这样就把业务逻辑从代码中分离,让规则引擎自动匹配。在本发明实施例中,通过监控业务逻辑的调用接口,若监测到所述调用接口被调用,触发所述业务逻辑的第一事件触发点,所述第一事件触发点用于在所述业务逻辑执行之前触发在第一引擎规则库中事件规则的查询操作,基于所述第一事件触发点,在第一引擎规则库中查询所述业务逻辑是否存在对应的事件规则,根据所述在第一引擎规则库中的查询结果执行所述业务逻辑,若所述业务逻辑执行完毕,触发所述业务逻辑的第二事件触发点,所述第二事件触发点用于在所述业务逻辑执行完毕之后触发在第二引擎规则库中事件规则的查询操作,基于所述第二事件触发点,在第二引擎规则库中查找所述业务逻辑是否存在对应的事件规则,根据所述在第二引擎规则库中的查询结果返回所述业务逻辑的执行结果,本方案通过设置事件触发点,在事件触发点被触发时才查询并执行业务逻辑对应的事件规则,将引擎的事件规则与业务逻辑分离,在事件规则需要修改时,开发人员无需修改所有的业务逻辑代码,只需直接修改事件规则,降低了开发难度与引擎重构的风险,同时,设置两个事件触发点,在所述业务逻辑执行前后分别进行事件规则的查找与执行,以保证事件规则执行的准确性与有效性,从而提高开发效率。应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。对应于上文实施例所述的规则引擎的执行方法,图5示出了本申请实施例提供的规则引擎的执行装置的结构框图,为了便于说明,仅示出了与本申请实施例相关的部分。参照图5,该规则引擎的执行装置包括:接口监控单元51,第一事件触发点单元52,第一规则查询单元53,第一执行单元54,第二事件触发点单元55,第二规则查询单元56,第二执行单元57,其中:接口监控单元51,用于监控业务逻辑的调用接口;第一事件触发点单元52,用于若监测到所述调用接口被调用,触发所述业务逻辑的第一事件触发点,所述第一事件触发点用于在所述业务逻辑执行之前触发在第一引擎规则库中事件规则的查询操作;第一规则查询单元53,用于基于所述第一事件触发点,在第一引擎规则库中查询所述业务逻辑是否存在对应的事件规则;第一执行单元54,用于根据所述在第一引擎规则库中的查询结果执行所述业务逻辑;第二事件触发点单元55,用于若所述业务逻辑执行完毕,触发所述业务逻辑的第二事件触发点,所述第二事件触发点用于在所述业务逻辑执行完毕之后触发在第二引擎规则库中事件规则的查询操作;第二规则查询单元56,用于基于所述第二事件触发点,在第二引擎规则库中查找所述业务逻辑是否存在对应的事件规则;第二执行单元57,用于根据所述在第二引擎规则库中的查询结果返回所述业务逻辑的执行结果。可选地,所述包第一事件触发点单元52括:业务标识获取模块,用于获取所述业务逻辑的业务标识;第一判断模块,用于判断预设的事件触发集合中是否存在所述业务逻辑的业务标识;第一触发点模块,用于若所述事件触发集合中存在所述业务标识,则触发所述业务标识对应的第一事件触发点。可选地,所述第一执行单元54包括:第一规则执行模块,用于若在所述第一引擎规则库中查找到所述业务逻辑对应的事件规则,则执行所述事件规则定义的处理逻辑;第一业务执行模块,用于在执行完所述事件规则定义的处理逻辑后,执行所述业务逻辑;若在所述第一引擎规则库中未查询到所述业务逻辑对应的事件规则,则直接执行所述业务逻辑。可选地,所述第一规则执行模块包括:优先指数确定子模块,用于若所述第一引擎规则库中所述业务逻辑对应的事件规则有多个,获取所述业务逻辑对应的事件规则的优先指数;第一规则执行子模块,用于按所述优先指数从高到低依次执行所述业务逻辑对应的事件规则定义的处理逻辑。可选地,所述优先指数确定子模块包括:依赖关系确定子模块,用于获取所述业务逻辑对应的多个事件规则之间的依赖关系,所述依赖关系是指一事件规则的执行触发依赖于另一事件规则的执行;优先指数确定子模块,用于根据如下公式计算事件规则的优先指数PriDegi:其中,ωi表示所述事件规则i对应的预设权值,L为整数,表示所述事件规则i被依赖的事件规则的数量,L≥0,rely_λl表示所述事件规则i被依赖的事件规则的数量为l时对应的依赖权值,0≤l≤L,N为所述业务逻辑对应的事件规则数,N为正整数,Func为任意一个实现从[0,+∞到[0,1映射的单调递增函数。本发明实施例中,通过监控业务逻辑的调用接口,若监测到所述调用接口被调用,触发所述业务逻辑的第一事件触发点,所述第一事件触发点用于在所述业务逻辑执行之前触发在第一引擎规则库中事件规则的查询操作,基于所述第一事件触发点,在第一引擎规则库中查询所述业务逻辑是否存在对应的事件规则,根据所述在第一引擎规则库中的查询结果执行所述业务逻辑,若所述业务逻辑执行完毕,触发所述业务逻辑的第二事件触发点,所述第二事件触发点用于在所述业务逻辑执行完毕之后触发在第二引擎规则库中事件规则的查询操作,基于所述第二事件触发点,在第二引擎规则库中查找所述业务逻辑是否存在对应的事件规则,根据所述在第二引擎规则库中的查询结果返回所述业务逻辑的执行结果,本方案通过设置事件触发点,在事件触发点被触发时才查询并执行业务逻辑对应的事件规则,将引擎的事件规则与业务逻辑分离,在事件规则需要修改时,开发人员无需修改所有的业务逻辑代码,只需直接修改事件规则,降低了开发难度与引擎重构的风险,同时,设置两个事件触发点,在所述业务逻辑执行前后分别进行事件规则的查找与执行,以保证事件规则执行的准确性与有效性,从而提高开发效率。图6是本发明一实施例提供的服务器的示意图。如图6所示,该实施例的服务器6包括:处理器60、存储器61以及存储在所述存储器61中并可在所述处理器60上运行的计算机程序62,例如规则引擎的执行程序。所述处理器60执行所述计算机程序62时实现上述各个规则引擎的执行方法实施例中的步骤,例如图1所示的步骤101至107。或者,所述处理器60执行所述计算机程序62时实现上述各装置实施例中各模块单元的功能,例如图5所示单元51至57的功能。示例性的,所述计算机程序62可以被分割成一个或多个模块单元,所述一个或者多个模块单元被存储在所述存储器61中,并由所述处理器60执行,以完成本发明。所述一个或多个模块单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序62在所述服务器6中的执行过程。所述服务器6可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述服务器可包括,但不仅限于,处理器60、存储器61。本领域技术人员可以理解,图6仅仅是服务器6的示例,并不构成对服务器6的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述服务器还可以包括输入输出设备、网络接入设备、总线等。所述处理器60可以是中央处理单元CentralProcessingUnit,CPU,还可以是其他通用处理器、数字信号处理器DigitalSignalProcessor,DSP、专用集成电路ApplicationSpecificIntegratedCircuit,ASIC、现成可编程门阵列Field-ProgrammableGateArray,FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。所述存储器61可以是所述服务器6的内部存储单元,例如服务器6的硬盘或内存。所述存储器61也可以是所述服务器6的外部存储设备,例如所述服务器6上配备的插接式硬盘,智能存储卡SmartMediaCard,SMC,安全数字SecureDigital,SD卡,闪存卡FlashCard等。进一步地,所述存储器61还可以既包括所述服务器6的内部存储单元也包括外部存储设备。所述存储器61用于存储所述计算机程序以及所述服务器所需的其他程序和数据。所述存储器61还可以用于暂时地存储已经输出或者将要输出的数据。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。所述集成的模块单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器ROM,Read-OnlyMemory、随机存取存储器RAM,RandomAccessMemory、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

权利要求:1.一种规则引擎的执行方法,其特征在于,包括:监控业务逻辑的调用接口;若监测到所述调用接口被调用,触发所述业务逻辑的第一事件触发点,所述第一事件触发点用于在所述业务逻辑执行之前触发在第一引擎规则库中事件规则的查询操作;基于所述第一事件触发点,在第一引擎规则库中查询所述业务逻辑是否存在对应的事件规则;根据所述在第一引擎规则库中的查询结果执行所述业务逻辑;若所述业务逻辑执行完毕,触发所述业务逻辑的第二事件触发点,所述第二事件触发点用于在所述业务逻辑执行完毕之后触发在第二引擎规则库中事件规则的查询操作;基于所述第二事件触发点,在第二引擎规则库中查找所述业务逻辑是否存在对应的事件规则;根据所述在第二引擎规则库中的查询结果返回所述业务逻辑的执行结果。2.根据权利要求1所述的执行方法,其特征在于,所述若监测到所述调用接口被调用,触发所述业务逻辑的第一事件触发点,包括:获取所述业务逻辑的业务标识;判断预设的事件触发集合中是否存在所述业务逻辑的业务标识;若所述事件触发集合中存在所述业务标识,则触发所述业务标识对应的第一事件触发点。3.根据权利要求1所述的执行方法,其特征在于,所述根据所述在第一引擎规则库中的查询结果执行所述业务逻辑,包括:若在所述第一引擎规则库中查找到所述业务逻辑对应的事件规则,则执行所述事件规则定义的处理逻辑;在执行完所述事件规则定义的处理逻辑后,执行所述业务逻辑;若在所述第一引擎规则库中未查询到所述业务逻辑对应的事件规则,则直接执行所述业务逻辑。4.根据权利要求3所述的执行方法,其特征在于,所述若在所述第一引擎规则库中查找到所述业务逻辑对应的事件规则,则执行所述事件规则定义的处理逻辑,包括:若所述第一引擎规则库中所述业务逻辑对应的事件规则有多个,获取所述业务逻辑对应的事件规则的优先指数;按所述优先指数从高到低依次执行所述业务逻辑对应的事件规则定义的处理逻辑。5.根据权利要求4所述的执行方法,其特征在于,所述若所述第一引擎规则库中所述业务逻辑对应的事件规则有多个,获取所述业务逻辑对应的事件规则的优先指数,包括:获取所述业务逻辑对应的多个事件规则之间的依赖关系,所述依赖关系是指一事件规则的执行触发依赖于另一事件规则的执行;根据如下公式计算事件规则的优先指数PriDegi:其中,ωi表示所述事件规则i对应的预设权值,L为整数,表示所述事件规则i被依赖的事件规则的数量,L≥0,rely_λl表示所述事件规则i被依赖的事件规则的数量为l时对应的依赖权值,0≤l≤L,N为所述业务逻辑对应的事件规则数,N为正整数,Func为任意一个实现从[0,+∞到[0,1映射的单调递增函数。6.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5中任一项所述规则引擎的执行方法的步骤。7.一种服务器,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如下步骤:监控业务逻辑的调用接口;若监测到所述调用接口被调用,触发所述业务逻辑的第一事件触发点,所述第一事件触发点用于在所述业务逻辑执行之前触发在第一引擎规则库中事件规则的查询操作;基于所述第一事件触发点,在第一引擎规则库中查询所述业务逻辑是否存在对应的事件规则;根据所述在第一引擎规则库中的查询结果执行所述业务逻辑;若所述业务逻辑执行完毕,触发所述业务逻辑的第二事件触发点,所述第二事件触发点用于在所述业务逻辑执行完毕之后触发在第二引擎规则库中事件规则的查询操作;基于所述第二事件触发点,在第二引擎规则库中查找所述业务逻辑是否存在对应的事件规则;根据所述在第二引擎规则库中的查询结果返回所述业务逻辑的执行结果。8.根据权利要求7所述的服务器,其特征在于,所述若监测到所述调用接口被调用,触发所述业务逻辑的第一事件触发点,包括:获取所述业务逻辑的业务标识;判断预设的事件触发集合中是否存在所述业务逻辑的业务标识;若所述事件触发集合中存在所述业务标识,则触发所述业务标识对应的第一事件触发点。9.根据权利要求7所述的服务器,其特征在于,所述根据所述在第一引擎规则库中的查询结果执行所述业务逻辑,包括:若在所述第一引擎规则库中查找到所述业务逻辑对应的事件规则,则执行所述事件规则定义的处理逻辑;在执行完所述事件规则定义的处理逻辑后,执行所述业务逻辑;若在所述第一引擎规则库中未查询到所述业务逻辑对应的事件规则,则直接执行所述业务逻辑。10.根据权利要求9所述的服务器,其特征在于,所述若在所述第一引擎规则库中查找到所述业务逻辑对应的事件规则,则执行所述事件规则定义的处理逻辑,包括:若所述第一引擎规则库中所述业务逻辑对应的事件规则有多个,获取所述业务逻辑对应的事件规则的优先指数;按所述优先指数从高到低依次执行所述业务逻辑对应的事件规则定义的处理逻辑。

百度查询: 平安科技(深圳)有限公司 一种规则引擎的执行方法、存储介质和服务器

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。