CN116627535A - 基于规则引擎的任务执行方法、计算机设备和存储介质 - Google Patents

基于规则引擎的任务执行方法、计算机设备和存储介质 Download PDF

Info

Publication number
CN116627535A
CN116627535A CN202310548718.3A CN202310548718A CN116627535A CN 116627535 A CN116627535 A CN 116627535A CN 202310548718 A CN202310548718 A CN 202310548718A CN 116627535 A CN116627535 A CN 116627535A
Authority
CN
China
Prior art keywords
node
rule
processed
file
data
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
CN202310548718.3A
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.)
Shenzhen Kaihong Digital Industry Development Co Ltd
Original Assignee
Shenzhen Kaihong Digital Industry Development 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 Shenzhen Kaihong Digital Industry Development Co Ltd filed Critical Shenzhen Kaihong Digital Industry Development Co Ltd
Priority to CN202310548718.3A priority Critical patent/CN116627535A/zh
Publication of CN116627535A publication Critical patent/CN116627535A/zh
Pending legal-status Critical Current

Links

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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • G06F9/4451User profiles; Roaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本申请涉及规则引擎技术领域,提供一种基于规则引擎的任务执行方法、计算机设备和存储介质,方法包括:获取待处理任务的规则链的规则链信息;解析规则链信息,得到规则链对应的多个规则节点的节点标识,且多个规则节点的节点标识按照预设顺序排列;根据多个规则节点的节点标识,加载各规则节点对应的节点编译文件,节点编译文件由对应的规则节点的程序编译得到;按照多个规则节点的节点标识的排列顺序,执行各规则节点对应的节点编译文件,以处理待处理任务。通过根据规则链对应的多个规则节点,执行各规则节点对应的节点编译文件以处理规则链对应的待处理任务,可以提高规则引擎支持的规则链的可扩展性和灵活性。

Description

基于规则引擎的任务执行方法、计算机设备和存储介质
技术领域
本申请涉及规则引擎技术领域,尤其涉及一种基于规则引擎的任务执行方法、计算机设备和存储介质。
背景技术
规则引擎是对于处理复杂的事件具有灵活配置和高度定制化的特点,目前的规则引擎有很多,比如jetlinks,ThingsBoard。在目前主流的规则引擎中所用到的规则通常是内置的。例如代码内置规则引擎是将规则和代码紧密耦合,修改规则需要对代码进行修改,不够灵活。有的规则引擎是将规则写在配置文件中,用户需要通过修改配置文件来修改规则,规则缺乏可扩展性。有的规则引擎是基于脚本语言的规则引擎,使用脚本语言编写规则,也仍然存在规则缺乏可扩展性的问题。
发明内容
本申请的主要目的在于提供一种基于规则引擎的任务执行方法,旨在提供一种易用、可扩展的规则引擎解决方案。
第一方面,本申请提供一种基于规则引擎的任务执行方法,所述方法包括:
获取待处理任务的规则链的规则链信息;
解析所述规则链信息,得到所述规则链对应的多个规则节点的节点标识,且所述多个规则节点的节点标识按照预设顺序排列;
根据所述多个规则节点的节点标识,加载各所述规则节点对应的节点编译文件,所述节点编译文件由对应的规则节点的程序编译得到;
按照所述多个规则节点的节点标识的排列顺序,执行各所述规则节点对应的节点编译文件,以处理所述待处理任务。
第二方面,本申请还提供一种计算机设备,所述计算机设备包括存储器和处理器;
所述存储器,用于存储计算机程序;
所述处理器,用于执行所述计算机程序并在执行所述计算机程序时实现前述的基于规则引擎的任务执行方法。
第三方面,本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现前述的基于规则引擎的任务执行方法的步骤。
本申请提供一种基于规则引擎的任务执行方法、计算机设备和存储介质,该方法包括:获取待处理任务的规则链的规则链信息;解析所述规则链信息,得到所述规则链对应的多个规则节点的节点标识,且所述多个规则节点的节点标识按照预设顺序排列;根据所述多个规则节点的节点标识,加载各所述规则节点对应的节点编译文件,所述节点编译文件由对应的规则节点的程序编译得到;按照所述多个规则节点的节点标识的排列顺序,执行各所述规则节点对应的节点编译文件,以处理所述待处理任务。通过根据规则链对应的多个规则节点,执行各所述规则节点对应的节点编译文件以处理所述规则链对应的待处理任务,可以提高规则引擎支持的规则链的可扩展性和灵活性。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种基于规则引擎的任务执行方法的流程示意图;
图2是一实施方式中任务执行方法的应用场景示意图;
图3是一实施方式中规则链的示意图;
图4是一实施方式中基于规则引擎的任务执行方法的流程图;
图5是一实施方式中规则引擎服务模块加载节点编译文件的示意图;
图6是本申请实施例提供的一种计算机设备的结构示意性框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
附图中所示的流程图仅是示例说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解、组合或部分合并,因此实际执行的顺序有可能根据实际情况改变。
本申请实施例提供一种基于规则引擎的任务执行方法、计算机设备和存储介质。其中,该基于规则引擎的任务执行方法可应用于计算机设备中,该计算机设备可以是手机、平板电脑、笔记本电脑、台式电脑等电子设备。也可以应用于服务器中,该服务器可以是单独的服务器,也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互结合。
请参阅图1,图1是本申请的实施例提供的一种基于规则引擎的任务执行方法的流程示意图。
需要说明的是,本申请实施例提供的基于规则引擎的任务执行方法可以用于计算机设备,该计算机设备可以是手机、平板电脑、笔记本电脑、台式电脑等终端设备,也可以是服务器。其中该服务器可以是单独的服务器,也可以是服务器集群,例如可以为提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、或者大数据和人工智能平台等基础云计算服务的云服务器。为便于说明,本申请实施例主要以基于规则引擎的任务执行方法应用于服务器为例进行说明,该服务器可以称为规则引擎服务器。
如图2所示为一实施方式中任务执行方法的应用场景示意图。规则引擎服务器能够与目标设备进行通信。举例而言,规则引擎服务器获取目标设备的待处理任务的规则链的规则链信息,根据该规则链信息处理所述待处理任务。
示例性的,目标设备可以是以下至少一种:智能空调、智能冰箱、智能油烟机、智能风扇、扫地机器人、智能灯具、智能门锁、净水器、智能饮水机、智能手机、电脑、智能电视或者智能洗衣机等设备,当然也不限于此。例如目标设备可以为智能空调、智能冰箱等设备的生产商、制造商或第三方软件服务商部署的服务器,该服务器可以提供目标设备的待处理任务的规则链的规则链信息,还可以将处理所述待处理任务时生成的控制指令发送给智能空调、智能冰箱等设备,以对这些设备进行控制,该服务器可以称为物联网平台服务器。
如图1所示,该基于规则引擎的任务执行方法包括步骤S110至步骤S140。
步骤S110、获取待处理任务的规则链的规则链信息。
待处理任务的执行可以分解为多个子任务的执行,每个子任务可以通过规则节点实现,待处理任务的规则链包括这些规则节点。请参阅图3,控制智能风扇的规则链包括三个规则节点,分别为获取当前设备温度的规则节点、判断温度值的规则节点以及开启智能风扇的规则节点;通过执行规则链中的规则节点可以对待处理任务进行处理,如实现智能风扇的控制。
规则链信息用于描述规则链中包括的规则节点和规则节点之间的关系,例如规则链信息包括规则链中每个规则节点的节点标识,每个规则节点都有一个唯一的节点标识。
在一些实施方式中,待处理任务包括对目标设备,如智能风扇进行控制的任务,例如通过对获取的预设数据的处理,得到对应的控制指令,根据控制指令对目标设备进行控制;当然也不限于此,例如待处理任务还可以包括对图像、音频、文本等数据的处理,可以得到图像、音频、文本等数据的识别结果。
为便于说明,本申请实施例主要以待处理任务包括对目标设备进行控制为例进行说明。
在一些实施方式中,请参阅图4,可以从目标设备的物模型子系统获取待处理任务规则链的规则链信息。目标设备的物联网平台支持为产品定义物模型,将实际产品抽象成由属性、服务、事件所组成的数据模型,便于云端管理和数据交互。物模型是物理世界的实体东西的一个抽象,是进行数字化描述后,用于数字世界的数字模型。抽象就是要提取出产品的共同特征,形成模型。以智能灯为例,不同的灯,尽管规格不同,但它们的属性是相似,比如都有开关状态的属性,功能逻辑也相仿。我们可以将这些特征标准化,形成智能灯的物模型。物模型可以使得同一类型的设备,在设计、研发中遵循相同的功能定义,有相同的特征,实现相同的服务,比如,灯都应该有“开”和“关”两种状态。
如图4所示,规则引擎服务器部署有规则引擎服务模块以及解析模块,其中规则引擎服务模块从目标设备的物模型子系统获取待处理任务的规则链。举例而言,规则引擎服务模块可以通过查询接口向物模型子系统查询规则链,物模型子系统会将规则链的规则链信息下发给规则引擎服务模块。可选的,物模型子系统下发json格式文件定义的规则链给引擎服务,当然也不限于此。
步骤S120、解析所述规则链信息,得到所述规则链对应的多个规则节点的节点标识,且所述多个规则节点的节点标识按照预设顺序排列。
举例而言,如图4所示,规则引擎服务器的解析模块解析所述规则链信息,解析出所述规则链对应的多个规则节点的节点标识。所述规则引擎服务模块从所述解析模块获取到待处理任务的规则链的解析结果。例如参阅图3,规则引擎服务模块得到了智能控制智能风扇的规则链中顺序排列的三个规则节点各自对应的节点标识。
在一些实施方式中,所述解析所述规则链信息,得到所述规则链对应的多个规则节点的节点标识,包括:解析所述规则链信息,得到所述规则链对应的源数据获取节点、数据处理节点、目标数据输出节点各自的节点标识。其中源数据获取节点用于获取所述待处理任务的待处理数据,数据处理节点用于对所述待处理数据和/或至少另一数据处理节点处理后的数据进行处理,目标数据输出节点用于根据所述数据处理节点处理后的数据输出目标数据。
可选的,请参阅图4,规则引擎服务模块可以将待处理数据传递给解析模块进行消息解析,由解析模块返回解析结果,规则引擎服务模块将解析得到的数据存储到相应位置,如外部存储中;规则引擎服务模块可以控制源数据获取节点从解析得到的数据的存储位置获取所述解析得到的数据。
请参阅图3,“获取当前设备温度”的规则节点为源数据获取节点,“判断温度值”的规则节点为数据处理节点,“开启智能风扇”的规则节点为目标数据输出节点;依次执行这三个规则节点,可以实现控制智能风扇的待处理任务。
示例性的,所述待处理任务的待处理数据,包括所述目标设备对应的控制参考信息,如智能风扇的控制参考信息包括当前设备温度,如智能风扇所处环境的温度。“判断温度值”的规则节点可以根据智能风扇所处环境的温度确定是否开启智能风扇,例如在判定需要开启智能风扇时生成开启智能风扇的控制指令。
示例性的,向所述目标设备输出的目标数据,包括所述目标设备的控制指令,所述控制指令用于对所述目标设备进行控制。目标设备的控制指令例如包括开启智能风扇的控制指令,根据该控制指令可以开启智能风扇,实现控制智能风扇的待处理任务。
步骤S130、根据所述多个规则节点的节点标识,加载各所述规则节点对应的节点编译文件,所述节点编译文件由对应的规则节点的程序编译得到。
举例而言,每个节点编译文件对应的规则节点都有一个唯一的标志符,这个标志符与物模型子系统下发的规则链中的规则节点的标识符一致,以便规则引擎服务器在解析完规则链后可以根据规则节点的节点标识准确的加载各所述规则节点对应的节点编译文件。
每个节点编译文件都有自己特有的处理事务的逻辑,完成不同的事务,不同节点编译文件之间也是相互独立的,没有相互依赖性,可以实现节点编译文件的灵活调用,通过灵活调用所需规则节点对应的节点编译文件实现对规则链对应的待处理任务的实现。
节点编译文件由对应的规则节点的程序编译得到,例如“获取当前设备温度”的规则节点对应的节点编译文件可以由获取智能风扇所处环境温度的程序编译得到;“判断温度值”的规则节点对应的节点编译文件可以由智能风扇所处环境温度与预设温度阈值进行比较以生成控制指令的程序编译得到;“开启智能风扇”的规则节点对应的节点编译文件可以由发送控制指令的程序编译得到。
请参阅图5,每个节点编译文件都是在单独的文件中进行实现,与规则引擎服务模块之间是独立存在的,节点编译文件与规则引擎服务模块之间是去耦合的,没有互相依赖性。
在一些实施方式中,节点编译文件可以称为插件或者可以称为so库文件。例如每个规则节点的程序可以进行单独编译,编译完都是以so库文件的方式存储。
举例而言,对应不同的场景可以创建具有针对性的节点编译文件,例如提供可视化界面对规则节点的节点编译文件进行制作,对规则节点的属性以图形化界面进行设置,通过脚本自动可以生成对应的节点编译文件。用户可以定制化各种类型的规则节点的节点编译文件,通过将这些规则节点以节点编译文件的方式加载和执行,可以使得规则引擎服务器适用于不同的客户需求和应用场景。
示例性的,规则引擎服务模块可以根据解析出来的规则节点列表,即多个规则节点的节点标识,通过动态链接库的方式来加载列表中存在的各所述规则节点对应的节点编译文件;还可以根据规则节点列表中规则节点的节点标识的顺序,将这些节点编译文件合成为对应的规则链。
请参阅图4,所述规则引擎服务模块根据从解析模块获取到的按预设顺序排列的多个规则节点的节点标识后,根据各规则节点的唯一节点标识加载各规则节点对应的节点编译文件,从而获取到待处理任务的规则链对应的多个节点编译文件。
步骤S140、按照所述多个规则节点的节点标识的排列顺序,执行各所述规则节点对应的节点编译文件,以处理所述待处理任务。
规则节点按照规则链信息指示的顺序排列,通过按照该排列顺序执行各规则节点的节点编译文件,可以对该规则链对应的待处理任务进行处理。
在一些实施方式中,所述按照所述多个规则节点的节点标识的排列顺序,执行各所述规则节点对应的节点编译文件,以处理所述待处理任务,包括:执行所述源数据获取节点,以获取所述待处理任务的待处理数据;执行所述数据处理节点,以对所述待处理数据处理后的数据进行处理;执行所述目标数据输出节点,以根据所述数据处理节点处理后的数据输出目标数据。通过对获取的待处理数据进行处理,以及根据处理后的数据输出目标数据,可以实现待处理任务对应的数据获取、数据处理、数据输出的各项子任务,从而实现对所述待处理任务的处理。
在一些实施方式中,执行所述数据处理节点时,还可以对至少另一数据处理节点处理后的数据进行处理。举例而言,规则链包括多个数据处理节点,多个数据处理节点可以顺序排列,或者其中部分数据处理节点并行排列;后面的数据处理节点可以对前面的数据处理节点处理后的数据进行再次处理;因此单个数据处理节点的数据处理逻辑比较简单,通过多个数据处理节点可以实现较为复杂的数据处理逻辑,且多个数据处理节点组合可以实现丰富的规则链,灵活性、可重用性更好。
示例性的,所述执行所述源数据获取节点,以获取所述待处理任务的待处理数据,包括:执行所述源数据获取节点,以获取所述目标设备的所述待处理任务的待处理数据;所述执行所述目标数据输出节点,以根据所述数据处理节点处理后的数据输出目标数据,包括:执行所述目标数据输出节点,以根据所述数据处理节点处理后的数据,向所述目标设备输出目标数据。可以根据从目标设备获取的待处理数据,向目标设备输出对应的目标数据,以完成目标设备所需执行的待处理任务。
举例而言,所述目标设备的所述待处理任务的待处理数据,包括所述目标设备对应的控制参考信息,如智能风扇所处环境的温度;向所述目标设备输出的目标数据,包括所述目标设备的控制指令,如开启智能风扇的控制指令,所述控制指令用于对所述目标设备进行控制,如开启智能风扇以对所处环境的温度进行调节。可选的,规则引擎服务器可以将控制指令直接发送给所述目标设备,也可以通过物模型子系统将通过控制指令直接发送给所述目标设备。
请结合图4参阅图3,控制加载的各所述规则节点对应的节点编译文件执行各自的子任务,例如控制“获取当前设备温度”的规则节点(源数据获取节点)对应的节点编译文件获取智能风扇所处环境温度(待处理数据);控制“判断温度值”的规则节点(数据处理节点)对应的节点编译文件由智能风扇所处环境温度与预设温度阈值进行比较以生成控制指令的程序编译;以及控制“开启智能风扇”的规则节点(目标数据输出节点)对应的节点编译文件发送控制指令给智能风扇;以对所述待处理任务进行处理。每个节点编译文件根据对应的执行顺序依次执行以实现各规则节点对应的子任务,执行各规则节点后,返回结果给规则引擎服务模块或者调用物模型子系统的接口去控制相应的目标设备。
在一些实施方式中,所述方法还包括:向目标设备对应的物模型子系统发送消息回调接口的注册请求,以使所述目标设备对应的物模型子系统注册所述消息回调接口;所述执行所述源数据获取节点,以获取所述待处理任务的待处理数据,包括:在通过所述消息回调接口获取到所述目标设备的所述待处理任务的待处理数据时,执行所述源数据获取节点,以使所述源数据获取节点获取所述待处理数据。
请参阅图4,可以规则引擎服务模块初始化后向目标设备对应的物模型子系统注册消息回调,当物模型子系统有目标设备的待处理数据,如智能风扇所处环境的温度下发时,规则引擎服务器可以控制源数据获取节点通过所述消息回调接口获取所述待处理数据。
通过消息回调的方式可以及时响应物模型子系统的数据处理请求,完成所述规则链对应的待处理任务;例如可以防止各规则节点对应的节点编译文件被不必要的任务占用,而影响对及时性要求较高的待处理任务的处理。
在一些实施方式中,所述根据所述多个规则节点的节点标识,加载各所述规则节点对应的节点编译文件,包括:根据所述多个规则节点的节点标识,从文件库中加载各所述规则节点对应的节点编译文件,所述文件库用于存储多个规则节点各自对应的节点编译文件。
这些节点编译文件统一放在文件库,如一个目录下,可以便于进行统一管理。之后需要添加或删除这些节点编译文件,只要对这个文件库下的节点编译文件进行操作即可。
可选的,所述文件库可以部署于所述规则引擎服务器,也可以部署于除所述规则引擎服务器之外的其他服务器。所述节点编译文件统一存放在所述文件库中可以方便开发人员对节点编译文件进行管理,例如可以根据需要独立开发和维护对应的节点编译文件。
通过以节点编译文件的形式,或者称为以插件的形式对规则节点进行管理,可以便于用户灵活的管理规则节点,例如可以根据需要轻松地扩展规则节点,如方便的添加、修改和删除规则。
示例性的,所述方法还包括:在获取到预设的文件管理操作时,根据所述文件管理操作进行以下至少一项:在所述文件库中增加节点编译文件、删除所述文件库的节点编译文件、对所述文件库中的节点编译文件进行替换。即文件库中节点编译文件的文件管理操作可以包括节点编译文件的添加、删除、替换等操作。因此本申请实施例的规则引擎服务器具有较强的可扩展性和灵活性,例如可以通过节点编译文件的文件管理操作,使规则引擎服务器支持更丰富的规则链和任务。例如可以根据客户需求和不同的应用场景在文件库中添加和删除节点编译文件。
示例性的,所述在所述文件库中增加节点编译文件,包括:获取到的文件管理操作包括增加节点编译文件时,确定增加的节点编译文件是否符合预设的API接口(应用程序编程接口)标准;在增加的节点编译文件符合所述API接口标准时,在所述文件库中增加所述节点编译文件。
示例性的,所述对所述文件库中的节点编译文件进行替换,包括:获取到的文件管理操作包括对节点编译文件进行替换时,确定替换的节点编译文件是否符合预设的API接口标准;在替换的节点编译文件符合所述API接口标准时,对所述文件库中的节点编译文件进行替换。
举例而言,所述文件库中的节点编译文件应符合预设的API接口标准,以便规则引擎服务器基于所述API接口标准与各节点编译文件进行交互。
举例而言,所述文件库在进行增加节点编译文件或替换节点编译文件时,可以先判断要增加或替换的节点编译文件是否符合所述API接口标准;当所述节点编译文件符合所述API接口标准时,可以在所述文件库中增加此节点编译文件,或者对所述文件库中的节点编译文件进行替换;如果所述节点编译文件不符合所述API接口标准,则不能进行文件库中的节点编译文件的增加或替换;可选的,所述节点编译文件不符合所述API接口标准时,还可以将所述节点编译文件加入黑名单中,若再次接收到所述节点编译文件的添加或者替换请求时,可直接根据所述黑名单不对所述节点编译文件进行增加或者替换操作。
通过节点编译文件提供的API接口,可以便于用户评估节点编译文件对应的数据和应用对应的规则节点,可以不需要进行大量的编程工作。
需要说明的是,相关技术的规则引擎有些将规则节点的代码内置在规则引擎的代码中,将规则和规则引擎的代码紧密耦合,修改规则节点时需要对代码进行修改,不够灵活。相关技术的规则引擎还有些是将规则引擎的规则节点写在配置文件中,用户可以通过修改配置文件修改规则引擎的规则节点,但缺乏可扩展性。相关技术的规则引擎还有些是基于脚本语言的规则引擎,使用脚本语言编写规则节点,要求用户对规则语言等有一定的技术知识,因此设计规则通常困难且繁琐,仍然存在缺乏可扩展性的问题。且相关技术中规则和代码紧密耦合,因此更新规则通常很难且容易引起错误,不能较好的适应不断变化的业务需求。
本申请实施例中节点编译文件与规则引擎服务模块之间是去耦合的,对节点编译文件的文件管理操作不会影响规则引擎服务模块,具有较好的可维护性。通过添加、删除、替换节点编译文件实现对规则引擎服务器支持的规则链和任务进行扩展等管理,可以降低用户对编程语言等技术知识的门槛要求,使得开发人员不需要具备深入的技术知识即可管理规则引擎服务器支持的规则链,具有较高的易用性、可扩展性和可维护性。例如用户只需要根据节点编译文件对应的说明,将所需的节点编译文件添加或替换到文件库中即可实现对规则引擎服务器支持的规则链和任务进行扩展等管理,便于用户更灵活的管理规则引擎服务器支持的规则链,并可以根据需要轻松地扩展规则引擎服务器支持的规则链。举例而言,本申请实施例的方法可以广泛应用于各种领域,如物联网、业务流程管理、决策支持系统、信用评估等,当然也不限于此。
在一些实施方式中,节点编译文件与规则引擎服务模块之间是去耦合的,使得规则引擎服务器可以并行执行多个规则链的待处理任务,执行效率较高。例如在同一时刻由不同的规则节点的节点编译文件实现不同规则链的子任务,同一规则节点的节点编译文件也可以在不同的时间实现不同规则链的子任务,节点编译文件具有较高的可重用性。通过可重用的节点编译文件可以实现规则引擎服务器支持的规则链的可扩展性。
本申请实施例提供基于规则引擎的任务执行方法,包括:获取待处理任务的规则链的规则链信息;解析所述规则链信息,得到所述规则链对应的多个规则节点的节点标识,且所述多个规则节点的节点标识按照预设顺序排列;根据所述多个规则节点的节点标识,加载各所述规则节点对应的节点编译文件,所述节点编译文件由对应的规则节点的程序编译得到;按照所述多个规则节点的节点标识的排列顺序,执行各所述规则节点对应的节点编译文件,以处理所述待处理任务。通过根据规则链对应的多个规则节点,执行各所述规则节点对应的节点编译文件以处理所述规则链对应的待处理任务,可以提高规则引擎支持的规则链的可扩展性和灵活性。
示例性的,上述的方法可以实现为一种计算机程序的形式,该计算机程序可以在计算机设备上运行。
请参阅图6,图6是本申请实施例提供的一种计算机设备的结构示意性框图。该计算机设备可以为服务器或终端设备。该计算机设备可以是手机、平板电脑、笔记本电脑、台式电脑等终端设备,也可以是服务器,如规则引擎服务器。
举例而言,规则引擎服务器获取目标设备的待处理任务的规则链的规则链信息,根据该规则链信息处理所述待处理任务。举例而言,目标设备可以智能家居设备等,或者可以为为智能家居设备的生产商、制造商或第三方软件服务商部署的服务器,该服务器例如部署有物模型子系统,物模型子系统可以用于对智能家居设备进行控制,该服务器可以称为物联网平台服务器。
如图6所示,该计算机设备包括通过系统总线连接的处理器、存储器和网络接口,其中,存储器可以包括存储介质和内存储器。
存储介质可存储操作系统和计算机程序。该计算机程序包括程序指令,该程序指令被执行时,可使得处理器执行任意一种基于规则引擎的任务执行方法。
处理器用于提供计算和控制能力,支撑整个计算机设备的运行。
内存储器为存储介质中的计算机程序的运行提供环境,该计算机程序被处理器执行时,可使得处理器执行任意一种基于规则引擎的任务执行方法。
该网络接口用于进行网络通信,如发送分配的任务等。本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
应当理解的是,处理器可以是中央处理单元(Central Processing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可变成逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
其中,在一个实施例中,所述处理器用于运行存储在存储器中的计算机程序,以实现如下步骤:
获取待处理任务的规则链的规则链信息;
解析所述规则链信息,得到所述规则链对应的多个规则节点的节点标识,且所述多个规则节点的节点标识按照预设顺序排列;
根据所述多个规则节点的节点标识,加载各所述规则节点对应的节点编译文件,所述节点编译文件由对应的规则节点的程序编译得到;
按照所述多个规则节点的节点标识的排列顺序,执行各所述规则节点对应的节点编译文件,以处理所述待处理任务。
在一些实施方式中,所述处理器用于所述解析所述规则链信息,得到所述规则链对应的多个规则节点的节点标识时,用于
解析所述规则链信息,得到所述规则链对应的源数据获取节点、数据处理节点、目标数据输出节点各自的节点标识;
所述处理器用于所述按照所述多个规则节点的节点标识的排列顺序,执行各所述规则节点对应的节点编译文件,以处理所述待处理任务时,用于
执行所述源数据获取节点,以获取所述待处理任务的待处理数据;
执行所述数据处理节点,以对所述待处理数据和/或至少另一数据处理节点处理后的数据进行处理;
执行所述目标数据输出节点,以根据所述数据处理节点处理后的数据输出目标数据。
在一些实施方式中,所述处理器用于所述执行所述源数据获取节点,以获取所述待处理任务的待处理数据时,用于执行所述源数据获取节点,以获取所述目标设备的所述待处理任务的待处理数据;
所述处理器用于所述执行所述目标数据输出节点,以根据所述数据处理节点处理后的数据输出目标数据时,用于执行所述目标数据输出节点,以根据所述数据处理节点处理后的数据,向所述目标设备输出目标数据。
在一些实施方式中,所述目标设备的所述待处理任务的待处理数据,包括所述目标设备对应的控制参考信息;
向所述目标设备输出的目标数据,包括所述目标设备的控制指令,所述控制指令用于对所述目标设备进行控制。
在一些实施方式中,所述处理器还用于:
向目标设备对应的物模型子系统发送消息回调接口的注册请求,以使所述目标设备对应的物模型子系统注册所述消息回调接口;
所述执行所述源数据获取节点,以获取所述待处理任务的待处理数据时,用于在通过所述消息回调接口获取到所述目标设备的所述待处理任务的待处理数据时,执行所述源数据获取节点,以使所述源数据获取节点获取所述待处理数据。
在一些实施方式中,所述处理器用于所述根据所述多个规则节点的节点标识,加载各所述规则节点对应的节点编译文件时,用于
根据所述多个规则节点的节点标识,从文件库中加载各所述规则节点对应的节点编译文件,所述文件库用于存储多个规则节点各自对应的节点编译文件。
在一些实施方式中,所述处理器还用于:
在获取到预设的文件管理操作时,根据所述文件管理操作进行以下至少一项:在所述文件库中增加节点编译文件、删除所述文件库的节点编译文件、对所述文件库中的节点编译文件进行替换。
在一些实施方式中,所述处理器用于所述在所述文件库中增加节点编译文件时,用于获取到的文件管理操作包括增加节点编译文件时,确定增加的节点编译文件是否符合预设的API接口标准;在增加的节点编译文件符合所述API接口标准时,在所述文件库中增加所述节点编译文件;和/或
所述处理器用于所述对所述文件库中的节点编译文件进行替换时,用于获取到的文件管理操作包括对节点编译文件进行替换时,确定替换的节点编译文件是否符合预设的API接口标准;在替换的节点编译文件符合所述API接口标准时,对所述文件库中的节点编译文件进行替换。
需要说明的是,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述计算机设备的工作过程和原理,可以参考前述基于规则引擎的任务执行方法实施例中的对应过程,在此不再赘述。
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序中包括程序指令,程序指令被执行时所实现的方法可参照本申请基于规则引擎的任务执行方法的各个实施例。
其中,所述计算机可读存储介质可以是前述实施例所述的计算机设备的内部存储单元,例如所述计算机设备的硬盘或内存。所述计算机可读存储介质也可以是所述计算机设备的外部存储设备,例如所述计算机设备上配备的插接式硬盘,智能存储卡(SmartMedia Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。
应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

Claims (10)

1.一种基于规则引擎的任务执行方法,其特征在于,所述方法包括:
获取待处理任务的规则链的规则链信息;
解析所述规则链信息,得到所述规则链对应的多个规则节点的节点标识,且所述多个规则节点的节点标识按照预设顺序排列;
根据所述多个规则节点的节点标识,加载各所述规则节点对应的节点编译文件,所述节点编译文件由对应的规则节点的程序编译得到;
按照所述多个规则节点的节点标识的排列顺序,执行各所述规则节点对应的节点编译文件,以处理所述待处理任务。
2.根据权利要求1所述的基于规则引擎的任务执行方法,其特征在于,所述解析所述规则链信息,得到所述规则链对应的多个规则节点的节点标识,包括:
解析所述规则链信息,得到所述规则链对应的源数据获取节点、数据处理节点、目标数据输出节点各自的节点标识;
所述按照所述多个规则节点的节点标识的排列顺序,执行各所述规则节点对应的节点编译文件,以处理所述待处理任务,包括:
执行所述源数据获取节点,以获取所述待处理任务的待处理数据;
执行所述数据处理节点,以对所述待处理数据和/或至少另一数据处理节点处理后的数据进行处理;
执行所述目标数据输出节点,以根据所述数据处理节点处理后的数据输出目标数据。
3.根据权利要求2所述的基于规则引擎的任务执行方法,其特征在于,所述执行所述源数据获取节点,以获取所述待处理任务的待处理数据,包括:执行所述源数据获取节点,以获取所述目标设备的所述待处理任务的待处理数据;
所述执行所述目标数据输出节点,以根据所述数据处理节点处理后的数据输出目标数据,包括:执行所述目标数据输出节点,以根据所述数据处理节点处理后的数据,向所述目标设备输出目标数据。
4.根据权利要求3所述的基于规则引擎的任务执行方法,其特征在于,所述目标设备的所述待处理任务的待处理数据,包括所述目标设备对应的控制参考信息;
向所述目标设备输出的目标数据,包括所述目标设备的控制指令,所述控制指令用于对所述目标设备进行控制。
5.根据权利要求3所述的基于规则引擎的任务执行方法,其特征在于,还包括:
向目标设备对应的物模型子系统发送消息回调接口的注册请求,以使所述目标设备对应的物模型子系统注册所述消息回调接口;
所述执行所述源数据获取节点,以获取所述待处理任务的待处理数据,包括:在通过所述消息回调接口获取到所述目标设备的所述待处理任务的待处理数据时,执行所述源数据获取节点,以使所述源数据获取节点获取所述待处理数据。
6.根据权利要求1-5中任一项所述的基于规则引擎的任务执行方法,其特征在于,所述根据所述多个规则节点的节点标识,加载各所述规则节点对应的节点编译文件,包括:
根据所述多个规则节点的节点标识,从文件库中加载各所述规则节点对应的节点编译文件,所述文件库用于存储多个规则节点各自对应的节点编译文件。
7.根据权利要求6所述的基于规则引擎的任务执行方法,其特征在于,所述方法还包括:
在获取到预设的文件管理操作时,根据所述文件管理操作进行以下至少一项:在所述文件库中增加节点编译文件、删除所述文件库的节点编译文件、对所述文件库中的节点编译文件进行替换。
8.根据权利要求7所述的基于规则引擎的任务执行方法,其特征在于,所述在所述文件库中增加节点编译文件,包括:获取到的文件管理操作包括增加节点编译文件时,确定增加的节点编译文件是否符合预设的API接口标准;在增加的节点编译文件符合所述API接口标准时,在所述文件库中增加所述节点编译文件;和/或
所述对所述文件库中的节点编译文件进行替换,包括:获取到的文件管理操作包括对节点编译文件进行替换时,确定替换的节点编译文件是否符合预设的API接口标准;在替换的节点编译文件符合所述API接口标准时,对所述文件库中的节点编译文件进行替换。
9.一种计算机设备,其特征在于,所述计算机设备包括存储器和处理器;
所述存储器,用于存储计算机程序;
所述处理器,用于执行所述计算机程序并在执行所述计算机程序时实现如权利要求1至8中任一项所述的基于规则引擎的任务执行方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现如权利要求1至8中任一项所述的基于规则引擎的任务执行方法的步骤。
CN202310548718.3A 2023-05-16 2023-05-16 基于规则引擎的任务执行方法、计算机设备和存储介质 Pending CN116627535A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310548718.3A CN116627535A (zh) 2023-05-16 2023-05-16 基于规则引擎的任务执行方法、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310548718.3A CN116627535A (zh) 2023-05-16 2023-05-16 基于规则引擎的任务执行方法、计算机设备和存储介质

Publications (1)

Publication Number Publication Date
CN116627535A true CN116627535A (zh) 2023-08-22

Family

ID=87616426

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310548718.3A Pending CN116627535A (zh) 2023-05-16 2023-05-16 基于规则引擎的任务执行方法、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN116627535A (zh)

Similar Documents

Publication Publication Date Title
CN111737032B (zh) 一种基于微内核系统的子程序运行方法、装置和电子设备
CN111596969B (zh) 一种基于微内核加插件式的软件架构方法
CN109492181B (zh) 页面跳转方法、装置、计算机设备和存储介质
CN112769706B (zh) 组件化路由方法及系统
CN108845800B (zh) 一种组件扩展功能的实现方法、装置、设备及存储介质
CN109213533A (zh) 一种广告sdk动态加载方法、装置及终端
CN109213536A (zh) 资源展示方法、资源展示类控件的配置方法、装置及设备
US20180032329A1 (en) Customized runtime environment
CN111683005B (zh) 一种物联网智能网关设备及其构建方法
CN109683992B (zh) 用于管理对象的方法和装置
CN113032004B (zh) 在开发环境中管理开发作业的方法、设备和程序产品
CN111666074B (zh) 一种web应用定制的方法、相关装置及系统
CN110704041A (zh) 软件开发方法及装置
CN111158777A (zh) 组件调用方法、装置及计算机可读存储介质
CN110955415A (zh) 一种投影多平台服务适配的方法
CN116627535A (zh) 基于规则引擎的任务执行方法、计算机设备和存储介质
CN115840598A (zh) 基于应用市场的微前端架构系统、开发方法、设备和介质
CN115729590A (zh) 服务部署方法、装置、设备和计算机可读存储介质
CN115269040A (zh) 一种租户业务应用的拓展方法、装置及系统
CN115129348A (zh) 应用程序的资源更新方法、装置、设备及可读存储介质
CN113626001A (zh) 一种基于脚本的api动态编排方法及装置
US20220283789A1 (en) Methods and apparatuses for providing a function as a service platform
CN113722538B (zh) 一种界面动态渲染方法及装置
CN117076160B (zh) 组件调用方法、装置、设备和存储介质
CN111538484B (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