一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于表达式的执行方法、装置以及存储介质与流程

2022-11-19 10:43:46 来源:中国专利 TAG:


1.本技术涉及信息技术领域,特别是涉及一种基于表达式的执行方法、装置以及存储介质。


背景技术:

2.目前,许多需求由于业务的变化和发展,会有一些功能上或者逻辑上的调整,而如果都是硬编码,每次的调整都需要开发代码并发布服务。针对上述问题,现有的技术主要有两种方法:第一种方法主要是通过数据库字段可配置,或者通过json格式对一些核心的易变参数进行配置的方式,这种方式可以精确到具体指标配置,对业务友好,但是不支持普通的逻辑控制,业务逻辑还必须要硬编码在代码里,从而导致效率降低。第二种主要是通过各种表达式来实现可配置,并能实现较复杂的逻辑控制,但是由于涉及到编码知识,对普通业务人员不是太友好,调试起来也不是太方便。
3.针对上述的现有技术中存在的业务逻辑频繁变更而造成的效率低以及调试困难的技术问题,目前尚未提出有效的解决方案。


技术实现要素:

4.本技术的实施例提供了一种基于表达式的执行方法、装置以及存储介质,以至少解决现有技术中存在的业务逻辑频繁变更而造成的效率低以及调试困难的技术问题。
5.根据本技术实施例的一个方面,提供了一种基于表达式的执行方法,包括:预先配置与多个业务对应的第一表达式,将第一表达式进行预编译,生成相应的第一数据序列;从第一数据序列中确定与目标业务对应的第二数据序列;以及根据第二数据序列得到执行结果。
6.根据本技术实施例的另一个方面,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时由处理器执行以上任意一项所述的方法。
7.根据本技术实施例的另一个方面,还提供了一种基于表达式的执行装置,包括:第一生成模块,用于预先配置与多个业务对应的第一表达式,将第一表达式进行预编译,生成相应的第一数据序列;序列确定模块,用于从第一数据序列中确定与目标业务对应的第二数据序列;以及第二生成模块,用于根据第二数据序列得到执行结果。
8.根据本技术实施例的另一个方面,还提供了一种基于表达式的执行装置,包括:处理器;以及存储器,与处理器连接,用于为处理器提供处理以下处理步骤的指令:预先配置与多个业务对应的第一表达式,将第一表达式进行预编译,生成相应的第一数据序列;从第一数据序列中确定与目标业务对应的第二数据序列;以及根据第二数据序列得到执行结果。
9.在本技术实施例中,计算设备对所有的表达式进行预编译,并将生成的第一数据序列进行存储。从而当需要使用该表达式实现业务或者进行逻辑上的调整时,就无需实时对表达式进行预编译。并且通过表达式的方式实现业务功能,从而无需编码就可以快速实
现业务功能,提高了开发效率。并且本技术方案通过拖拽参数标签配置表达式,对逻辑判断的展现更直观,普通业务人员也可配置,无需进行代码调试,保证了表达式的适用性。进而解决了现有技术中存在的业务逻辑频繁变更而造成的效率低以及调试困难的技术问题。
附图说明
10.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
11.图1是用于实现根据本技术实施例1所述的方法的计算设备的硬件结构框图;
12.图2是根据本技术实施例1的第一个方面所述的基于表达式的执行方法的流程示意图;
13.图3是根据本技术实施例1的第一个方面所述的基于表达式的执行方法的又一个流程示意图;
14.图4是根据本技术实施例2所述的基于表达式的执行装置的示意图;以及
15.图5是根据本技术实施例3所述的基于表达式的执行装置的示意图。
具体实施方式
16.为了使本技术领域的人员更好地理解本技术的技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本技术一部分的实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本技术保护的范围。
17.需要说明的是,本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
18.实施例1
19.根据本实施例,提供了一种基于表达式的执行方法的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
20.本实施例所提供的方法实施例可以在移动终端、计算机终端、服务器或者类似的计算设备中执行。图1示出了一种用于实现基于表达式的执行方法的计算设备的硬件结构框图。如图1所示,计算设备可以包括一个或多个处理器(处理器可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)、用于存储数据的存储器、以及用于通信功能的传输装置。除此以外,还可以包括:显示器、输入/输出接口(i/o接口)、通用串行总线(usb)端口(可以作为i/o接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本
领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算设备还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
21.应当注意到的是上述一个或多个处理器和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算设备中的其他元件中的任意一个内。如本技术实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
22.存储器可用于存储应用软件的软件程序以及模块,如本技术实施例中的基于表达式的执行方法对应的程序指令/数据存储装置,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的基于表达式的执行方法。存储器可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至计算设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
23.传输装置用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算设备的通信供应商提供的无线网络。在一个实例中,传输装置包括一个网络适配器(network interface controller,nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置可以为射频(radio frequency,rf)模块,其用于通过无线方式与互联网进行通讯。
24.显示器可以例如触摸屏式的液晶显示器(lcd),该液晶显示器可使得用户能够与计算设备的用户界面进行交互。
25.此处需要说明的是,在一些可选实施例中,上述图1所示的计算设备可以包括硬件元件(包括电路)、软件元件(包括存储在计算机可读介质上的计算机代码)、或硬件元件和软件元件两者的结合。应当指出的是,图1仅为特定具体实例的一个实例,并且旨在示出可存在于上述计算设备中的部件的类型。
26.在上述运行环境下,根据本实施例的第一个方面,提供了一种基于表达式的执行方法,该方法由图1中所示的计算设备实现。图2示出了该方法的流程示意图,参考图2所示,该方法包括:
27.s202:预先配置与多个业务对应的第一表达式,将第一表达式进行预编译,生成相应的第一数据序列;
28.s204:从第一数据序列中确定与目标业务对应的第二数据序列;以及
29.s206:根据第二数据序列得到执行结果。
30.具体地,后台配置系统预先设置有多个用于配置表达式的标签,计算设备通过对标签进行拖拽,从而组合为表达式(即,第一表达式)。其中第一表达式用于生成业务逻辑,并且第一表达式的数量为多个。从而计算设备通过后台配置系统预先配置与所有业务对应的第一表达式。之后将第一表达式进行预编译,从而生成相应的数据序列(即,第一数据序列),其中数据序列例如可以为md5值。
31.进一步地,计算设备要实现目标业务,会根据目标业务的业务id确定与目标业务
对应的表达式(即,第二表达式),并从所有的第一表达式中获取与该表达式(即,第二表达式)对应的数据序列(即,第二数据序列)。
32.进一步地,计算设备将与目标业务对应的数据序列进行执行,得到相应的执行结果,从而完成目标业务的开发。
33.正如背景技术中所述的,目前,许多需求由于业务的变化和发展,会有一些功能上或者逻辑上的调整,而如果都是硬编码,每次的调整都需要开发代码并发布服务。针对上述问题,现有的技术主要有两种方法:第一种方法主要是通过数据库字段可配置,或者通过json格式对一些核心的易变参数进行配置的方式,这种方式可以精确到具体指标配置,对业务友好,但是不支持普通的逻辑控制,业务逻辑还必须要硬编码在代码里,从而导致效率降低。第二种主要是通过各种表达式来实现可配置,并能实现较复杂的逻辑控制,但是由于涉及到编码知识,对普通业务人员不是太友好,调试起来也不是太方便。
34.针对以上所述的技术问题,通过本技术实施例的技术方案,计算设备对所有的表达式进行预编译,并将生成的第一数据序列进行存储。从而当需要使用该表达式实现业务或者进行逻辑上的调整时,就无需实时对表达式进行预编译。并且通过表达式的方式实现业务功能,从而无需编码就可以快速实现业务功能,提高了开发效率。并且本技术方案通过拖拽参数标签配置表达式,对逻辑判断的展现更直观,普通业务人员也可配置,无需进行代码调试,保证了表达式的适用性。进而解决了现有技术中存在的业务逻辑频繁变更而造成的效率低以及调试困难的技术问题。
35.可选地,从第一数据序列中确定与目标业务对应的第二数据序列的操作,包括:根据目标业务确定对应的第二表达式;根据第二表达式生成相应的哈希值;以及根据哈希值从第一数据序列中确定第二数据序列。
36.具体地,参考图3所示,计算设备根据业务目标的id,确定与其对应的表达式(即,第二表达式)。之后计算设备根据该表达式生成表达式的哈希值,并根据该哈希值与所有的第一数据序列的key值进行匹配,从而查询到与该哈希值对应的数据序列(即,第二数据序列)。其中每个第一数据序列都有唯一对应的key值,并且其中key值为哈希值。
37.此外,在计算设备未查询到与哈希值对应的数据序列的情况下,计算设备会直接根据与目标业务对应的第二表达式,生成相应的数据序列,并将该数据序列进行存储。
38.从而本技术方案通过哈希值查询预先存储的数据序列,从而提高了查询的效率和速度。
39.可选地,方法还包括:将第一数据序列存储至数据库和/或缓存。
40.具体地,计算设备在生成第一数据序列后,将第一数据序列存储至数据库和/或缓存中,并生成与第一数据序列唯一对应的key值,并且将key值一并进行存储。之后计算设备可以从数据库或者缓存中获取与目标业务对应的数据序列。从而本技术方案通过将数据序列进行存储,从而提高了数据序列的安全性。
41.可选地,方法还包括:在预先配置与多个业务对应的第一表达式的情况下,对第一表达式进行校验。
42.具体地,计算设备在配置与多个业务对应的第一表达式后,会对第一表达式的语法以及逻辑进行检查,从而对第一表达式进行正确性校验。当计算设备对第一表达式进行校验后,判定该第一表达式出现语法或者逻辑上的错误,则会返回相应的错误位置以及原
因,从而可以对第一表达式进行修正。
43.从而本技术方案在确认语法和逻辑正确性前提下,可按照业务功能实时更新到缓存,立即生效,达到热部署的能力。
44.此外,本方案提供了一种基于mvel表达式简单逻辑控制,达到一定的轻代码功能,所述方法步骤包括:
45.1、后台配置系统按业务规则配置对应业务的表达式,并存储到数据库和缓存
46.2、首先从数据库或者缓存查询当前业务对应的表达式。
47.3、根据对应的表达式查询本地是否有预编译的表达式。如果有则直接拿出来执行表达式,如果没有则预编译,并预编译的表达式存储到缓存。
48.4、将组合的入参输入表达式执行预编译的表达式并得到结果。
49.5、根据表达式结果触发对应的业务逻辑。
50.针对第一步的配置表达式,针对每个业务,配置入参,提前预编译,检验语法,将预编译的代码热更新到对应服务器。
51.mvel表达式的查询和预编译代码如下:
52.[0053][0054][0055]
这里本地缓存使用的key值用的是原生表达式的md5值,这样能保证一旦修改了原
生表达式,对应的缓存的唯一性。
[0056]
此外,参考图1所示,根据本实施例的第二个方面,提供了一种存储介质。所述存储介质包括存储的程序,其中,在所述程序运行时由处理器执行以上任意一项所述的方法。
[0057]
从而根据本实施例,计算设备对所有的表达式进行预编译,并将生成的第一数据序列进行存储。从而当需要使用该表达式实现业务或者进行逻辑上的调整时,就无需实时对表达式进行预编译。并且通过表达式的方式实现业务功能,从而无需编码就可以快速实现业务功能,提高了开发效率。并且本技术方案通过拖拽参数标签配置表达式,对逻辑判断的展现更直观,普通业务人员也可配置,无需进行代码调试,保证了表达式的适用性。进而解决了现有技术中存在的业务逻辑频繁变更而造成的效率低以及调试困难的技术问题。
[0058]
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
[0059]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
[0060]
实施例2
[0061]
图4示出了根据本实施例的第一个方面所述的基于表达式的执行方法装置400,该装置400与根据实施例1的第一个方面所述的方法相对应。参考图4所示,该装置400包括:第一生成模块410,用于预先配置与多个业务对应的第一表达式,将第一表达式进行预编译,生成相应的第一数据序列;序列确定模块420,用于从第一数据序列中确定与目标业务对应的第二数据序列;以及第二生成模块430,用于根据第二数据序列得到执行结果。
[0062]
可选地,从第一数据序列中确定与目标业务对应的第二数据序列的操作,包括:第一确定子模块,用于根据目标业务确定对应的第二表达式;第一生成子模块,用于根据第二表达式生成相应的哈希值;以及第二确定子模块,用于根据哈希值从第一数据序列中确定第二数据序列。
[0063]
可选地,装置还包括:存储模块,用于将第一数据序列存储至数据库和/或缓存。
[0064]
可选地,装置还包括:校验模块,用于在预先配置与多个业务对应的第一表达式的情况下,对第一表达式进行校验。
[0065]
从而根据本实施例,计算设备对所有的表达式进行预编译,并将生成的第一数据序列进行存储。从而当需要使用该表达式实现业务或者进行逻辑上的调整时,就无需实时对表达式进行预编译。并且通过表达式的方式实现业务功能,从而无需编码就可以快速实现业务功能,提高了开发效率。并且本技术方案通过拖拽参数标签配置表达式,对逻辑判断的展现更直观,普通业务人员也可配置,无需进行代码调试,保证了表达式的适用性。进而解决了现有技术中存在的业务逻辑频繁变更而造成的效率低以及调试困难的技术问题。
[0066]
实施例3
[0067]
图5示出了根据本实施例的第一个方面所述的基于表达式的执行方法装置500,该装置500与根据实施例1的第一个方面所述的方法相对应。参考图5所示,该装置500包括:处理器510;以及存储器520,与处理器510连接,用于为处理器510提供处理以下处理步骤的指令:预先配置与多个业务对应的第一表达式,将第一表达式进行预编译,生成相应的第一数据序列;从第一数据序列中确定与目标业务对应的第二数据序列;以及根据第二数据序列得到执行结果。
[0068]
可选地,从第一数据序列中确定与目标业务对应的第二数据序列的操作,包括:根据目标业务确定对应的第二表达式;根据第二表达式生成相应的哈希值;以及根据哈希值从第一数据序列中确定第二数据序列。
[0069]
可选地,装置还包括:将第一数据序列存储至数据库和/或缓存。
[0070]
可选地,装置还包括:在预先配置与多个业务对应的第一表达式的情况下,对第一表达式进行校验。
[0071]
从而根据本实施例,计算设备对所有的表达式进行预编译,并将生成的第一数据序列进行存储。从而当需要使用该表达式实现业务或者进行逻辑上的调整时,就无需实时对表达式进行预编译。并且通过表达式的方式实现业务功能,从而无需编码就可以快速实现业务功能,提高了开发效率。并且本技术方案通过拖拽参数标签配置表达式,对逻辑判断的展现更直观,普通业务人员也可配置,无需进行代码调试,保证了表达式的适用性。进而解决了现有技术中存在的业务逻辑频繁变更而造成的效率低以及调试困难的技术问题。
[0072]
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0073]
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
[0074]
在本技术所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
[0075]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0076]
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0077]
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机
设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
[0078]
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献