CN114077587A - 基于规则引擎的业务处理方法、规则引擎、介质和设备 - Google Patents

基于规则引擎的业务处理方法、规则引擎、介质和设备 Download PDF

Info

Publication number
CN114077587A
CN114077587A CN202010832722.9A CN202010832722A CN114077587A CN 114077587 A CN114077587 A CN 114077587A CN 202010832722 A CN202010832722 A CN 202010832722A CN 114077587 A CN114077587 A CN 114077587A
Authority
CN
China
Prior art keywords
rule
target
processed
update
execution module
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202010832722.9A
Other languages
English (en)
Inventor
李晨星
王广田
毛灵
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Sankuai Online Technology Co Ltd
Original Assignee
Beijing Sankuai Online Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Sankuai Online Technology Co Ltd filed Critical Beijing Sankuai Online Technology Co Ltd
Priority to CN202010832722.9A priority Critical patent/CN114077587A/zh
Publication of CN114077587A publication Critical patent/CN114077587A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/172Caching, prefetching or hoarding of files

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开涉及一种基于规则引擎的业务处理方法、规则引擎、介质和设备,涉及电子信息技术领域,规则引擎包括:规则执行模块和规则管理模块,规则执行模块部署在业务系统上,规则管理模块中存储有业务系统对应的第一数量个规则,该方法包括:通过规则执行模块根据业务系统发送的执行请求,确定目标规则,通过规则执行模块确定业务系统的本地缓存中是否存在目标规则,本地缓存中存储有第二数量个,在预设时间范围内被规则执行模块执行的规则,若本地缓存中存在目标规则,通过规则执行模块从本地缓存获取目标规则,并按照执行请求执行目标规则,若本地缓存中不存在目标规则,通过规则执行模块从规则管理模块获取目标规则,并按照执行请求执行目标规则。

Description

基于规则引擎的业务处理方法、规则引擎、介质和设备
技术领域
本公开涉及电子信息技术领域,具体地,涉及一种基于规则引擎的业务处理方法、规则引擎、介质和设备。
背景技术
随着电子信息技术的不断发展,各种业务系统所能实现的功能越来越全面、复杂。为了将业务规则从具体的实现代码中分离出来,通常会利用规则引擎来保存和执行业务规则。规则引擎可以接收数据输入,并按照业务规则处理数据,从而做出业务决策。规则引擎通常部署在服务器上,即规则引擎服务器。业务系统通过网络将数据传输给规则引擎服务器,并通过网络接收规则引擎服务器执行业务规则的结果。因此,要保证业务系统能够正常使用规则引擎服务器,对网络通信的性能、安全度、稳定性都有很高的要求,并且数据传输也会带来延时,降低了业务系统处理业务的效率。
发明内容
本公开的目的是提供一种基于规则引擎的业务处理方法、规则引擎、介质和设备,用以解决现有技术中存在的相关问题。
根据本公开实施例的第一方面,提供一种基于规则引擎的业务处理方法,规则引擎包括:规则执行模块和规则管理模块,所述规则执行模块部署在业务系统上,所述规则管理模块中存储有所述业务系统对应的第一数量个规则;所述方法包括:
通过所述规则执行模块根据所述业务系统发送的执行请求,确定目标规则;
通过所述规则执行模块确定所述业务系统的本地缓存中是否存在所述目标规则,所述本地缓存中存储有第二数量个,在预设时间范围内被所述规则执行模块执行的所述规则,所述第二数量小于或等于所述第一数量;
若所述本地缓存中存在所述目标规则,通过所述规则执行模块从所述本地缓存获取所述目标规则,并按照所述执行请求执行所述目标规则;
若所述本地缓存中不存在所述目标规则,通过所述规则执行模块从所述规则管理模块获取所述目标规则,并按照所述执行请求执行所述目标规则。
可选地,所述通过所述规则执行模块从所述规则管理模块获取所述目标规则,并按照所述执行请求执行所述目标规则,包括:
将从所述规则管理模块获取的所述目标规则存入所述本地缓存;
加载所述本地缓存中存储的所述目标规则;
根据所述执行请求执行所述目标规则。
可选地,在所述通过所述规则执行模块从所述规则管理模块获取所述目标规则,并按照所述执行请求执行所述目标规则之前,所述方法还包括:
通过所述规则执行模块确定所述规则管理模块的状态;
相应地,所述通过所述规则执行模块从所述规则管理模块获取所述目标规则,并按照所述执行请求执行所述目标规则,包括:
若所述规则管理模块的状态为正常,从所述规则管理模块获取所述目标规则,并按照所述执行请求执行所述目标规则。
可选地,所述方法还包括:
若所述规则管理模块的状态为异常,通过所述规则执行模块从备份服务器获取所述目标规则,并按照所述执行请求执行所述目标规则,所述备份服务器中存储有所述第一数量个规则。
可选地,在所述通过所述规则执行模块根据所述业务系统发送的执行请求,确定目标规则之后,所述方法还包括:
通过所述规则执行模块确定是否执行过所述目标规则;
若所述规则执行模块未执行过所述目标规则,通过所述规则执行模块从所述规则管理模块获取所述目标规则,并按照所述执行请求执行所述目标规则;
相应地,所述通过所述规则执行模块确定所述业务系统的本地缓存中是否存在所述目标规则,包括:
若所述规则执行模块执行过所述目标规则,确定所述本地缓存中是否存在所述目标规则。
可选地,所述规则管理模块中存储有至少一个更新记录,和每个所述更新记录对应的时间信息,所述更新记录用于记录对任一所述规则的更新,所述时间信息用于指示该更新记录对应的更新时间,所述方法还包括:
通过所述规则执行模块向所述规则管理模块发送更新请求,所述更新请求包括第一时间信息,所述第一时间信息为所述规则执行模块上一次向所述规则管理模块发送所述更新请求后确定的;
通过所述规则管理模块根据所述第一时间信息,确定至少一个待处理更新记录,并将每个所述待处理更新记录和每个所述待处理更新记录对应的第二时间信息发送至所述规则执行模块,每个所述待处理更新记录对应的更新时间在所述第一时间信息指示的更新时间之后;
通过所述规则执行模块根据每个所述待处理更新记录和每个所述待处理更新记录对应的所述第二时间信息,更新所述本地缓存中存储的规则和所述第一时间信息。
可选地,所述通过所述规则执行模块根据每个所述待处理更新记录和每个所述待处理更新记录对应的所述第二时间信息,更新所述本地缓存中存储的规则和所述第一时间信息,包括:
针对每个所述待处理更新记录,根据该待处理更新记录中包括的待处理规则标识,在所述本地缓存中确定是否存在对应的待处理规则,若存在所述待处理规则,根据该待处理更新记录中包括的更新内容对所述待处理规则进行更新;
将所述第一时间信息更新为,每个所述待处理更新记录对应的所述第二时间信息中,指示的更新时间最新的所述第二时间信息。
可选地,所述通过所述规则执行模块根据每个所述待处理更新记录和每个所述待处理更新记录对应的所述第二时间信息,更新所述本地缓存中存储的规则和所述第一时间信息,包括:
针对每个所述待处理更新记录,根据该待处理更新记录中包括的待处理规则标识,在所述本地缓存中确定是否存在对应的待处理规则,若存在所述待处理规则,从所述规则管理模块获取所述待处理规则标识对应的更新内容,并根据所述更新内容对所述待处理规则进行更新;
将所述第一时间信息更新为,每个所述待处理更新记录对应的所述第二时间信息中,指示的更新时间最新的所述第二时间信息。
根据本公开实施例的第二方面,提供一种规则引擎,所述规则引擎包括:规则执行模块和规则管理模块,所述规则执行模块部署在业务系统上,所述规则管理模块中存储有所述业务系统对应的第一数量个规则;
所述规则执行模块,被配置成用于根据所述业务系统发送的执行请求,确定目标规则;
所述规则执行模块,还被配置成用于确定所述业务系统的本地缓存中是否存在所述目标规则,所述本地缓存中存储有第二数量个,在预设时间范围内被所述规则执行模块执行的所述规则,所述第二数量小于或等于所述第一数量;
所述规则执行模块,还被配置成用于若所述本地缓存中存在所述目标规则,从所述本地缓存获取所述目标规则,并按照所述执行请求执行所述目标规则;
所述规则执行模块,还被配置成用于若所述本地缓存中不存在所述目标规则,从所述规则管理模块获取所述目标规则,并按照所述执行请求执行所述目标规则。
可选地,所述规则执行模块包括:
获取子模块,被配置成用于将从所述规则管理模块获取的所述目标规则存入所述本地缓存;
加载子模块,被配置成用于加载所述本地缓存中存储的所述目标规则;
执行子模块,被配置成用于根据所述执行请求执行所述目标规则。
可选地,所述规则执行模块,还被配置成用于在从所述规则管理模块获取所述目标规则,并按照所述执行请求执行所述目标规则之前,确定所述规则管理模块的状态;
所述规则执行模块,还被配置成用于若所述规则管理模块的状态为正常,从所述规则管理模块获取所述目标规则,并按照所述执行请求执行所述目标规则。
可选地,所述规则执行模块,还被配置成用于若所述规则管理模块的状态为异常,从备份服务器获取所述目标规则,并按照所述执行请求执行所述目标规则,所述备份服务器中存储有所述第一数量个规则。
可选地,所述规则执行模块,还被配置成用于在根据所述业务系统发送的执行请求,确定目标规则之后,确定是否执行过所述目标规则;若所述规则执行模块未执行过所述目标规则,从所述规则管理模块获取所述目标规则,并按照所述执行请求执行所述目标规则;
所述规则执行模块,还被配置成用于若所述规则执行模块执行过所述目标规则,确定所述本地缓存中是否存在所述目标规则。
可选地,所述规则管理模块中存储有至少一个更新记录,和每个所述更新记录对应的时间信息,所述更新记录用于记录对任一所述规则的更新,所述时间信息用于指示该更新记录对应的更新时间;
所述规则执行模块,还被配置成用于向所述规则管理模块发送更新请求,所述更新请求包括第一时间信息,所述第一时间信息为所述规则执行模块上一次向所述规则管理模块发送所述更新请求后确定的;
所述规则管理模块,被配置成用于根据所述第一时间信息,确定至少一个待处理更新记录,并将每个所述待处理更新记录和每个所述待处理更新记录对应的第二时间信息发送至所述规则执行模块,每个所述待处理更新记录对应的更新时间在所述第一时间信息指示的更新时间之后;
所述规则执行模块,还被配置成用于根据每个所述待处理更新记录和每个所述待处理更新记录对应的所述第二时间信息,更新所述本地缓存中存储的规则和所述第一时间信息。
可选地,所述规则执行模块还被配置成用于:
针对每个所述待处理更新记录,根据该待处理更新记录中包括的待处理规则标识,在所述本地缓存中确定是否存在对应的待处理规则,若存在所述待处理规则,根据该待处理更新记录中包括的更新内容对所述待处理规则进行更新;
将所述第一时间信息更新为,每个所述待处理更新记录对应的所述第二时间信息中,指示的更新时间最新的所述第二时间信息。
可选地,所述规则执行模块还被配置成用于:
针对每个所述待处理更新记录,根据该待处理更新记录中包括的待处理规则标识,在所述本地缓存中确定是否存在对应的待处理规则,若存在所述待处理规则,从所述规则管理模块获取所述待处理规则标识对应的更新内容,并根据所述更新内容对所述待处理规则进行更新;
将所述第一时间信息更新为,每个所述待处理更新记录对应的所述第二时间信息中,指示的更新时间最新的所述第二时间信息。
根据本公开实施例的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现第一方面提供的基于规则引擎的业务处理方法的步骤。
根据本公开实施例的第四方面,提供一种电子设备,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现第一方面提供的基于规则引擎的业务处理方法的步骤。
通过上述技术方案,本公开中的规则引擎包括规则管理模块,和部署在业务系统上的规则执行模块,其中,规则管理模块中存储了业务系统对应的第一数量个规则。首先,规则执行模块在接收到业务系统发送的执行请求后,确定对应的目标规则,之后规则执行模块在业务系统的本地缓存中查找是否存在目标规则。如果本地缓存中存在目标规则,那么规则执行模块从本地缓存中获取目标规则,并按照执行请求执行目标规则,如果本地缓存中不存在目标规则,那么规则执行模块从规则管理模块获取目标规则,并按照执行请求执行目标规则。其中,本地缓存中存储了第二数量个,在预设时间范围内被规则执行模块执行的规则,且第二数量小于或等于第一数量。本公开中通过在本地缓存中存储在预设时间范围内被规则执行模块执行的规则,使得业务系统降低对网络通信的依赖,能够提高规则的查找速度和执行速度,从而提高业务处理的效率。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1是根据一示例性实施例示出的一种规则引擎与业务系统的部署示意图;
图2是根据一示例性实施例示出的一种基于规则引擎的业务处理方法的流程图;
图3是根据一示例性实施例示出的另一种基于规则引擎的业务处理方法的流程图;
图4是根据一示例性实施例示出的另一种基于规则引擎的业务处理方法的流程图;
图5是根据一示例性实施例示出的另一种基于规则引擎的业务处理方法的流程图;
图6是根据一示例性实施例示出的另一种基于规则引擎的业务处理方法的流程图;
图7是根据一示例性实施例示出的另一种基于规则引擎的业务处理方法的流程图;
图8是根据一示例性实施例示出的另一种基于规则引擎的业务处理方法的流程图;
图9是根据一示例性实施例示出的另一种基于规则引擎的业务处理方法的流程图;
图10是根据一示例性实施例示出的一种规则引擎的框图;
图11是根据一示例性实施例示出的另一种规则引擎的框图;
图12是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在介绍本公开提供的基于规则引擎的业务处理方法、规则引擎、介质和设备之前,首先对本公开中各个实施例所涉及的应用场景进行介绍。该应用场景可以包括业务系统和能够为业务系统提供服务的规则引擎。其中,规则引擎可以包括规则管理模块,和部署在业务系统上的规则执行模块,可以理解为规则执行模块嵌入在业务系统内,规则管理模块部署在指定的服务器(即规则引擎服务器)上,规则管理模块上存储有业务系统对应的至少一个规则,例如可以存储在规则库中,业务系统中还可以包括本地缓存,规则执行模块可以从本地缓存中读取数据。此外,规则管理模块也可以用于创建、编辑、发布规则,还可以提供管理控制平台和管理接口。需要说明的是,业务系统可以是一个或多个,每个业务系统上都可以嵌入一个规则执行模块,相应的规则管理模块存储有每个业务系统对应的至少一个规则,可以理解为规则管理模块可以为存储的每个规则增加一个业务标签,用于指示该规则对应哪个业务系统。进一步的,每个业务系统还可以分布在不同的服务器(即业务服务器)上,那么每个业务系统对应的每个业务服务器上都可以嵌入一个规则执行模块。业务系统与规则引擎的部署示意图可以如图1所示,其中包括业务系统1、和业务系统2,业务系统1部署在业务服务器1和业务服务器2上,业务系统2部署在业务服务器3和业务服务器4上。
图2是根据一示例性实施例示出的一种基于规则引擎的业务处理方法的流程图,如图2所示,其中,规则引擎包括:执行模块和规则管理模块,规则执行模块部署在业务系统上,规则管理模块中存储有业务系统对应的第一数量个规则,其中第一数量为大于或等于1的整数。该方法包括以下步骤:
步骤101,通过规则执行模块根据业务系统发送的执行请求,确定目标规则。
举例来说,当业务系统需要使用目标规则时,可以向部署在业务系统上的规则执行模块发送执行请求,执行请求可以包括:目标规则对应的规则标识,规则标识能够唯一标识目标规则,执行请求还可以包括规则执行参数,规则执行参数可以理解为目标规则的输入参数。规则执行模块接收到执行请求后,可以根据执行请求中包括的规则标识,确定对应的目标规则。由于规则执行模块部署在业务系统上,因此,业务系统可以直接将执行请求发送给规则执行模块,而无需通过网络通信来传输执行请求,因此提高了数据传输的速度和稳定度。
步骤102,通过规则执行模块确定业务系统的本地缓存中是否存在目标规则,本地缓存中存储有第二数量个,在预设时间范围内被规则执行模块执行的规则,第二数量小于或等于第一数量。
示例的,规则执行模块在确定目标规则后,先在业务系统的本地缓存中确定是否存在目标规则。其中,本地缓存中,可以预先存储有第二数量个规则,第二数量个规则为在预设时间范围内被规则执行模块执行的规则,其中,预设时间范围例如可以是12个小时。可以理解为,本地缓存中存储的是热点规则,热点规则为最近被规则执行模块执行的规则,也就是说本地缓存中存储的是业务系统经常会使用到的规则。其中,第二数量为大于或等于1的整数,且第二数量小于或等于第一数量,即本地缓存中存储有规则管理模块存储的业务系统对应的全部或者部分规则。具体的,可以通过Last Recent Use算法、Expire AfterAccess算法来对本地缓存中存储的规则进行管理。例如,规则执行模块每执行一个规则,可以为该规则增加一个时间戳,本地缓存中存储的规则对应的时间戳均在预设时间范围内。再比如,本地缓存会按照预设的第一周期(例如:10分钟)对存储的规则进行检查,若某个规则对应的时间戳超过了预设时间范围,那么将该规则从本地缓存中去除。这样,本地缓存中始终存储有最近被执行的规则,而无需存储业务系统对应的全部规则,能够有效减少对业务系统存储空间的占用。
步骤103,若本地缓存中存在目标规则,通过规则执行模块从本地缓存获取目标规则,并按照执行请求执行目标规则。
步骤104,若本地缓存中不存在目标规则,通过规则执行模块从规则管理模块获取目标规则,并按照执行请求执行目标规则。
示例的,如果本地缓存中存在目标规则,那么规则执行模块可以先从本地缓存获取目标规则,然后按照执行请求执行目标规则。具体的,规则执行模块可以从本地缓存中取出目标规则,然后加载目标规则,最后根据执行请求执行目标规则。例如,可以将目标规则理解为一个规则包,包含有.rsc文件,规则执行模块从本地缓存中取出.rsc文件,并将.rsc文件加载到内存中,得到.rsc文件对应的执行上下文(可以理解为一个函数)。再将执行请求中包括的规则执行参数传递给.rsc文件对应的执行上下文,并执行,得到.rsc文件对应的执行上下文的执行结果。最后规则执行模块可以将执行结果反馈给业务系统。
如果本地缓存中不存在目标规则,那么规则执行模块可以通过网络通信,从规则管理模块获取目标规则,然后,然后按照执行请求执行目标规则。具体的,规则执行模块可以从规则管理模块中取出目标规则,然后加载目标规则,最后根据执行请求执行目标规则,以得到目标规则的执行结果。最后规则执行模块可以将执行结果反馈给业务系统。这样,由于本地缓存中始终存储有业务系统经常会使用到的规则,因此规则执行模块优先在本地缓存中查找目标规则,如果目标规则属于业务系统经常会使用到的规则,那么规则执行模块能够快速获得并执行目标规则,能够有效提高规则的查找速度和执行速度,从而提高业务处理的效率。如果目标规则不属于业务系统经常会使用到的规则,那么规则执行模块可以从规则管理模块获取并执行目标规则,能够在不影响业务处理的整体效率的前提下,保证业务系统能够使用规则引擎所能提供的全部规则。
综上所述,本公开中的规则引擎包括规则管理模块,和部署在业务系统上的规则执行模块,其中,规则管理模块中存储了业务系统对应的第一数量个规则。首先,规则执行模块在接收到业务系统发送的执行请求后,确定对应的目标规则,之后规则执行模块在业务系统的本地缓存中查找是否存在目标规则。如果本地缓存中存在目标规则,那么规则执行模块从本地缓存中获取目标规则,并按照执行请求执行目标规则,如果本地缓存中不存在目标规则,那么规则执行模块从规则管理模块获取目标规则,并按照执行请求执行目标规则。其中,本地缓存中存储了第二数量个,在预设时间范围内被规则执行模块执行的规则,且第二数量小于或等于第一数量。本公开中通过在本地缓存中存储在预设时间范围内被规则执行模块执行的规则,使得业务系统降低对网络通信的依赖,能够提高规则的查找速度和执行速度,从而提高业务处理的效率。
图3是根据一示例性实施例示出的另一种基于规则引擎的业务处理方法的流程图,如图3所示,步骤104的实现方式可以包括:
步骤1041,将从规则管理模块获取的目标规则存入本地缓存。
步骤1042,加载本地缓存中存储的目标规则。
步骤1043,根据执行请求执行目标规则。
在一种实现方式中,如果本地缓存中不存在目标规则,那么规则执行模块可以先从规则管理模块获取目标规则。然后,将目标规则存入本地缓存,以便规则执行模块在预设时间范围内,下一次执行目标规则时,就可以从本地缓存中直接获取目标规则。之后,规则执行模块按照执行请求执行目标规则。具体的,规则执行模块可以直接将目标规则加载到内存中,得到目标规则对应的执行上下文,然后将执行请求中包括的规则执行参数传递给执行上下文,并执行,得到目标规则的执行结果。规则执行模块还可以在执行完步骤1041之后(此时本地缓存中已存储有目标规则),从本地缓存中取出目标规则,并加载到内存中,得到目标规则对应的执行上下文,然后将执行请求中包括的规则执行参数传递给执行上下文,并执行,最后得到目标规则的执行结果。
图4是根据一示例性实施例示出的另一种基于规则引擎的业务处理方法的流程图,如图4所示,在步骤104之前,该方法还可以包括:
步骤105,通过规则执行模块确定规则管理模块的状态。
相应地,步骤104的实现方式为:
若规则管理模块的状态为正常,从规则管理模块获取目标规则,并按照执行请求执行目标规则。
举例来说,由于规则管理模块可能出现异常,导致无法为业务系统提供服务。因此规则执行模块可以在从规则管理模块获取目标规则之前,先确定规则管理模块的状态。在确定规则管理模块的状态为正常的条件下,即确定管理模块能够正常为业务系统提供服务的条件下,规则执行模块可以从规则管理模块获取目标规则,并按照执行请求执行目标规则。这样,保证规则执行模块能够从规则管理模块中成功获取目标规则,避免由于规则管理模块的状态为异常,导致无法成功获取目标规则,浪费网络资源。
图5是根据一示例性实施例示出的另一种基于规则引擎的业务处理方法的流程图,如图5所示,该方法还可以包括:
步骤106,若规则管理模块的状态为异常,通过规则执行模块从备份服务器获取目标规则,并按照执行请求执行目标规则,备份服务器中存储有第一数量个规则。
在另一种实现方式中,为了进一步保证业务系统能够正常进行业务处理,还可以设置一个备份服务器,用于对规则管理模块中存储的业务系统对应的第一数量个规则进行备份,即备份服务器上存储有规则管理模块存储的全部规则。在步骤105中确定规则管理模块的状态为异常的条件下,即确定管理模块无法为业务系统提供服务的条件下,规则执行模块可以从备份服务器获取目标规则,并按照执行请求执行目标规则。这样,能够保证业务系统即使在规则管理模块的状态为异常时,也能够使用全部规则,提高了业务处理的可靠性。
需要说明的是,备份服务器可以按照预设的第二周期(例如:24小时)进行更新,以保证备份服务器与规则管理模块保持同步。其中,备份服务器可以是另一个规则引擎服务器,也可以是任一种能够提供对象存储服务的服务器,本公开对此不作具体限定。规则在备份服务器上的存储格式,与规则在规则管理模块中的存储格式可以相同,也可以不相同。例如:规则管理模块中,规则是按照规则内容的格式进行存储的,在备份服务器中,规则可以按照规则文件的格式进行存储。
图6是根据一示例性实施例示出的另一种基于规则引擎的业务处理方法的流程图,如图6所示,在步骤101之后,该方法还可以包括以下步骤:
步骤107,通过规则执行模块确定是否执行过目标规则。
步骤108,若规则执行模块未执行过目标规则,通过规则执行模块从规则管理模块获取目标规则,并按照执行请求执行目标规则。
相应地,步骤102可以为:
若规则执行模块执行过目标规则,确定本地缓存中是否存在目标规则。
举例来说,规则执行模块可以通过懒加载的方式来获取目标规则,即在确定目标规则之后,规则执行模块可以先判断是否执行过目标规则,若规则执行模块未执行过目标规则,即规则执行模块是第一次执行目标规则,此时本地缓存中通常不会存储有目标规则,那么规则执行模块可以从规则管理模块获取目标规则,并按照执行请求执行目标规则。若规则执行模块执行过目标规则,即规则执行模块不是第一次执行目标规则,那么规则执行模块可以再确定本地缓存中是否存在目标规则。这样,通过懒加载的方式,可以在第一次执行目标规则时,直接从规则管理模块获取,而无需再从本地缓存中查找,进一步提高了业务处理的效率。
图7是根据一示例性实施例示出的另一种基于规则引擎的业务处理方法的流程图,如图7所示,其中,规则管理模块中存储有至少一个更新记录,和每个更新记录对应的时间信息,更新记录用于记录对任一规则的更新,时间信息用于指示该更新记录对应的更新时间,该方法还可以包括以下步骤:
步骤109,通过规则执行模块向规则管理模块发送更新请求,更新请求包括第一时间信息,第一时间信息为规则执行模块上一次向规则管理模块发送更新请求后确定的。
举例来说,规则管理模块中存储的规则经常会被更新(例如:增加、删除、修改),为了使本地缓存中存储的规则能够和规则管理模块中存储的规则保持同步,也需要对本地缓存进行更新。通常情况下,是按照热更新的模式对本地缓存进行更新,即规则执行模块获取规则管理模块中存储的全部规则,与本地缓存中存储的规则进行全量对比更新,当对比的规则较多,或者更新较频繁时,会造成大量的读取操作、对比操作,占用大量的网络资源和处理资源,导致性能抖动。因此,规则管理模块可以将每一次更新作为一个更新记录,并存储每个更新记录和每个更新记录对应的时间信息。可以理解为更新记录中可以包括被更新的规则对应的规则标识,也可以包括被更新的规则对应的更新内容(可以理解为更新后的规则内容),还可以包括被更新的规则对应的版本号。更新记录对应的时间信息,可以指示更新记录对应的更新时间,即更新发生的时间,时间信息例如可以是表示时间的游标,也可以是表示时间的时间戳等,本公开对此不作具体限定。
规则执行模块可以按照预设的第三周期(例如:30分钟)向规则管理模块发送更新请求,其中,更新请求内包括了第一时间信息。第一时间信息为规则执行模块在上一次(即上一第三周期)向规则管理模块发送更新请求后确定的时间信息。第一时间信息可以理解为,规则管理模块响应于规则执行模块上一次发送的更新请求,向规则执行模块发送至少一个待处理更新记录和对应的第二时间信息,规则执行模块将至少一个第二时间信息中,指示的更新时间最新的第二时间信息,作为第一时间信息,也就是说第一时间信息能够指示本地缓存中存储的,更新时间最新的规则所对应的更新时间。
步骤110,通过规则管理模块根据第一时间信息,确定至少一个待处理更新记录,并将每个待处理更新记录和每个待处理更新记录对应的第二时间信息发送至规则执行模块,每个待处理更新记录对应的更新时间在第一时间信息指示的更新时间之后。
步骤111,通过规则执行模块根据每个待处理更新记录和每个待处理更新记录对应的第二时间信息,更新本地缓存中存储的规则和第一时间信息。
示例的,规则管理模块根据更新请求中包括的第一时间信息,确定至少一个待处理更新记录,其中,每个待处理更新记录对应的更新时间在第一时间信息指示的更新时间之后。可以理解为,每个待处理更新记录所记录的更新,均在第一时间信息指示的更新时间之后发生。之后,规则管理模块将每个待处理更新记录和每个待处理更新记录对应的第二时间信息发送至规则执行模块。如果规则管理模块中存储的更新记录中,每个更新记录对应的更新时间均在第一时间信息指示的更新时间之前,或者与第一时间信息指示的更新时间相同,那么表示本地缓存中存储的规则已经是最新的,即能够和规则管理模块中存储的规则保持同步,此时无需对本地缓存中存储的规则进行更新。
规则执行模块可以根据每个待处理更新记录中包括的更新内容,对本地缓存中存储的规则进行更新,进一步的,规则执行模块还可以根据每个待处理更新记录对应的第二时间信息,对第一时间信息进行更新。这样,对于规则管理模块来说,每次更新只需要发送待处理更新记录和对应的第二时间信息,相比于全部规则,大大减少了对网络资源的占用。对于本地缓存来说,每次更新只需要增量更新,相比于将全部规则,与本地缓存中存储的规则进行全量对比,大大减少了处理资源的消耗,避免了性能抖动,保证了业务处理的效率。
图8是根据一示例性实施例示出的另一种基于规则引擎的业务处理方法的流程图,如图8所示,步骤111的实现方式可以包括:
步骤1111,针对每个待处理更新记录,根据该待处理更新记录中包括的待处理规则标识,在本地缓存中确定是否存在对应的待处理规则,若存在待处理规则,根据该待处理更新记录中包括的更新内容对待处理规则进行更新。
步骤1112,将第一时间信息更新为,每个待处理更新记录对应的第二时间信息中,指示的更新时间最新的第二时间信息。
在一种实现方式中,待处理更新记录可以包括待处理规则标识和对应的更新内容。针对每个待处理更新记录,规则执行模块先根据该待处理更新记录中包括的待处理规则标识,在本地缓存中确定是否存在待处理规则标识对应的待处理规则。如果存在待处理规则,那么规则执行模块根据该待处理更新记录中包括的更新内容对待处理规则进行更新。如果不存在待处理规则,表示本地缓存中存储的规则无需更新。进一步的,待处理更新记录中,还可以包括对应的版本号,在根据该待处理更新记录中包括的更新内容对待处理规则进行更新时,可以比较该待处理更新记录中的版本号,与本地缓存中存储的待处理规则的版本号,若该待处理更新记录中的版本号,比地缓存中存储的待处理规则的版本号新,那么根据更新内容对待处理规则进行更新。
之后,规则执行模块将至少一个第二时间信息中,指示的更新时间最新的第二时间信息,作为第一时间信息,也就是说此时第一时间信息能够指示本地缓存中存储的,更新时间最新的规则所对应的更新时间。
图9是根据一示例性实施例示出的另一种基于规则引擎的业务处理方法的流程图,如图9所示,步骤111的实现方式可以包括:
步骤1113,针对每个待处理更新记录,根据该待处理更新记录中包括的待处理规则标识,在本地缓存中确定是否存在对应的待处理规则,若存在待处理规则,从规则管理模块获取待处理规则标识对应的更新内容,并根据更新内容对待处理规则进行更新。
步骤1114,将第一时间信息更新为,每个待处理更新记录对应的第二时间信息中,指示的更新时间最新的第二时间信息。
在另一种实现方式中,待处理更新记录可以包括待处理规则标识。针对每个待处理更新记录,规则执行模块先根据该待处理更新记录中包括的待处理规则标识,在本地缓存中确定是否存在待处理规则标识对应的待处理规则。如果存在待处理规则,那么规则执行模块可以从规则管理模块获取待处理规则标识对应的更新内容,并根据获取到的更新内容对待处理规则进行更新。如果不存在待处理规则,表示本地缓存中存储的规则无需更新,那么规则执行模块无需再从规则管理模块获取待处理规则标识对应的更新内容,进一步减少了对网络资源的占用。进一步的,待处理更新记录中,还可以包括对应的版本号,在根据该待处理更新记录中包括的更新内容对待处理规则进行更新时,可以比较该待处理更新记录中的版本号,与本地缓存中存储的待处理规则的版本号,若该待处理更新记录中的版本号,比地缓存中存储的待处理规则的版本号新,那么根据更新内容对待处理规则进行更新。
之后,规则执行模块将至少一个第二时间信息中,指示的更新时间最新的第二时间信息,作为第一时间信息,也就是说此时第一时间信息能够指示本地缓存中存储的,更新时间最新的规则所对应的更新时间。
以时间信息为游标来举例,游标随着时间的推移递增,例如,游标为1指示对应的更新时间最早,游标为2对应的更新时间,在游标为1指示对应的更新时间之后,以此类推。规则执行模块上一次向规则管理模块发送更新请求后确定的第一时间信息为5,本地缓存中存储有规则五(规则标识为p5,版本号为ver2)和规则三(规则标识为p3,版本号为ver1)。规则执行模块向规则管理模块发送更新请求,其中包括的第一时间信息为5。规则管理模块上存储有7个更新记录,对应的第二时间信息为1、2、3、4、5、6、7,规则管理模块通过比较更新请求中包括的第一时间信息,和7个第二时间信息,得到两个待处理更新记录,即第二时间信息为6、7的两个更新记录。其中,第二时间信息为6的待处理更新记录中存储的规则标识为p5(版本号为ver3),第二时间信息为7的待处理更新记录中存储的规则标识为p3(版本号为ver2)。规则管理模块将两个待处理更新记录,和对应的第二时间信息发送至规则执行模块。规则执行模块确定待处理规则为规则五和规则三。如果待处理更新记录中包括对应的更新内容,那么规则执行模块直接更新规则五和规则三,如果待处理更新记录中不包括对应的更新内容,那么规则执行模块可以从规则管理模块获取p5和p3对应的更新内容,再根据更新内容更新规则五和规则三。最后,将第一时间信息更新为7。更新后的本地缓存中,存储有规则五(规则标识为p5,版本号为ver3)和规则三(规则标识为p3,版本号为ver2)。
综上所述,本公开中的规则引擎包括规则管理模块,和部署在业务系统上的规则执行模块,其中,规则管理模块中存储了业务系统对应的第一数量个规则。首先,规则执行模块在接收到业务系统发送的执行请求后,确定对应的目标规则,之后规则执行模块在业务系统的本地缓存中查找是否存在目标规则。如果本地缓存中存在目标规则,那么规则执行模块从本地缓存中获取目标规则,并按照执行请求执行目标规则,如果本地缓存中不存在目标规则,那么规则执行模块从规则管理模块获取目标规则,并按照执行请求执行目标规则。其中,本地缓存中存储了第二数量个,在预设时间范围内被规则执行模块执行的规则,且第二数量小于或等于第一数量。本公开中通过在本地缓存中存储在预设时间范围内被规则执行模块执行的规则,使得业务系统降低对网络通信的依赖,能够提高规则的查找速度和执行速度,从而提高业务处理的效率。
图10是根据一示例性实施例示出的一种规则引擎的框图,如图10所示,规则引擎200包括:规则执行模块201和规则管理模块202,规则执行模块201部署在业务系统上,规则管理模块202中存储有业务系统对应的第一数量个规则。
规则执行模块201,被配置成用于根据业务系统发送的执行请求,确定目标规则。
规则执行模块201,还被配置成用于确定业务系统的本地缓存中是否存在目标规则,本地缓存中存储有第二数量个,在预设时间范围内被规则执行模块201执行的规则,第二数量小于或等于第一数量。
规则执行模块201,还被配置成用于若本地缓存中存在目标规则,从本地缓存获取目标规则,并按照执行请求执行目标规则。
规则执行模块201,还被配置成用于若本地缓存中不存在目标规则,从规则管理模块202获取目标规则,并按照执行请求执行目标规则。
图11是根据一示例性实施例示出的另一种规则引擎的框图,如图11所示,规则执行模块201可以包括:
获取子模块2011,被配置成用于将从规则管理模块202获取的目标规则存入本地缓存。
加载子模块2012,被配置成用于加载本地缓存中存储的目标规则。
执行子模块2013,被配置成用于根据执行请求执行目标规则。
在一种实现方式中,规则执行模块201,还被配置成用于在从规则管理模块202获取目标规则,并按照执行请求执行目标规则之前,确定规则管理模块202的状态。
规则执行模块201,还被配置成用于若规则管理模块202的状态为正常,从规则管理模块202获取目标规则,并按照执行请求执行目标规则。
在另一种实现方式中,规则执行模块201,还被配置成用于若规则管理模块202的状态为异常,从备份服务器获取目标规则,并按照执行请求执行目标规则,备份服务器中存储有第一数量个规则。
在另一种实现方式中,规则执行模块201,还被配置成用于在根据业务系统发送的执行请求,确定目标规则之后,确定是否执行过目标规则。若规则执行模块201未执行过目标规则,从规则管理模块202获取目标规则,并按照执行请求执行目标规则。
规则执行模块201,还被配置成用于若规则执行模块201执行过目标规则,确定本地缓存中是否存在目标规则。
在另一种实现方式中,规则管理模块202中存储有至少一个更新记录,和每个更新记录对应的时间信息,更新记录用于记录对任一规则的更新,时间信息用于指示该更新记录对应的更新时间。
规则执行模块201,还被配置成用于向规则管理模块202发送更新请求,更新请求包括第一时间信息,第一时间信息为规则执行模块201上一次向规则管理模块202发送更新请求后确定的。
规则管理模块202,被配置成用于根据第一时间信息,确定至少一个待处理更新记录,并将每个待处理更新记录和每个待处理更新记录对应的第二时间信息发送至规则执行模块201,每个待处理更新记录对应的更新时间在第一时间信息指示的更新时间之后。
规则执行模块201,还被配置成用于根据每个待处理更新记录和每个待处理更新记录对应的第二时间信息,更新本地缓存中存储的规则和第一时间信息。
在另一种实现方式中,规则执行模块201还被配置成用于执行以下步骤:
步骤A)针对每个待处理更新记录,根据该待处理更新记录中包括的待处理规则标识,在本地缓存中确定是否存在对应的待处理规则,若存在待处理规则,根据该待处理更新记录中包括的更新内容对待处理规则进行更新。
步骤B)将第一时间信息更新为,每个待处理更新记录对应的第二时间信息中,指示的更新时间最新的第二时间信息。
在另一种实现方式中,规则执行模块201还被配置成用于执行以下步骤:
步骤C)针对每个待处理更新记录,根据该待处理更新记录中包括的待处理规则标识,在本地缓存中确定是否存在对应的待处理规则,若存在待处理规则,从规则管理模块202获取待处理规则标识对应的更新内容,并根据更新内容对待处理规则进行更新。
步骤D)将第一时间信息更新为,每个待处理更新记录对应的第二时间信息中,指示的更新时间最新的第二时间信息。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
综上所述,本公开中的规则引擎包括规则管理模块,和部署在业务系统上的规则执行模块,其中,规则管理模块中存储了业务系统对应的第一数量个规则。首先,规则执行模块在接收到业务系统发送的执行请求后,确定对应的目标规则,之后规则执行模块在业务系统的本地缓存中查找是否存在目标规则。如果本地缓存中存在目标规则,那么规则执行模块从本地缓存中获取目标规则,并按照执行请求执行目标规则,如果本地缓存中不存在目标规则,那么规则执行模块从规则管理模块获取目标规则,并按照执行请求执行目标规则。其中,本地缓存中存储了第二数量个,在预设时间范围内被规则执行模块执行的规则,且第二数量小于或等于第一数量。本公开中通过在本地缓存中存储在预设时间范围内被规则执行模块执行的规则,使得业务系统降低对网络通信的依赖,能够提高规则的查找速度和执行速度,从而提高业务处理的效率。
图12是根据一示例性实施例示出的一种电子设备300的框图。如图12所示,该电子设备300可以包括:处理器301,存储器302。该电子设备300还可以包括多媒体组件303,输入/输出(I/O)接口304,以及通信组件305中的一者或多者。
其中,处理器301用于控制该电子设备300的整体操作,以完成上述的基于规则引擎的业务处理方法中的全部或部分步骤。存储器302用于存储各种类型的数据以支持在该电子设备300的操作,这些数据例如可以包括用于在该电子设备300上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器302可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。多媒体组件303可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器302或通过通信组件305发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口304为处理器301和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件305用于该电子设备300与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near FieldCommunication,简称NFC),2G、3G、4G、NB-IOT、eMTC、或其他5G等等,或它们中的一种或几种的组合,在此不做限定。因此相应的该通信组件305可以包括:Wi-Fi模块,蓝牙模块,NFC模块等等。
在一示例性实施例中,电子设备300可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(DigitalSignal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的基于规则引擎的业务处理方法。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的基于规则引擎的业务处理方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器302,上述程序指令可由电子设备300的处理器301执行以完成上述的基于规则引擎的业务处理方法。
在另一示例性实施例中,还提供一种计算机程序产品,该计算机程序产品包含能够由可编程的装置执行的计算机程序,该计算机程序具有当由该可编程的装置执行时用于执行上述的基于规则引擎的业务处理方法的代码部分。
综上所述,本公开中的规则引擎包括规则管理模块,和部署在业务系统上的规则执行模块,其中,规则管理模块中存储了业务系统对应的第一数量个规则。首先,规则执行模块在接收到业务系统发送的执行请求后,确定对应的目标规则,之后规则执行模块在业务系统的本地缓存中查找是否存在目标规则。如果本地缓存中存在目标规则,那么规则执行模块从本地缓存中获取目标规则,并按照执行请求执行目标规则,如果本地缓存中不存在目标规则,那么规则执行模块从规则管理模块获取目标规则,并按照执行请求执行目标规则。其中,本地缓存中存储了第二数量个,在预设时间范围内被规则执行模块执行的规则,且第二数量小于或等于第一数量。本公开中通过在本地缓存中存储在预设时间范围内被规则执行模块执行的规则,使得业务系统降低对网络通信的依赖,能够提高规则的查找速度和执行速度,从而提高业务处理的效率。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,本领域技术人员在考虑说明书及实践本公开后,容易想到本公开的其它实施方案,均属于本公开的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。同时本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。本公开并不局限于上面已经描述出的精确结构,本公开的范围仅由所附的权利要求来限制。

Claims (11)

1.一种基于规则引擎的业务处理方法,其特征在于,规则引擎包括:规则执行模块和规则管理模块,所述规则执行模块部署在业务系统上,所述规则管理模块中存储有所述业务系统对应的第一数量个规则;所述方法包括:
通过所述规则执行模块根据所述业务系统发送的执行请求,确定目标规则;
通过所述规则执行模块确定所述业务系统的本地缓存中是否存在所述目标规则,所述本地缓存中存储有第二数量个,在预设时间范围内被所述规则执行模块执行的所述规则,所述第二数量小于或等于所述第一数量;
若所述本地缓存中存在所述目标规则,通过所述规则执行模块从所述本地缓存获取所述目标规则,并按照所述执行请求执行所述目标规则;
若所述本地缓存中不存在所述目标规则,通过所述规则执行模块从所述规则管理模块获取所述目标规则,并按照所述执行请求执行所述目标规则。
2.根据权利要求1所述的方法,其特征在于,所述通过所述规则执行模块从所述规则管理模块获取所述目标规则,并按照所述执行请求执行所述目标规则,包括:
将从所述规则管理模块获取的所述目标规则存入所述本地缓存;
加载所述本地缓存中存储的所述目标规则;
根据所述执行请求执行所述目标规则。
3.根据权利要求1所述的方法,其特征在于,在所述通过所述规则执行模块从所述规则管理模块获取所述目标规则,并按照所述执行请求执行所述目标规则之前,所述方法还包括:
通过所述规则执行模块确定所述规则管理模块的状态;
相应地,所述通过所述规则执行模块从所述规则管理模块获取所述目标规则,并按照所述执行请求执行所述目标规则,包括:
若所述规则管理模块的状态为正常,从所述规则管理模块获取所述目标规则,并按照所述执行请求执行所述目标规则。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
若所述规则管理模块的状态为异常,通过所述规则执行模块从备份服务器获取所述目标规则,并按照所述执行请求执行所述目标规则,所述备份服务器中存储有所述第一数量个规则。
5.根据权利要求1所述的方法,其特征在于,在所述通过所述规则执行模块根据所述业务系统发送的执行请求,确定目标规则之后,所述方法还包括:
通过所述规则执行模块确定是否执行过所述目标规则;
若所述规则执行模块未执行过所述目标规则,通过所述规则执行模块从所述规则管理模块获取所述目标规则,并按照所述执行请求执行所述目标规则;
相应地,所述通过所述规则执行模块确定所述业务系统的本地缓存中是否存在所述目标规则,包括:
若所述规则执行模块执行过所述目标规则,确定所述本地缓存中是否存在所述目标规则。
6.根据权利要求1-5中任一项所述的方法,其特征在于,所述规则管理模块中存储有至少一个更新记录,和每个所述更新记录对应的时间信息,所述更新记录用于记录对任一所述规则的更新,所述时间信息用于指示该更新记录对应的更新时间,所述方法还包括:
通过所述规则执行模块向所述规则管理模块发送更新请求,所述更新请求包括第一时间信息,所述第一时间信息为所述规则执行模块上一次向所述规则管理模块发送所述更新请求后确定的;
通过所述规则管理模块根据所述第一时间信息,确定至少一个待处理更新记录,并将每个所述待处理更新记录和每个所述待处理更新记录对应的第二时间信息发送至所述规则执行模块,每个所述待处理更新记录对应的更新时间在所述第一时间信息指示的更新时间之后;
通过所述规则执行模块根据每个所述待处理更新记录和每个所述待处理更新记录对应的所述第二时间信息,更新所述本地缓存中存储的规则和所述第一时间信息。
7.根据权利要求6所述的方法,其特征在于,所述通过所述规则执行模块根据每个所述待处理更新记录和每个所述待处理更新记录对应的所述第二时间信息,更新所述本地缓存中存储的规则和所述第一时间信息,包括:
针对每个所述待处理更新记录,根据该待处理更新记录中包括的待处理规则标识,在所述本地缓存中确定是否存在对应的待处理规则,若存在所述待处理规则,根据该待处理更新记录中包括的更新内容对所述待处理规则进行更新;
将所述第一时间信息更新为,每个所述待处理更新记录对应的所述第二时间信息中,指示的更新时间最新的所述第二时间信息。
8.根据权利要求6所述的方法,其特征在于,所述通过所述规则执行模块根据每个所述待处理更新记录和每个所述待处理更新记录对应的所述第二时间信息,更新所述本地缓存中存储的规则和所述第一时间信息,包括:
针对每个所述待处理更新记录,根据该待处理更新记录中包括的待处理规则标识,在所述本地缓存中确定是否存在对应的待处理规则,若存在所述待处理规则,从所述规则管理模块获取所述待处理规则标识对应的更新内容,并根据所述更新内容对所述待处理规则进行更新;
将所述第一时间信息更新为,每个所述待处理更新记录对应的所述第二时间信息中,指示的更新时间最新的所述第二时间信息。
9.一种规则引擎,其特征在于,所述规则引擎包括:规则执行模块和规则管理模块,所述规则执行模块部署在业务系统上,所述规则管理模块中存储有所述业务系统对应的第一数量个规则;
所述规则执行模块,被配置成用于根据所述业务系统发送的执行请求,确定目标规则;
所述规则执行模块,还被配置成用于确定所述业务系统的本地缓存中是否存在所述目标规则,所述本地缓存中存储有第二数量个,在预设时间范围内被所述规则执行模块执行的所述规则,所述第二数量小于或等于所述第一数量;
所述规则执行模块,还被配置成用于若所述本地缓存中存在所述目标规则,从所述本地缓存获取所述目标规则,并按照所述执行请求执行所述目标规则;
所述规则执行模块,还被配置成用于若所述本地缓存中不存在所述目标规则,从所述规则管理模块获取所述目标规则,并按照所述执行请求执行所述目标规则。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-8中任一项所述方法的步骤。
11.一种电子设备,其特征在于,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现权利要求1-8中任一项所述方法的步骤。
CN202010832722.9A 2020-08-18 2020-08-18 基于规则引擎的业务处理方法、规则引擎、介质和设备 Pending CN114077587A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010832722.9A CN114077587A (zh) 2020-08-18 2020-08-18 基于规则引擎的业务处理方法、规则引擎、介质和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010832722.9A CN114077587A (zh) 2020-08-18 2020-08-18 基于规则引擎的业务处理方法、规则引擎、介质和设备

Publications (1)

Publication Number Publication Date
CN114077587A true CN114077587A (zh) 2022-02-22

Family

ID=80281310

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010832722.9A Pending CN114077587A (zh) 2020-08-18 2020-08-18 基于规则引擎的业务处理方法、规则引擎、介质和设备

Country Status (1)

Country Link
CN (1) CN114077587A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117453278A (zh) * 2023-11-01 2024-01-26 国任财产保险股份有限公司 一种基于业务规则的规则管理系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117453278A (zh) * 2023-11-01 2024-01-26 国任财产保险股份有限公司 一种基于业务规则的规则管理系统
CN117453278B (zh) * 2023-11-01 2024-05-14 国任财产保险股份有限公司 一种基于业务规则的规则管理系统

Similar Documents

Publication Publication Date Title
US20150347552A1 (en) Synchronization system for multiple client devices
US9253265B2 (en) Hot pluggable extensions for access management system
KR20200093597A (ko) 콘텐츠 아이템의 동기화를 위한 고유 식별자의 할당 및 재할당
CN108683668B (zh) 内容分发网络中的资源校验方法、装置、存储介质及设备
CN109766330B (zh) 数据分片方法、装置、电子设备及存储介质
US9680692B2 (en) Method and system for using a recursive event listener on a node in hierarchical data structure
CN107315825B (zh) 一种索引更新系统、方法及装置
CN108647317B (zh) 增量文件的生成方法、装置和存储介质以及电子设备
CN112214519B (zh) 一种数据查询方法、装置、设备及可读介质
US10055475B2 (en) Authentication system, synchronization method, and authentication apparatus
US9514176B2 (en) Database update notification method
CN111240892B (zh) 数据备份方法及装置
US20200133558A1 (en) Method, device and computer program product for data backup
CN110765394A (zh) so文件加载方法、装置、存储介质及终端设备
CN114077587A (zh) 基于规则引擎的业务处理方法、规则引擎、介质和设备
CN112865927B (zh) 消息送达验证方法、装置、计算机设备和存储介质
CN112000850A (zh) 进行数据处理的方法、装置、系统及设备
CN109614442B (zh) 数据同步的数据表维护方法、装置、存储介质和电子设备
CN108959548B (zh) 业务请求的处理方法及装置
CN113608831B (zh) 一种插件实例管理方法、系统、存储介质及设备
CN110888847B (zh) 一种回收站系统及文件回收方法
CN110019259B (zh) 分布式索引服务引擎的数据更新方法、装置及存储介质
CN111159786B (zh) 一种元数据保护方法、装置及电子设备和存储介质
CN116431566B (zh) 数据迁移方法、装置、电子设备及介质
CN112578996B (zh) 一种存储系统的元数据的发送方法及存储系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination