CN117215661A - 一种事件处理的方法、装置以及存储介质 - Google Patents
一种事件处理的方法、装置以及存储介质 Download PDFInfo
- Publication number
- CN117215661A CN117215661A CN202310006673.7A CN202310006673A CN117215661A CN 117215661 A CN117215661 A CN 117215661A CN 202310006673 A CN202310006673 A CN 202310006673A CN 117215661 A CN117215661 A CN 117215661A
- Authority
- CN
- China
- Prior art keywords
- logic
- node
- event
- action
- processed
- 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
Links
- 238000003672 processing method Methods 0.000 title description 6
- 238000010586 diagram Methods 0.000 claims abstract description 261
- 230000009471 action Effects 0.000 claims abstract description 236
- 238000012545 processing Methods 0.000 claims abstract description 150
- 238000000034 method Methods 0.000 claims abstract description 98
- 230000008569 process Effects 0.000 claims abstract description 26
- 230000006870 function Effects 0.000 claims description 30
- 230000002159 abnormal effect Effects 0.000 claims description 25
- 238000004590 computer program Methods 0.000 claims description 11
- 238000004458 analytical method Methods 0.000 claims description 4
- 125000004122 cyclic group Chemical group 0.000 claims description 3
- 230000000875 corresponding effect Effects 0.000 description 61
- 235000021453 onion ring Nutrition 0.000 description 20
- 238000004891 communication Methods 0.000 description 14
- 238000005516 engineering process Methods 0.000 description 13
- 238000013473 artificial intelligence Methods 0.000 description 11
- 238000011161 development Methods 0.000 description 11
- 238000010801 machine learning Methods 0.000 description 9
- 238000006243 chemical reaction Methods 0.000 description 5
- 238000013135 deep learning Methods 0.000 description 4
- 238000001514 detection method Methods 0.000 description 4
- 230000014509 gene expression Effects 0.000 description 4
- 238000012800 visualization Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 102100029469 WD repeat and HMG-box DNA-binding protein 1 Human genes 0.000 description 2
- 101710097421 WD repeat and HMG-box DNA-binding protein 1 Proteins 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- PEDCQBHIVMGVHV-UHFFFAOYSA-N Glycerine Chemical compound OCC(O)CO PEDCQBHIVMGVHV-UHFFFAOYSA-N 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000037361 pathway Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Abstract
本申请实施例公开了一种事件处理的方法、装置以及存储介质,能够基于动作逻辑图处理复杂的逻辑链,弥补了当前低代码方案无法处理复杂逻辑链的空白。上述方法包括:获取包括动作逻辑图的待处理事件,动作逻辑图包括至少两个逻辑节点和逻辑结构,逻辑结构用于指示每个逻辑节点之间的关联关系;对动作逻辑图进行编译处理,生成动作逻辑图的第一上下文信息;获取针对待处理事件的操作指令,响应操作指令,操作指令携带动作逻辑图的执行参数配置信息;基于动作逻辑图的第一上下文信息和执行参数配置信息运行每个逻辑节点,得到每个逻辑节点的运行结果;基于每个逻辑节点的运行结果确定待处理事件的处理结果。
Description
技术领域
本申请实施例涉及计算机技术领域,具体涉及一种事件处理的方法、装置以及存储介质。
背景技术
目前,随着低代码日渐发展,市面上出现了越来越多的低代码平台。通过低代码平台能够生成相应的页面并展示页面。
在相关方案中,通常是基于容器(docker)技术来实现对事件的逻辑进行编排,使得编排后的逻辑链中的每个逻辑都需要以数据接口的方式暴露给前端设备,导致数据接口占用资源较多。并且,对于没有逻辑开发背景的使用对象来说,借助当前的方案仅能执行较简单的逻辑链,而复杂的逻辑链千变万化且难以复用,因此当前的方案无法执行复杂的逻辑链。
发明内容
本申请实施例提供了一种事件处理的方法、装置以及存储介质,能够基于动作逻辑图处理复杂的逻辑链,弥补了当前低代码方案无法处理复杂逻辑链的空白,提升了适用性。
第一方面,本申请实施例提供了一种事件处理的方法。该方法可以应用在第一设备中。该方法包括:获取待处理事件,待处理事件包括动作逻辑图,动作逻辑图由第二设备基于至少两个逻辑节点和逻辑结构生成,动作逻辑图包括至少两个逻辑节点和逻辑结构,逻辑结构用于指示每个逻辑节点之间的关联关系,每个逻辑节点用于指示待处理事件中的多个处理步骤中的一个处理步骤;对动作逻辑图进行编译处理,生成动作逻辑图的第一上下文信息;获取针对待处理事件的操作指令,响应操作指令,操作指令携带动作逻辑图的执行参数配置信息;基于动作逻辑图的第一上下文信息和执行参数配置信息运行每个逻辑节点,得到每个逻辑节点的运行结果;基于每个逻辑节点的运行结果确定待处理事件的处理结果,待处理事件的处理结果用于指示待处理事件的运行情况。
第二方面,本申请实施例提供了一种事件处理的方法。该方法可以应用在第二设备中。该方法包括:获取针对每个逻辑节点的操作指令,以及每个逻辑节点的节点属性信息,每个逻辑节点用于指示待处理事件中的多个处理步骤中的一个处理步骤;基于每个针对逻辑节点的操作指令将对应的逻辑节点部署在展示页面的画布区域;基于每个逻辑节点的节点属性信息确定逻辑结构,逻辑结构用于指示每个逻辑节点之间的关联关系;基于每个逻辑节点以及逻辑结构,在展示页面的画布区域生成待处理事件的动作逻辑图,动作逻辑图包括至少两个逻辑节点以及逻辑结构,动作逻辑图用于指示按照逻辑结构运行每个逻辑节点,以得到待处理事件的处理结果,待处理事件的处理结果用于指示待处理事件的运行情况。
第三方面,本申请实施例提供了一种事件处理装置。该事件处理装置包括获取单元和处理单元。其中,获取单元,用于获取待处理事件,待处理事件包括动作逻辑图,动作逻辑图由第二设备基于至少两个逻辑节点和逻辑结构生成,动作逻辑图包括至少两个逻辑节点和逻辑结构,逻辑结构用于指示每个逻辑节点之间的关联关系,每个逻辑节点用于指示待处理事件中的多个处理步骤中的一个处理步骤。处理单元,用于对动作逻辑图进行编译处理,生成动作逻辑图的第一上下文信息。获取单元,用于获取针对待处理事件的操作指令,响应操作指令,操作指令携带动作逻辑图的执行参数配置信息。处理单元,用于基于动作逻辑图的第一上下文信息和执行参数配置信息运行每个逻辑节点,得到每个逻辑节点的运行结果;基于每个逻辑节点的运行结果确定待处理事件的处理结果,待处理事件的处理结果用于指示待处理事件的运行情况。
在一些可选的实施方式中,处理单元用于:从动作逻辑图中提取每个逻辑节点和逻辑结构;基于逻辑结构对每个逻辑节点进行编码转码处理,生成动作逻辑图的第一上下文信息。
在另一些可选的实施方式中,处理单元用于:基于运行环境信息检测每个逻辑节点的当前运行状态;基于每个逻辑节点的当前运行状态更新第一上下文信息中每个逻辑节点的初始运行状态,得到动作逻辑图的第二上下文信息;基于第二上下文信息和执行参数配置信息,按照逻辑结构运行每个逻辑节点,得到每个逻辑节点的运行结果。
在另一些可选的实施方式中,动作逻辑图中的逻辑结构包括并行逻辑、异步逻辑、串行逻辑和分支逻辑中的一个或多个逻辑。
在另一些可选的实施方式中,处理单元用于:在按照逻辑结构运行至逻辑结构中的异步逻辑所关联的逻辑节点时,停止运行异步逻辑所关联的逻辑节点,并基于第二上下文信息和执行参数配置信息,运行并行逻辑所关联的逻辑节点、串行逻辑所关联的逻辑节点、以及分支逻辑所关联的逻辑节点当中的至少一个。
在另一些可选的实施方式中,逻辑节点的当前运行状态包括所述逻辑节点的默认状态、执行状态、完成状态、失败状态以及分支状态中的一个。
在另一些可选的实施方式中,获取单元用于:获取展示页面,展示页面包括至少一个组件,每个组件与至少一个待处理事件存在对应关系;获取第一操作指令,响应所述第一操作指令,所述第一操作指令为用于触发所述组件时的指令;基于第一操作指令和对应关系,从事件数据库中获取待处理事件。
在另一些可选的实施方式中,获取单元用于:获取针对每个逻辑节点的操作指令,以及每个逻辑节点的节点属性信息,每个逻辑节点用于指示待处理事件中的多个处理步骤中的一个处理步骤。处理单元用于:基于每个针对逻辑节点的操作指令将对应的逻辑节点部署在展示页面的画布区域;基于每个逻辑节点的节点属性信息确定逻辑结构,逻辑结构用于指示每个逻辑节点之间的关联关系;基于每个逻辑节点以及逻辑结构,在展示页面的画布区域生成待处理事件的动作逻辑图,动作逻辑图包括至少两个逻辑节点以及逻辑结构,动作逻辑图用于指示按照逻辑结构运行每个逻辑节点,以得到待处理事件的处理结果,待处理事件的处理结果用于指示待处理事件的运行情况。
在另一些可选的实施方式中,获取单元还用于在获取针对每个逻辑节点的操作指令之前,配置目标入参信息和目标出参信息,目标入参信息用于指示逻辑节点的入参,目标出参信息用于指示逻辑节点的出参。处理单元用于基于目标入参信息和目标出参信息生成每个逻辑节点的逻辑源码信息,逻辑源码信息包括动作逻辑图的上下文信息、next执行函数以及params入参,next执行函数用于调用执行下一个逻辑节点,next执行函数的入参为上一个逻辑节点的出参,params入参为每个逻辑节点的参数值;基于每个逻辑节点的逻辑源码信息生成对应的逻辑节点。
在另一些可选的实施方式中,处理单元还用于:在基于每个逻辑节点的逻辑源码信息生成对应的逻辑节点之前,对逻辑源码信息进行语法解析,得到抽象语法树,抽象语法树包括逻辑源码信息的循环体;在所述循环体的执行时间、所述循环体的执行次数中的至少一个满足预设条件时,将所述逻辑源码信息存储在数据库;或者,在所述循环体的执行时间、所述循环体的执行次数中的至少一个不满足所述预设条件时,发出异常消息,异常消息用于提示逻辑源码信息为异常代码。
在另一些可选的实施方式中,处理单元还用于:在基于每个逻辑节点以及逻辑结构,在展示页面的画布区域生成待处理事件的动作逻辑图之后,对动作逻辑图进行调试处理。
在另一些可选的实施方式中,获取单元用于:获取针对第一逻辑节点的操作指令,针对第一逻辑节点的操作指令用于指示暂停运行第一逻辑节点,第一逻辑节点为至少两个逻辑节点中的任意一个。处理单元用于:在基于针对第一逻辑节点的操作指令暂停运行第一逻辑节点后,对动作逻辑图进行编译处理,生成动作逻辑图的当前上下文信息;基于动作逻辑图的当前上下文信息运行第二逻辑节点,得到第二逻辑节点的运行结果,第二逻辑节点为至少两个逻辑节点中除了第一逻辑节点以外的其余逻辑节点;基于第二逻辑节点的运行结果调试动作逻辑图。
在另一些可选的实施方式中,展示页面包括至少一个第一组件,每个第一组件与至少一个待处理事件存在对应关系。
本申请实施例第四方面提供了一种事件处理装置,包括:存储器、输入/输出(I/O)接口和存储器。存储器用于存储程序指令。处理器用于执行存储器中的程序指令,以执行上述第一方面的实施方式对应的事件处理的方法;或者执行上述第二方面的实施方式对应的事件处理的方法。
本申请实施例第五方面提供了一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行以执行上述第一方面的实施方式对应的方法;或者执行上述第二方面的实施方式对应的事件处理的方法。
本申请实施例第六方面提供了一种包含指令的计算机程序产品,当其在计算机或者处理器上运行时,使得计算机或者处理器执行上述以执行上述第一方面的实施方式对应的方法;或者执行上述第二方面的实施方式对应的事件处理的方法。
从以上技术方案可以看出,本申请实施例具有以下优点:
本申请实施例中,动作逻辑图是由第二设备基于至少两个逻辑节点和逻辑结构生成的,而且动作逻辑图包括至少两个逻辑节点和逻辑结构,逻辑结构能够指示每个逻辑节点之间的关联关系,每个逻辑节点用于指示待处理事件中的多个处理步骤中的一个处理步骤。因此,在获取到包括有动作逻辑图的待处理事件后,能够对该动作逻辑图进行编译处理,生成该动作逻辑图的第一上下文信息。进一步地,获取针对待处理事件的操作指令并响应操作指令,操作指令携带动作逻辑图的执行参数配置信息。这样,再基于动作逻辑图的第一上下文信息和执行参数配置信息运行每个逻辑节点,得到每个逻辑节点的运行结果,并基于每个逻辑节点的运行结果确定待处理事件的处理结果,该待处理事件的处理结果能够指示出待处理事件的运行情况。通过上述方式,由于动作逻辑图中包括了至少两个逻辑节点和逻辑结构,并且逻辑结构反映出了每个逻辑节点之间的逻辑关系,那么由第二设备灵活地基于至少两个逻辑节点和逻辑结构生成与待处理事件对应的动作逻辑图,并将该待处理事件对应的逻辑链以动作逻辑图的方式展示给前端的第一设备,减少了数据接口的资源占用。而且,动作逻辑图中的逻辑结构和逻辑节点能够实现复用,对于每个没有逻辑开发背景的使用对象来说,能够基于动作逻辑图处理复杂的逻辑链,弥补了当前低代码方案无法处理复杂逻辑链的空白,提升了适用性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了现有方案处理逻辑链的示意图;
图2A示出了本申请实施例提供的第一种系统架构示意图;
图2B示出了本申请实施例提供的第二种系统架构示意图;
图3示出了本申请实施例提供的事件处理的方法的一种流程图;
图4A示出了本申请实施例提供的组件、事件以及动作逻辑图之间的关系示意图;
图4B示出了本申请实施例提供的组件与事件之间的关系示意图;
图4C示出了本申请实施例提供的事件编辑的示意图;
图4D示出了本申请实施例提供的编辑示意图;
图5示出了本申请实施例提供的事件处理的方法的另一种流程图;
图6A示出了本申请实施例提供的逻辑节点的结构示意图;
图6B示出了本申请实施例提供的逻辑节点的节点状态示意图;
图7A示出了本申请实施例提供的洋葱圈模型的示意图;
图7B示出了本申请实施例提供的洋葱圈模型的中间件的示意图;
图8A示出了本申请实施例提供的动作逻辑图的一个结构示意图;
图8B示出了本申请实施例提供的动作逻辑图的另一个结构示意图;
图9示出了本申请实施例提供的语法检测的示意图;
图10示出了本申请实施例中提供的节点调试示意图;
图11示出了本申请实施例提供的事件处理装置服务器的结构示意图;
图12示出了本申请实施例提供的事件处理装置的硬件结构示意图。
具体实施方式
本申请实施例提供了一种事件处理的方法、装置以及存储介质,能够基于动作逻辑图处理复杂的逻辑链,弥补了当前低代码方案无法处理复杂逻辑链的空白,提升了适用性。
可以理解的是,在本申请的具体实施方式中,涉及到用户信息、用户的个人数据等相关的数据,当本申请以上实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本申请实施例提供的事件处理的方法是基于人工智能(artificialintelligence,AI)实现的。人工智能是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
在本申请实施例中,主要涉及的人工智能技术包括上述所提及的机器学习等方向。例如,可以涉及机器学习(machine learning,ML)中的深度学习(deep learning),包括人工神经网络等。
本申请提供的事件处理的方法可以应用于具有数据处理能力的事件处理装置,如终端设备、服务器等。其中,终端设备可以包括但不限于智能手机、台式计算机、笔记本电脑、平板电脑、智能音箱、车载设备、智能手表等。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(content delivery network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器等,本申请不做具体限定。另外,所提及的终端设备以及服务器可以通过有线通信或无线通信等方式进行直接连接或间接连接,本申请不做具体限定。
上述所提及的事件处理装置可以具备机器学习能力。机器学习(machinelearning,ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括神经网络等技术。
参阅图1,示出了现有方案处理逻辑链的示意图。如图1所示,通过拖拽组件1、组件2以及组件3来生成页面。在生成该页面的过程中,可以通过修改组件1至组件3各个组件的配置参数,进而基于配置参数提取得到组件1至组件3各自对应的逻辑代码。然后,将每个组件对应的逻辑代码映射到相应的后端数据接口,比如基于组件1对应的逻辑代码映射到数据接口1和数据接口2,基于组件2的逻辑代码映射到数据接口3,以及基于组件3的逻辑代码映射到数据接口4和数据接口5等,进而通过调用数据接口来获取相应组件的逻辑代码。换句话说,基于现有方案生成页面的过程中,需要将相应逻辑链中的每个逻辑都以数据接口的方式暴露给前端设备,导致数据接口占用资源较多。并且,对于没有逻辑开发背景的使用对象来说,借助当前的方案仅能处理简单的逻辑链,而复杂的逻辑链千变万化且难以复用,因此当前的方案无法执行复杂的逻辑链。举例来说,对应一个按钮组件,系统提供了各类丰富的功能给使用对象选择,比如跳转链接、弹窗、执行抽奖请求、分享邀请等。然而对于复杂的逻辑链,譬如:执行抽奖请求,并判断抽奖结果,即是否抽取到丰厚的奖品,若抽取到丰厚的奖品,则基于跳转链接用于发送奖品给抽象对象;若未抽取到丰厚的奖品,则基于弹窗来提醒抽象对象未中奖的消息。这复杂的逻辑链对于没有逻辑开发背景的对象来说,无法仅仅通过简单地拖拽组件来处理该逻辑链。
基于此,本申请实施例提供了一种事件处理的方法。该事件处理的方法可以将待处理事件的前端逻辑链以动作逻辑图的方式展示给前端的第一设备,而不是以大量的数据接口的方式呈现每个逻辑,节省了系统资源的占用。而且,在本申请实施例中,动作逻辑图中的逻辑结构和逻辑节点能够实现复用,对于没有逻辑开发背景的使用对象来说,能够基于动作逻辑图处理复杂的逻辑链,弥补了当前低代码方案无法处理复杂逻辑链的空白,提升了适用性。
示例性地,上述所提及的事件处理的方法可以应用于图2A示出的系统架构中。如图2A所示,该系统架构包括第一设备、第二设备以及服务器。其中,第二设备可以从服务器中获取待处理事件的逻辑源代码信息,并基于该逻辑源代码信息生成逻辑节点。然后,第二设备将每个逻辑节点的相关节点属性信息保存在服务器中。这样,第二设备能够基于针对每个逻辑节点的操作指令将对应的逻辑节点部署在展示页面的画布区域,并基于每个逻辑节点的节点属性信息确定逻辑结构,从而基于至少两个逻辑节点和逻辑结构生成动作逻辑图(logic schema)。示例性地,第二设备还可以将该动作逻辑图与待处理事件绑定后,将该动作逻辑图保存在服务器中。第一设备在获取到待处理事件后,能够确定待处理事件所包括的动作逻辑图,进而对该动作逻辑图进行编译处理,生成该动作逻辑图的第一上下文信息。进一步地,第一设备获取针对待处理事件的操作指令并响应操作指令,操作指令携带动作逻辑图的执行参数配置信息。这样,第一设备再基于动作逻辑图的第一上下文信息和执行参数配置信息运行每个逻辑节点,得到每个逻辑节点的运行结果,并基于每个逻辑节点的运行结果确定待处理事件的处理结果。通过上述方式,将该待处理事件对应的逻辑链以动作逻辑图的方式展示给前端的第一设备不仅减少了数据接口的资源占用,而且还能实现复用动作逻辑图中的逻辑结构和逻辑节点,从而能够基于动作逻辑图处理复杂的逻辑链,提升了适用性。
上述提及的事件处理的方法还可以应用于图2B示出的系统架构中。如图2B所示,该系统架构中包括可视化工具层、逻辑描述层、引擎驱动层以及应用层。其中,在可视化工具层中,第二设备一方面可以通过节点编辑器(node editor),根据优化后的洋葱圈模型定义逻辑节点的入参信息和出参信息等,进而生成逻辑节点;另一方面,第二设备还可以通过逻辑图编辑器(map editor)基于逻辑节点以及逻辑节点之间的关联关系生成动作逻辑图(logic schema)。需说明,所提及的优化后的洋葱圈模型,具体可以参照后续的内容进行理解,此处先不做赘述。另外,在该可视化工具层中,第二设备还可以通过调试工具(debugtools)实现对动作逻辑图的调试处理。
在逻辑描述层中,主要是使用领域特定语言(domain specified language,DSL)对可视化工具层中生成的动作逻辑图的逻辑结构进行描述,譬如说,可以使用JSON代码来描述动作逻辑图。另外,在该逻辑描述层中,还可以提供配套的软件开发工具包(softwaredevelopment kit,SDK)为第一设备和第二设备提供执行该动作逻辑图时的应用程序接口(application program interface,API)。
在引擎驱动层(runtime)中,提供了不同环境下的逻辑代码执行SDK,由于动作逻辑图本身是与语言无关的,因此通过不同的引擎驱动可以在不同的环境中运行对应的逻辑代码。举例来说,若使用js-runtime,可以在浏览器环境中运行;若使用lua-runtime则可以在潘多拉环境中运行。所描述的潘多拉可以理解成将虚拟游戏的营销活动的原生运行环境。换句话说,潘多拉环境可以认为是脱离虚拟游戏的运行环境而对虚拟游戏进行更新、发布、管理等营销活动时的环境。引擎驱动层主要由编译器(compiler)和执行引擎(engine)组成。其中,编译器主要负责解析动作逻辑图,进而编译得到可执行调用的入口,并构建完整的上下文信息。而执行引擎主要负责按照逻辑结构运行每个逻辑节点。具体地,执行引擎接受该动作逻辑图的执行参数配置信息,从编译器编译得到的入口开始执行,最终返回输出每个逻辑节点的运行结果。示例性地,第一设备通过编译器对动作逻辑图进行编译,以此编译得到该动作逻辑图的第一上下文信息。而且,第一设备还可以通过执行引擎接收该动作逻辑图的执行参数配置信息,进而运行动作逻辑图中的每个逻辑节点,以反馈每个逻辑节点的运行结果。
在应用层(application)中,主要描述该动作逻辑图的运行环境,如UImaker生成的活动页、普通营销活动等,通过引入对应的SDK和动作逻辑图来运行相应的逻辑节点。
需说明,上述提及的第一设备、第二设备可以包括但不限于智能手机、台式计算机、笔记本电脑、平板电脑、智能音箱、车载设备、智能手表等终端设备,本申请实施例中不做具体限定。所提及的服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务器等,具体可以参照前述提及的内容进行理解,此处不做赘述。
为了便于理解本申请的技术方案,下面结合附图对本申请实施例提供的一种事件处理的方法进行介绍。
图3示出了本申请实施例提供的事件处理的方法的一种流程图。如图3所示,该事件处理的方法可以包括如下步骤:
301、第一设备获取待处理事件,待处理事件包括动作逻辑图,动作逻辑图由第二设备基于至少两个逻辑节点和逻辑结构生成,动作逻辑图包括至少两个逻辑节点和逻辑结构,逻辑结构用于指示每个逻辑节点之间的关联关系,每个逻辑节点用于指示待处理事件中的多个处理步骤中的一个处理步骤。
该示例中,动作逻辑图可以显示在展示页面中,其中展示页面是由多个组件拼接而成,而且每个组件可以与至少一个待处理事件存在对应关系。举例来说,图4A示出了本申请实施例提供的组件、事件以及动作逻辑图之间的关系示意图。如图4A所示,展示页面中可以由组件1、组件2等组件构成,并且组件2至少与一个待处理事件(如事件A)绑定。另外,在该事件A中可以包括至少一个动作逻辑图,例如动作逻辑图a和动作逻辑图b等,本申请实施例中不做限定说明。示例性地,以事件A为“XX抽奖”以及对应的动作逻辑图a为例,该动作逻辑图a可以由“执行AMS领奖”、“分支判断”、“打开分享面板”、“通用打开弹窗提示”等动作,以及这些动作之间的逻辑关系构成,其中,每个动作都可以理解成该事件A的一个处理步骤。
需说明,上述提及的第一设备可以理解成在第二设备生成动作逻辑图后,运行该动作逻辑图中的逻辑节点时的设备。所描述的第二设备可以理解成具有逻辑开发背景的人员所持有的终端设备,或者也可以理解成没有逻辑开发背景的人员所持有的终端设备等,通过该第二设备能够生成动作逻辑图。所描述的动作逻辑图能够反映出待处理事件中每个处理步骤的执行路径。由于从动作逻辑图能够清晰地了解到运行该待处理事件时的运行过程,不仅便于验证该待处理事件是否准确执行,而且在某个逻辑节点执行错误等情况发生时,相较于修改代码文件,通过修改动作逻辑图能够快速地定位出出错的逻辑。针对动作逻辑图的生成过程,具体可以参照后续图5中示出的生成过程进行理解,此处先不做赘述。另外,上述图4A中示出的组件1、组件2、事件A、动作逻辑图a以及动作逻辑图b,仅仅是一个示意性的描述,在实际应用中还可以包括其他的组件、事件以及其他的动作逻辑图等,具体本申请实施例中事件、动作逻辑图、组件的数目不做具体限定说明。
另外,针对图4A中示出的组件与待处理事件之间的关系,可以参照图4B示出的组件与事件之间的关系示意图进行理解。如图4B所示,在某个展示页面中,包括有基础组件、组合组件、动态组件等,具体本申请实施例中不做限定说明。所描述的基础组件可以包括但不限于普通文件组件、图片组件、热区按钮组件、视频组件、形状组件、自定义组件等。所提及的组合组件可以包括但不限于Tab组件、轮播组件、滚动视图组件、表单组件等。动态组件可以也包括但不限于数据显示组件、状态图切换组件、按钮置灰状态组件、进度状态切换组件、多状态按钮组件等,本申请实施例中不做限定说明。以热区按钮组件为例,可以将该热区按钮组件绑定至少一个待处理事件,比如说如图4B中示出的“测试事件”、“链接跳转”、“XX抽奖事件”、“购买VIP会员”等,本申请实施例中对事件的具体类型、具体内容等不做限定说明。
上述提及的待处理事件可以由具有逻辑开发背景的人员通过第二设备进行编辑,进而将该待处理事件保存在事件数据库中,以便于能够在事件数据库中管理待处理事件。示例性地,第二设备可以获取待处理事件的事件属性信息,例如事件类型、事件名称等信息,进而基于前端配置模板对事件属性信息进行编辑,以此得到该待处理事件。举例来说,以待处理事件为图4B中的购买VIP会员为例,图4C示出了本申请实施例提供的事件编辑的示意图。如图4C所示,针对“购买VIP会员”事件,可以在前端配置模板中配置与该事件相关的参数值,例如:会员类型为月卡等。在配置完成后,便可以成功生成该“购买VIP会员”。
另外,针对没有逻辑开发背景的人员,则可以通过第二设备中的UI编辑器来添加动作逻辑图,具体可以参照图4D示出的编辑示意图进行理解。如图4D所示,可以通过拖拽等方式将逻辑节点部署在展示页面的画布区域,进而基于逻辑结构将逻辑节点连接,进而生成相应的动作逻辑图。所描述的画布区域可以理解成绘制该动作逻辑图时的编辑区域,例如可以为矩形区域,也可以为圆形区域等,具体本申请中不做限定。
基于此,第一设备可以在获取到展示页面后,可以获取第一操作指令,并响应于第一操作指令,进而通过第一操作指令触发响应该展示页面中的组件。这样,第一设备能够基于该第一操作指令和对应关系,从事件数据库中获取待处理事件。需说明,所提及第一操作指令,可以理解成用户对象对组件进行点击、拖拽等操作后,由第一设备所获取到的操作指令,比如说点击指令、拖拽指令等,具体本申请实施例中不做具体限定。另外,所描述的展示页面可以理解成用户界面(user interface)。具体可以包括但不限于UI页面、面板等,本申请实施例中不做具体限定。所提及的组件,也可以理解成UI组件等,本申请实施例中不做限定。
另外,图4A中示出的每个待处理事件可以包括至少一个动作逻辑图,针对每个动作逻辑图,都可以反映出执行该待处理事件时的执行流程。所提及的动作逻辑图可以由第二设备基于至少两个逻辑节点和逻辑结构生成。具体生成动作逻辑图的过程,可以参照下述图5中示出的处理流程进行理解。如图5所示,该处理流程至少包括如下步骤:
S501、获取针对每个逻辑节点的操作指令,以及每个逻辑节点的节点属性信息,每个逻辑节点用于指示待处理事件中的多个处理步骤中的一个处理步骤。
该示例中,在生成动作逻辑图之前,可以先由具备逻辑开发背景的对象先基于第二设备为每个逻辑节点配置目标入参信息和目标出参信息,并基于目标入参信息和目标出参信息编写对应逻辑节点的逻辑源码信息,进而将编写得到的逻辑节点的逻辑源码信息存储在服务器中。每个逻辑节点都有自身的输入和输出,上述所描述的目标入参信息可以理解成相应的逻辑节点的传入参数,所描述的目标出参信息可以理解才能够相应的逻辑节点的传出参数。
所描述的逻辑源码信息中主要包括动作逻辑图的上下文信息、next执行函数以及入参信息。其中,动作逻辑图的上下文信息主要包括动作逻辑图以及逻辑节点的运行状态等数据。next执行函数主要用于调用执行下一个逻辑节点,而且该next执行函数的入参为上一个逻辑节点的出参。举例来说,若逻辑节点A的执行顺序在逻辑节点B的执行顺序之后,那么第二设备在运行next执行函数时,此时该next执行函数的入参为该逻辑节点B的出参。另外,所提及的入参信息可以理解成每个逻辑节点的参数值。举例来说,作为一个示意性的描述,该逻辑源码信息可以基于如下代码来理解表示,即:
这样,第二设备在生成该待处理事件的动作逻辑图之前,可以先确定出逻辑节点和逻辑结构。示例性地,针对逻辑节点的确定过程,可以由第二设备从数据库中获取每个逻辑节点的逻辑源码信息,进而基于每个逻辑节点的逻辑源码信息生成对应的逻辑节点。
需说明,每个逻辑节点可以指示出待处理事件中的多个处理步骤中的一个处理步骤。举例来说,以前述图4A中示出的事件A(如“XX抽奖”)为例,在该“XX抽奖”事件中,至少包括如下几个处理步骤,例如:执行AMS领奖、是否满足领奖要求的分支判断、打开分享面板、通用打开弹窗提示、执行积分数据查询等步骤。通过对处理步骤进行逻辑抽象化处理,使得每个处理步骤能够抽象成一个逻辑节点。比如说,可以将执行AMS领奖、是否满足领奖要求的分支判断、打开分享面板、通用打开弹窗提示以及执行积分数据查询这几个步骤分别进行逻辑抽象化处理,进而逻辑化为逻辑节点A、逻辑节点B、逻辑节点C、逻辑节点D以及逻辑节点E等,本申请实施例中不做具体限定。
第二设备在生成每个逻辑节点后,获取针对每个逻辑节点的操作指令。比如说,此处的操作指令可以包括但不限于对逻辑节点进行点击时的点击指令、对逻辑节点进行拖拽时的拖拽指令等,本申请实施例中不做限定。
另外,第二设备在生成每个逻辑节点后,也可以获取每个逻辑节点的节点属性信息。所描述的节点属性信息,能够反映出对应逻辑节点的属性情况,譬如说能够清晰地获知对应逻辑节点属于哪种类型的节点等,具体可以参照图6A示出的逻辑节点的结构示意图进行理解。如图6A所示,节点属性信息可以包括但不限于逻辑节点的节点类型、逻辑节点的节点标识(identity,ID)、逻辑节点的目标入参信息和目标出参信息等。示例性地,逻辑节点的节点类型可以包括但不限于开始(start)节点、动作(action)节点、分支(ifelse)节点、结束(end)节点等。举例来说,以前述图4A示出的动作逻辑图a为例,在将执行AMS领奖、打开分享面板、通用打开弹窗提示以及执行积分数据查询这几个步骤逻辑化为逻辑节点A、逻辑节点C、逻辑节点D以及逻辑节点E之后,可以将逻辑节点A、逻辑节点C、逻辑节点D以及逻辑节点E理解成动作节点。同样地,在将“否满足领奖要求的分支判断”步骤逻辑化为逻辑节点B之后,也可以将该逻辑节点B理解成分支节点。
上述提及的节点属性信息还可以包括逻辑节点的节点状态,具体可以参照图6B示出的结构示意图进行理解。如图6B所示,逻辑节点的节点状态可以包括但不限于0、1、2、3以及-1。其中,0表示了逻辑节点的默认状态;1表示了逻辑节点的执行状态,即可以理解成执行到next执行函数回调之前;2表示了逻辑节点的完成(finish)状态,即可以理解成完成对逻辑节点的调用处理;3可以表示逻辑节点的失败状态。另外,-1可以表示出逻辑节点的分支(ifelse)状态,即可以理解成对逻辑节点的分支结构进行处理,本申请实施例中对节点状态不做限定说明。通过对节点状态的配置,能够在后续运行每个逻辑节点时通过对逻辑节点当前的运行状态来更新动作逻辑图,便于及时地调整动作逻辑图,为正确地执行待处理事件奠定了基础。
需说明,上述图6B使用0、1、2、3、以及-1分别表示默认状态、执行状态、完成状态、失败状态、以及分支状态,在本申请实施例中仅仅是一个示意性的描述。在实际应用中,默认状态、执行状态、完成状态、失败状态、以及分支状态还可以使用其他的取值表示,本申请实施例中不做限定。
另外,由于传统的洋葱圈模型最初应用在后端框架koa2中处理中间件的链式调用,利用ES7新式语法中的async、await以及compose插件将下一个中间件作为next执行参数传递,通过await next()形成洋葱圈。每一个中间件就类似每一层洋葱圈,从最外层进入执行到最里层,再从最里层向外执行,所有的请求经过中间件的时候都会执行两次。执行两次的好处是可以将同类功能聚集在同一个中间件中,避免了逻辑关注点的分散,在执行链路的不同时间段执行,简化了中间件逻辑的编写。然而,该传统的洋葱圈模型只能处理逻辑链为线性的事件,比如说处理类似“执行请求->获取数据->响应请求”等线性逻辑链,而针对具有分支(ifelse)结构的复杂逻辑链的事件是无法处理的。
基于此,本申请实施例在生成逻辑节点的过程中,可以对传统的洋葱圈模型进行优化处理,以便于基于优化后的洋葱圈模型生成逻辑节点。示例性地,图7A示出了洋葱圈模型的结构示意图,以及图7B示出了洋葱圈模型的中间件的示意图。如图7A和图7B所示,洋葱圈模型主要由至少两层中间件构成,每一个中间件就类似每一层洋葱圈,从最外层进入执行到最里层,再从最里层向外执行,所有的请求经过中间件的时候都会执行两次。需说明,图7A和图7B中所描述的中间件,可以理解成本申请实施例中提及的逻辑节点。通过该洋葱圈模型,能够将同类功能聚集在同一个逻辑节点中,简化了逻辑节点的编写,提高了逻辑节点的复用。
在传统的洋葱圈模型的基础上,本申请实施例中针对每个逻辑节点,都新增相应的逻辑节点的分支状态,便于能够用来处理动作逻辑图中的多分支结构。换句话说,在检测出逻辑节点的当前运行状态为分支状态时,可以继续运行该分支状态下所关联的逻辑节点。
另外,基于优化后的洋葱圈模型生成逻辑节点,不仅能够将同类功能聚集在同一个逻辑节点中,而且还能够对每个逻辑节点的运行状态进行检测,进而实现对逻辑节点的运行状态进行管理,以便于能够根据所检测得到的逻辑节点的运行状态来支持实现不同的逻辑。举例来说,若逻辑节点A和逻辑节点B为并行逻辑所关联的两个逻辑节点,那么只有在检测到逻辑节点A和逻辑节点B的运行状态均为完成状态时,才能执行后续的其他逻辑,从而完成支持实现并行逻辑;或者,通过对分支状态的检测处理,实现对分支逻辑的处理等。而且还支持对串行逻辑、环逻辑等处理。
此外,为了避免逻辑节点的错误引用,还可以在该优化后的洋葱圈模型中,通过js–call语法等,将调用逻辑节点时所使用的this指针指向第一值,通过第一值指示出该this指针所指向的指针位置。比如说,可以将逻辑节点中调用的this指针指向undefined等,以便于避免错误的指针引用。需说明,上述仅以第一值为undefined为例,在实际应用中还可以包括其他的取值,本申请中不做具体限定。
在优化后的洋葱圈模型中,对于逻辑节点的目标入参信息和目标出参信息,在本申请中既可以支持使用模板表达式,也支持在运行过程中动态收集等方式来配置目标入参信息。换句话说,针对目标入参信息,不仅支持在运行过程中动态收集,还支持使用art_template模板引擎语法等模板表达式来获取相应逻辑节点的返回值字段。针对逻辑节点的目标出参信息,既支持使用目标表达式来配置,也可以支持调用默认值来配置,具体本申请实施例中不做限定说明。示例性地,通过支持调用默认值来配置逻辑节点的目标出参信息,能够简化动作逻辑图中的逻辑结构的配置。
需说明,上述提及的并行逻辑、串行逻辑、分支逻辑等内容,具体可以参照后续步骤S503中示出的内容进行理解,此处先不做赘述。
S502、基于每个针对逻辑节点的操作指令将对应的逻辑节点部署在展示页面的画布区域。
该示例中,第二设备在生成每个逻辑节点,并且获取到针对每个逻辑节点的操作指令后,可以基于该操作指令将对应的逻辑节点部署在展示页面的画布区域中。譬如说,在操作指令为拖拽指令的时候,第二设备可以基于该拖拽指令将每个逻辑节点拖拽至展示页面的画布区域中。
S503、基于每个逻辑节点的节点属性信息确定逻辑结构,逻辑结构用于指示每个逻辑节点之间的关联关系。
该示例中,第二设备在获取得到每个逻辑节点的节点属性信息后,可以基于每个逻辑节点的节点属性信息来确定出逻辑结构。示例性地,第二设备可以基于每个逻辑节点的节点属性信息中的入参信息和出参信息来确定当前逻辑节点与其他逻辑节点之间的关联关系,进而基于每个当前逻辑节点与其他逻辑节点之间的关联关系确定出该待处理事件的逻辑结构。
需说明,所描述的逻辑结构可以包括并行逻辑、异步逻辑、串行逻辑以及分支逻辑中的一个或多个逻辑。换句话说,当前逻辑节点与其他逻辑节点之间的关联关系可以是并行逻辑的关系,也可以是异步逻辑的关系,又或者是串行逻辑的关系,也还可以是分支逻辑的关系等,本申请实施例中不做限定说明。所描述的并行逻辑,可以理解成需要等待存在并行逻辑的逻辑节点中所有逻辑节点执行完成后,才能继续执行后续的逻辑节点。所描述的异步逻辑,可以理解成发起请求后不再等待响应,而是直接执行相应逻辑节点的逻辑。所提及的串行逻辑,可以理解成当前的逻辑节点运行完成后,才会继续运行后续逻辑节点的逻辑。所提及的分支逻辑,则理解成根据不同的条件选择运行不同逻辑节点的逻辑。通过上述方式,对逻辑结构进行逻辑类型的限定,能够应用于处理复杂的逻辑链较长的逻辑,而不仅仅局限于处理线性结构的逻辑链。
S504、基于每个逻辑节点以及逻辑结构,在展示页面的画布区域生成待处理事件的动作逻辑图。
该示例中,第二设备在生成每个逻辑节点以及确定出相应的逻辑结构后,便能够在展示页面的画布区域中生成该待处理事件的动作逻辑图。需说明,动作逻辑图包括至少两个逻辑节点以及逻辑结构,动作逻辑图用于指示按照逻辑结构运行每个逻辑节点,以得到待处理事件的处理结果。所提及的待处理事件的处理结果用于指示待处理事件的运行情况。举例来说,图8A示出了本申请实施例提供的动作逻辑图的一个结构示意图。如图8A所示,该动作逻辑图中至少包括逻辑节点1至逻辑节点7。其中,逻辑节点1、逻辑节点2以及逻辑节点3之间的逻辑关系为并行逻辑,并且逻辑节点3的逻辑关系为异步逻辑,逻辑节点4和逻辑节点5之间的逻辑关系为串行逻辑、逻辑节点6和逻辑节点07之间的逻辑关系为分支逻辑等。此时,该动作逻辑图中的逻辑节点的执行顺序可以为:在分别运行逻辑节点1、逻辑节点2以及逻辑节点3完成之后,再执行逻辑节点4。并且,在运行完成逻辑节点4之后再运行逻辑节点5。最后,在运行完成逻辑节点5之后,运行逻辑节点6或者逻辑节点7,并只有在逻辑节点6或者逻辑节点7运行完成后,才可以结束整个运行过程。
示例性地,图8B示出了本申请实施例提供的动作逻辑图的另一个示意图。如图8B所示,以前述图4A示出的动作逻辑图a为例,在将执行AMS领奖、是否满足领奖要求的分支判断、打开分享面板、通用打开弹窗提示以及执行积分数据查询这几个步骤逻辑化为逻辑节点A、逻辑节点B、逻辑节点C、逻辑节点D以及逻辑节点E之后,明显可以看出该逻辑节点B的逻辑关系为分支逻辑。
需说明,上述图8A和图8B示出的动作逻辑图仅仅是一个示意的描述,在实际应用中,还可以生成其他结构的动作逻辑图,本申请实施例中不做具体限定说明。
在另一些示例中,为了保障后续运行动作逻辑图中的逻辑节点时的第一设备执行的兼容性,而且为了进一步复用动作逻辑图,本申请实施例中支持抽象语法树(abstractsyntax code,AST)语言转换,便于将该动作逻辑图的第一程序语言的代码转换成第二程序语言的代码,譬如说可以将JavaScript代码转换为lua代码,进而实现将浏览器的运行环境扩展到unity游戏客户端内。示例性地,第二设备可以获取第一程序语言对应的源代码信息,并确定出该源代码信息转换为第二程序语言对应的目标代码信息所需的目标配置参量。然后,第二设备基于该目标配置参量对源代码信息进行解析,以此获取源代码信息对应的目标抽象语法树,从而将目标配置参量和目标抽象语法树通过预设的语法生成类生成相应的语言类型转换对象。这样,第二设备能够基于预设的语法生成类和语言类型转换对象将该目标抽象语法树转换成第二程序语言对应的目标代码信息。需说明,上述仅以JavaScript代码转换为lua代码为例,在实际应用中,还可以包括其他类型程序语言的代码转换,具体本申请中不做限定说明。
为了防止代码转换过程中出现逻辑循环运行的问题,在本申请实施例中,第二设备还可以在根据每个逻辑节点的逻辑源码信息生成相应的逻辑节点之前,对逻辑源码信息进行语法检测,便于过滤掉异常代码,具体可以参照图9示出的语法检测的示意图进行理解。如图9所示,第二设备可以对逻辑源码信息进行语法解析,得到抽象语法树。需说明,该抽象语法树包括逻辑源码信息的循环体,循环体可以理解成逻辑源码信息中的大括号内的代码内容,能够重复执行。举例来说,以for循环结构为例,该for循环结构可以为:for(表达式){循环体}等,具体本申请中不做具体限定。这样,第二设备在得到抽象语法树之后,通过判断该循环体的执行时间、循环体的执行次数中的至少一个是否满足预设条件,进而在循环体的执行时间、循环体的执行次数中的至少一个满足预设条件时,将逻辑源码信息存储在数据库。反之,在判断出循环体的执行时间、循环体的执行次数中的至少一个不满足预设条件时,发出异常消息。通过异常消息提示出逻辑源码信息为异常代码。
上述提及的判断循环体的执行时间、循环体的执行次数中的至少一个是否满足预设条件,可以理解成判断如下至少一个条件是否满足,即:循环体的执行时间是否小于预设时长、以及判断该循环体的执行次数是否小于预设次数。若第二设备在判断出上述提及的循环体的执行时间小于预设时长、循环体的执行次数小于预设次数当中的至少一个满足条件时,那么可以判断出该逻辑源码信息并非异常代码,此时可以将逻辑源码信息保存在数据库中。反之,第二设备在判断出上述提及的至少一个条件不满足(即循环体的执行时间大于或等于预设时长、循环体的执行次数大于或等于预设次数)时,则表明该逻辑源码信息为异常代码。此时,第二设备通过发出异常消息,基于该异常消息提示开发人员等该逻辑源码信息为异常代码。这样,开发人员能够基于该第二设备实时地定位到异常代码,便于后续对异常代码进行代码修复、异常拦截等处理。
需说明,上述提及的判断出循环体的执行时间小于预设时长、循环体的执行次数小于预设次数中的至少一个条件,可以包括如下三种方式,即:循环体的执行时间小于预设时长;循环体的执行次数小于预设次数;循环体的执行时间小于预设时长,且循环体的执行次数小于预设次数。针对判断出循环体的执行时间大于或等于预设时长、循环体的执行次数大于或等于预设次数中的至少一个,也可以参照判断出循环体的执行时间小于预设时长、循环体的执行次数小于预设次数中的至少一个条件进行理解,此次不做赘述。
在另一些示例中,为了保障所生成的动作逻辑图后续能够被第一设备准确地执行,第二设备还可以通过调试工具支持逻辑节点进行断点调试,以实现对动作逻辑图进行调试处理。示例性地,第二设备可以获取针对第一逻辑节点的操作指令。通过该针对第一逻辑节点的操作指令,能够指示暂停运行第一逻辑节点。所提及的第一逻辑节点为至少两个逻辑节点中的任意一个。然后,第二设备在基于针对第一逻辑节点的操作指令暂停运行第一逻辑节点后,对动作逻辑图进行编译处理,生成动作逻辑图的当前上下文信息。所提及的当前上下文信息可以看做是当前时间点所生成的上下文信息。并基于动作逻辑图的当前上下文信息运行第二逻辑节点,得到第二逻辑节点的运行结果。所描述的第二逻辑节点为至少两个逻辑节点中除了第一逻辑节点以外的其余逻辑节点。这样,第二设备在确定出第二逻辑节点的运行结果后,基于第二逻辑节点的运行结果调试动作逻辑图。
举例来说,图10示出了本申请实施例中提供的节点调试示意图。如图10所示,该动作逻辑图中包括开始节点、“获取当前时间”节点、“活动未开始弹窗”节点、“页面跳转”节点以及结束节点等。此时,第二设备在获取到针对“获取当前时间节点”的操作指令后,可以基于该操作指令暂停运行该“获取当前时间节点”,并且在执行到“获取当前时间节点”时不再链式执行下去,而是对动作逻辑图进行编译处理,生成该动作逻辑图的当前上下文信息,进而基于该当前上下文信息,从该“获取当前时间节点”处继续执行后续的第二逻辑节点,从而进一步基于第二逻辑节点的运行结果来调试该动作逻辑图,进而检查该动作逻辑图的正确性,从而不断地修正该动作逻辑图中出现错误的逻辑。
302、对动作逻辑图进行编译处理,生成动作逻辑图的第一上下文信息。
该示例中,第二设备在基于上述图5中的步骤S501至步骤S504生成动作逻辑图后,可以将该动作逻辑图存储在服务器中,并将待处理事件与对应的动作逻辑图绑定。那么,第一设备在获取到待处理事件后,能够基于该待处理事件确定出对应的动作逻辑图。进一步地,第一设备能够对该动作逻辑图进行编译处理,进而生成该动作逻辑图的第一上下文信息。示例性地,第一设备可以从该动作逻辑图中提取每个逻辑节点和逻辑结构,并基于该逻辑结构对每个逻辑节点进行编译处理,进而生成该动作逻辑图的第一上下文信息。需说明,所描述的编译处理,可以理解成将动作逻辑图转码成第一设备能够识别的计算机代码。另外,所描述的第一上下文信息可以理解成该动作逻辑图所对应的能够被第一设备识别的计算机代码。通过上述的编译处理,能够使得动作逻辑图在不同的设备上运行,提高设备的兼容性。
303、获取针对待处理事件的操作指令,响应操作指令,操作指令携带动作逻辑图的执行参数配置信息。
该示例中,第一设备在获取到待处理事件后,可以进一步获取针对该待处理事件的操作指令,并响应于该操作指令。这样,第一设备能够对该操作指令进行解映射处理,进而从该操作指令中提取出该动作逻辑图的执行参数配置信息。所提及的操作指令,可以参照前述提及的操作指令进行理解,比如可以包括但不限于点击指令、拖拽指令等。
304、基于动作逻辑图的第一上下文信息和执行参数配置信息运行每个逻辑节点,得到每个逻辑节点的运行结果。
该示例中,第一设备在生成该动作逻辑图的第一上下文信息、以及提取得到该动作逻辑图的执行参数配置信息后,能够基于该动作逻辑图的第一上下文信息和执行参数配置信息运行每个逻辑节点,进而确定出每个逻辑节点的运行结果。示例性地,第一设备可以基于运行环境信息检测每个逻辑节点的当前运行状态,进而基于每个逻辑节点的当前运行状态更新第一上下文信息中每个逻辑节点的初始运行状态,得到动作逻辑图的第二上下文信息。这样,第一设备能够基于第二上下文信息和执行参数配置信息,按照逻辑结构运行每个逻辑节点,得到每个逻辑节点的运行结果。需说明,所描述的当前运行状态可以包括前述提及的默认状态、执行状态、完成状态、失败状态以及分支状态中的一个。此外,所描述的第二上下文信息,可以理解成对逻辑节点的初始运行状态进行更新后得到的上下文信息。相较于第一上下文信息,该第二上下文信息更多地关注了逻辑节点实时的运行状态,从而为后续确定逻辑节点的运行结果奠定了数据支撑。
譬如说,以前述图4A示出的动作逻辑图a为例,若该动作逻辑图a中的执行AMS领奖(即逻辑节点A)的初始运行状态为默认状态,若在运行过程中,第一设备在检测出逻辑节点A的当前运行状态为完成状态,此时第一设备则需要将该逻辑节点A的执行状态进行更新,即将默认状态更新为完成状态。这样,第一设备能够得到该动作逻辑图的第二上下文信息,从而基于更新后得到的第二上下文信息和执行参数配置信息,按照逻辑结构运行每个逻辑节点,以此得到每个逻辑节点的运行结果。需说明,此处所提及的执行状态,可以参照前述图6B中示出的节点状态进行理解,此处不做赘述。
在一些示例中,第一设备基于第二上下文信息和执行参数配置信息,按照逻辑结构运行每个逻辑节点,可以参照下述方式来实现,即:第一设备在按照逻辑结构运行至逻辑结构中的异步逻辑所关联的逻辑节点时,停止运行异步逻辑所关联的逻辑节点,并基于第二上下文信息和执行参数配置信息,运行并行逻辑所关联的逻辑节点、串行逻辑所关联的逻辑节点、以及分支逻辑所关联的逻辑节点中的至少一个。举例来说,以前述图8A示出的动作逻辑图为例,第一设备在运行至该异步逻辑所关联的逻辑节点3时,可以不继续运行该逻辑节点3,而是基于第二上下文信息和所述执行参数配置信息运行并行逻辑所关联的逻辑节点1和逻辑节点2、串行逻辑所关联的逻辑节点4和逻辑节点5等,具体本申请实施例中不做限定说明。
需说明,逻辑节点的运行结果可以包括但不限于运行成功、运行失败等,本申请实施例中不做限定说明。
305、基于每个逻辑节点的运行结果确定待处理事件的处理结果,待处理事件的处理结果用于指示待处理事件的运行情况。
该示例中,第一设备在得到运行得到每个逻辑节点的运行结果后,可以基于每个逻辑节点的运行结果来确定出该待处理事件的处理结果。需说明,所描述的待处理事件的处理结果,能够指示出该待处理事件的运行情况。
示例性地,第一设备可以在每个逻辑节点的运行结果的指示下,来确定出待处理事件的处理结果。比如说,第一设备可以在每个逻辑节点的运行结果指示为正确运行对应的逻辑节点时,能够确定待处理事件的处理结果为正确运行。或者,第一设备也可以在每个逻辑节点的运行结果中的任意一个运行结果指示为异常运行对应的逻辑节点时,能够确定待处理事件的处理结果为异常运行。示例性地,在待处理事件的处理结果为异常运行时,第一设备也可以发出提示消息,以用于提示该待处理事件的运行情况为异常,并且需要对该待处理事件做进一步地处理,譬如调整该待处理事件的动作逻辑图的执行逻辑等,此处不做限定。
本申请实施例中,动作逻辑图是由第二设备基于至少两个逻辑节点和逻辑结构生成的,而且动作逻辑图包括至少两个逻辑节点和逻辑结构,逻辑结构能够指示每个所述逻辑节点之间的关联关系,每个所述逻辑节点用于指示所述待处理事件中的多个处理步骤中的一个所述处理步骤。因此,在获取到包括有动作逻辑图的待处理事件后,能够对该动作逻辑图进行编译处理,生成该动作逻辑图的第一上下文信息。进一步地,获取针对所述待处理事件的操作指令并响应所述操作指令,所述操作指令携带所述动作逻辑图的执行参数配置信息。这样,再基于所述动作逻辑图的第一上下文信息和所述执行参数配置信息运行每个所述逻辑节点,得到每个所述逻辑节点的运行结果,并基于所述每个逻辑节点的运行结果确定所述待处理事件的处理结果,该所述待处理事件的处理结果能够指示出所述待处理事件的运行情况。通过上述方式,由于动作逻辑图中包括了至少两个逻辑节点和逻辑结构,并且逻辑结构反映出了每个逻辑节点之间的逻辑关系,那么由第二设备灵活地基于至少两个逻辑节点和逻辑结构生成与待处理事件对应的动作逻辑图,并将该待处理事件对应的逻辑链以动作逻辑图的方式展示给前端的第一设备,减少了数据接口的资源占用。而且,动作逻辑图中的逻辑结构和逻辑节点能够实现复用,对于每个没有逻辑开发背景的使用对象来说,能够基于动作逻辑图处理复杂的逻辑链,弥补了当前低代码方案无法处理复杂逻辑链的空白,提升了适用性。
上述主要从方法的角度对本申请实施例提供的方案进行了介绍。可以理解的是为了实现上述功能,包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本申请中所公开的实施例描述的各示例的模块及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
下面对本申请实施例中的事件处理装置进行详细描述,图11为本申请实施例中提供的事件处理装置的一个实施例示意图。示例性地,该事件处理装置可以包括但不限于前述提及的第一设备、第二设备。如图11所示,该事件处理装置可以包括获取单元1101和处理单元1102。
其中,获取单元1101,用于获取待处理事件,待处理事件包括动作逻辑图,动作逻辑图由第二设备基于至少两个逻辑节点和逻辑结构生成,动作逻辑图包括至少两个逻辑节点和逻辑结构,逻辑结构用于指示每个逻辑节点之间的关联关系,每个逻辑节点用于指示待处理事件中的多个处理步骤中的一个处理步骤。处理单元1102,用于对动作逻辑图进行编译处理,生成动作逻辑图的第一上下文信息。获取单元1101,用于获取针对待处理事件的操作指令,响应操作指令,操作指令携带动作逻辑图的执行参数配置信息。处理单元1102,用于基于动作逻辑图的第一上下文信息和执行参数配置信息运行每个逻辑节点,得到每个逻辑节点的运行结果;基于每个逻辑节点的运行结果确定待处理事件的处理结果,待处理事件的处理结果用于指示待处理事件的运行情况。具体可以参照前述图3中的步骤301至步骤305示出的内容进行理解,此处不做赘述。
在一些可选的实施方式中,处理单元1102用于:从动作逻辑图中提取每个逻辑节点和逻辑结构;基于逻辑结构对每个逻辑节点进行编码转码处理,生成动作逻辑图的第一上下文信息。
在另一些可选的实施方式中,处理单元1102用于:基于运行环境信息检测每个逻辑节点的当前运行状态;基于每个逻辑节点的当前运行状态更新第一上下文信息中每个逻辑节点的初始运行状态,得到动作逻辑图的第二上下文信息;基于第二上下文信息和执行参数配置信息,按照逻辑结构运行每个逻辑节点,得到每个逻辑节点的运行结果。
在另一些可选的实施方式中,动作逻辑图中的逻辑结构包括并行逻辑、异步逻辑、串行逻辑和分支逻辑中的一个或多个逻辑。
在另一些可选的实施方式中,处理单元1102用于:在按照逻辑结构运行至逻辑结构中的异步逻辑所关联的逻辑节点时,停止运行异步逻辑所关联的逻辑节点,并基于第二上下文信息和执行参数配置信息,运行并行逻辑所关联的逻辑节点、串行逻辑所关联的逻辑节点、以及分支逻辑所关联的逻辑节点中的至少一个。
在另一些可选的实施方式中,逻辑节点的当前运行状态包括所述逻辑节点的默认状态、执行状态、完成状态、失败状态以及分支状态中的一个。
在另一些可选的实施方式中,获取单元1101用于:获取展示页面,展示页面包括至少一个组件,每个组件与至少一个待处理事件存在对应关系;获取第一操作指令,响应所述第一操作指令,所述第一操作指令为用于触发所述组件时的指令;基于第一操作指令和对应关系,从事件数据库中获取待处理事件。
在另一些可选的实施方式中,获取单元1101用于:获取针对每个逻辑节点的操作指令,以及每个逻辑节点的节点属性信息,每个逻辑节点用于指示待处理事件中的多个处理步骤中的一个处理步骤。处理单元1102用于:基于每个针对逻辑节点的操作指令将对应的逻辑节点部署在展示页面的画布区域;基于每个逻辑节点的节点属性信息确定逻辑结构,逻辑结构用于指示每个逻辑节点之间的关联关系;基于每个逻辑节点以及逻辑结构,在展示页面的画布区域生成待处理事件的动作逻辑图,动作逻辑图包括至少两个逻辑节点以及逻辑结构,动作逻辑图用于指示按照逻辑结构运行每个逻辑节点,以得到待处理事件的处理结果,待处理事件的处理结果用于指示待处理事件的运行情况。具体可以参照前述图5中的步骤S501至步骤S504示出的内容进行理解,此处不做赘述。
在另一些可选的实施方式中,获取单元1101还用于在获取针对每个逻辑节点的操作指令之前,配置目标入参信息和目标出参信息,目标入参信息用于指示逻辑节点的入参,目标出参信息用于指示逻辑节点的出参。处理单元1102用于基于目标入参信息和目标出参信息生成每个逻辑节点的逻辑源码信息,逻辑源码信息包括动作逻辑图的上下文信息、next执行函数以及params入参,next执行函数用于调用执行下一个逻辑节点,next执行函数的入参为上一个逻辑节点的出参,params入参为每个逻辑节点的参数值;基于每个逻辑节点的逻辑源码信息生成对应的逻辑节点。
在另一些可选的实施方式中,处理单元1102还用于:在基于每个逻辑节点的逻辑源码信息生成对应的逻辑节点之前,对逻辑源码信息进行语法解析,得到抽象语法树,抽象语法树包括逻辑源码信息的循环体;在所述循环体的执行时间、所述循环体的执行次数中的至少一个满足预设条件时,将所述逻辑源码信息存储在数据库;或者,在所述循环体的执行时间、所述循环体的执行次数中的至少一个不满足所述预设条件时,发出异常消息,异常消息用于提示逻辑源码信息为异常代码。
在另一些可选的实施方式中,处理单元1102还用于:在基于每个逻辑节点以及逻辑结构,在展示页面的画布区域生成待处理事件的动作逻辑图之后,对动作逻辑图进行调试处理。
在另一些可选的实施方式中,获取单元1101用于:获取针对第一逻辑节点的操作指令,针对第一逻辑节点的操作指令用于指示暂停运行第一逻辑节点,第一逻辑节点为至少两个逻辑节点中的任意一个。处理单元1102用于:在基于针对第一逻辑节点的操作指令暂停运行第一逻辑节点后,对动作逻辑图进行编译处理,生成动作逻辑图的当前上下文信息;基于动作逻辑图的当前上下文信息运行第二逻辑节点,得到第二逻辑节点的运行结果,第二逻辑节点为至少两个逻辑节点中除了第一逻辑节点以外的其余逻辑节点;基于第二逻辑节点的运行结果调试动作逻辑图。
在另一些可选的实施方式中,展示页面包括至少一个第一组件,每个第一组件与至少一个待处理事件存在对应关系。
上面从模块化功能实体的角度对本申请实施例中的事件处理装置进行描述,下面从硬件处理的角度对本申请实施例中的事件处理装置进行描述。所描述的事件处理装置可以是图3示出的第一设备,以及图5示出的第二设备等。图12是本申请实施例提供的事件处理装置的结构示意图。该事件处理装置可因配置或性能不同而产生比较大的差异。该事件处理装置可以至少一个处理器601,通信线路1207,存储器1203以及至少一个通信接口1204。
处理器1201可以是一个通用中央处理器(central processing unit,CPU),微处理器,特定应用集成电路(application-specific integrated circuit,服务器IC),或一个或多个用于控制本申请方案程序执行的集成电路。
通信线路1207可包括一通路,在上述组件之间传送信息。
通信接口1204,使用任何收发器一类的装置,用于与其他装置或通信网络通信,如以太网,无线接入网(radio access network,RAN),无线局域网(wireless local areanetworks,WLAN)等。
存储器1203可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储装置,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储装置,存储器可以是独立存在,通过通信线路1207与处理器相连接。存储器也可以和处理器集成在一起。
其中,存储器1203用于存储执行本申请方案的计算机执行指令,并由处理器1201来控制执行。处理器1201用于执行存储器1203中存储的计算机执行指令,从而实现本申请上述实施例提供的方法。
可选的,本申请实施例中的计算机执行指令也可以称之为应用程序代码,本申请实施例对此不作具体限定。
在具体实现中,作为一种实施例,该事件处理装置可以包括多个处理器,例如图12中的处理器1201和处理器1202。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个装置、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
在具体实现中,作为一种实施例,该事件处理装置还可以包括输出设备1205和输入设备1206。输出设备1205和处理器1201通信,可以以多种方式来显示信息。输入设备1206和处理器1201通信,可以以多种方式接收目标对象的输入。例如,输入设备1206可以是鼠标、触摸屏装置或传感装置等。
上述的事件处理装置可以是一个通用装置或者是一个专用装置。在具体实现中,该事件处理装置可以是服务器、终端设备等或有图12中类似结构的装置。本申请实施例不限定该事件处理装置的类型。
需说明,图12中的处理器1201可以通过调用存储器1203中存储的计算机执行指令,使得事件处理装置执行如图3或图5对应的方法实施例中的方法。
具体的,图11中的处理单元1102的功能/实现过程可以通过图12中的处理器1201调用存储器1203中存储的计算机执行指令来实现。图11中的获取单元1101的功能/实现过程可以通过图12中的通信接口1204来实现。
本申请实施例还提供一种计算机存储介质,其中,该计算机存储介质存储用于电子数据交换的计算机程序,该计算机程序使得计算机执行如上述方法实施例中记载的任何一种事件处理的方法的部分或全部步骤。
本申请实施例还提供一种计算机程序产品,计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,计算机程序可操作来使计算机执行如上述方法实施例中记载的任何一种事件处理的方法的部分或全部步骤。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
上述实施例,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现,当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机执行指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如SSD))等。
以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (18)
1.一种事件处理的方法,其特征在于,应用于第一设备,所述方法包括:
获取待处理事件,所述待处理事件包括动作逻辑图,所述动作逻辑图由第二设备基于至少两个逻辑节点和逻辑结构生成,所述动作逻辑图包括所述至少两个逻辑节点和所述逻辑结构,所述逻辑结构用于指示每个所述逻辑节点之间的关联关系,每个所述逻辑节点用于指示所述待处理事件中的多个处理步骤中的一个所述处理步骤;
对所述动作逻辑图进行编译处理,生成所述动作逻辑图的第一上下文信息;
获取针对所述待处理事件的操作指令,响应所述操作指令,所述操作指令携带所述动作逻辑图的执行参数配置信息;
基于所述动作逻辑图的第一上下文信息和所述执行参数配置信息运行每个所述逻辑节点,得到每个所述逻辑节点的运行结果;
基于所述每个逻辑节点的运行结果确定所述待处理事件的处理结果,所述待处理事件的处理结果用于指示所述待处理事件的运行情况。
2.根据权利要求1所述的方法,其特征在于,所述对动作逻辑图进行编译处理,生成所述动作逻辑图的第一上下文信息,包括:
从所述动作逻辑图中提取每个所述逻辑节点和所述逻辑结构;
基于所述逻辑结构对每个所述逻辑节点进行编码转码处理,生成所述动作逻辑图的第一上下文信息。
3.根据权利要求1或2所述的方法,其特征在于,基于所述动作逻辑图的第一上下文信息和所述执行参数配置信息运行每个所述逻辑节点,得到每个所述逻辑节点的运行结果,包括:
基于运行环境信息检测每个所述逻辑节点的当前运行状态;
基于每个所述逻辑节点的当前运行状态更新所述第一上下文信息中每个所述逻辑节点的初始运行状态,得到所述动作逻辑图的第二上下文信息;
基于所述第二上下文信息和所述执行参数配置信息,按照所述逻辑结构运行每个所述逻辑节点,得到每个所述逻辑节点的运行结果。
4.根据权利要求1或2所述的方法,其特征在于,所述动作逻辑图中的逻辑结构包括并行逻辑、异步逻辑、串行逻辑和分支逻辑中的一个或多个逻辑。
5.根据权利要求4所述的方法,其特征在于,基于所述第二上下文信息和所述执行参数配置信息,按照所述逻辑结构运行每个所述逻辑节点,包括:
在按照所述逻辑结构运行至所述逻辑结构中的所述异步逻辑所关联的逻辑节点时,停止运行所述异步逻辑所关联的逻辑节点,并基于所述第二上下文信息和所述执行参数配置信息,运行所述并行逻辑所关联的逻辑节点、所述串行逻辑所关联的逻辑节点以及所述分支逻辑所关联的逻辑节点当中的至少一个。
6.根据权利要求3所述的方法,其特征在于,所述逻辑节点的当前运行状态包括所述逻辑节点的默认状态、执行状态、完成状态、失败状态以及分支状态中的一个。
7.根据权利要求1或2所述的方法,其特征在于,所述获取待处理事件,包括:
获取展示页面,所述展示页面包括至少一个组件,每个所述组件与至少一个所述待处理事件存在对应关系;
获取第一操作指令,响应于所述第一操作指令,所述第一操作指令为用于触发所述组件时的指令;
基于所述第一操作指令和所述对应关系,从事件数据库中获取所述待处理事件。
8.一种事件处理的方法,其特征在于,应用于第二设备,所述方法包括:
获取针对每个逻辑节点的操作指令,以及每个所述逻辑节点的节点属性信息,每个所述逻辑节点用于指示待处理事件中的多个处理步骤中的一个所述处理步骤;
基于每个所述针对所述逻辑节点的操作指令将对应的所述逻辑节点部署在展示页面的画布区域;
基于所述每个逻辑节点的节点属性信息确定逻辑结构,所述逻辑结构用于指示每个所述逻辑节点之间的关联关系;
基于每个所述逻辑节点以及所述逻辑结构,在所述展示页面的画布区域生成所述待处理事件的动作逻辑图,所述动作逻辑图包括至少两个所述逻辑节点以及所述逻辑结构,所述动作逻辑图用于指示按照所述逻辑结构运行每个所述逻辑节点,以得到所述待处理事件的处理结果,所述待处理事件的处理结果用于指示所述待处理事件的运行情况。
9.根据权利要求8所述的方法,其特征在于,在获取针对每个逻辑节点的操作指令之前,所述方法还包括:
配置目标入参信息和目标出参信息,所述目标入参信息用于指示逻辑节点的入参,所述目标出参信息用于指示逻辑节点的出参;
基于所述目标入参信息和所述目标出参信息生成每个所述逻辑节点的逻辑源码信息,所述逻辑源码信息包括所述动作逻辑图的上下文信息、next执行函数以及params入参,所述next执行函数用于调用执行下一个逻辑节点,所述next执行函数的入参为上一个逻辑节点的出参,所述params入参为每个所述逻辑节点的参数值;
基于每个所述逻辑节点的逻辑源码信息生成对应的逻辑节点。
10.根据权利要求8或9所述的方法,其特征在于,所述动作逻辑图中的逻辑结构包括并行逻辑、异步逻辑、串行逻辑和分支逻辑中的一个或多个逻辑。
11.根据权利要求9所述的方法,其特征在于,在基于每个所述逻辑节点的逻辑源码信息生成对应的逻辑节点之前,所述方法还包括:
对所述逻辑源码信息进行语法解析,得到抽象语法树,所述抽象语法树包括所述逻辑源码信息的循环体;
在所述循环体的执行时间、所述循环体的执行次数中的至少一个满足预设条件时,将所述逻辑源码信息存储在数据库;或者,
在所述循环体的执行时间、所述循环体的执行次数中的至少一个不满足所述预设条件时,发出异常消息,所述异常消息用于提示所述逻辑源码信息为异常代码。
12.根据权利要求8或9所述的方法,其特征在于,所述在基于每个所述逻辑节点以及所述逻辑结构,在所述展示页面的画布区域生成所述待处理事件的动作逻辑图之后,所述方法还包括:
对所述动作逻辑图进行调试处理。
13.根据权利要求12所述的方法,其特征在,所述对所述动作逻辑图进行调试处理,包括:
获取针对第一逻辑节点的操作指令,所述针对第一逻辑节点的操作指令用于指示暂停运行所述第一逻辑节点,所述第一逻辑节点为所述至少两个逻辑节点中的任意一个;
在基于所述针对第一逻辑节点的操作指令暂停运行所述第一逻辑节点后,对所述动作逻辑图进行编译处理,生成所述动作逻辑图的当前上下文信息;
基于所述动作逻辑图的当前上下文信息运行第二逻辑节点,得到所述第二逻辑节点的运行结果,所述第二逻辑节点为所述至少两个逻辑节点中除了所述第一逻辑节点以外的其余逻辑节点;
基于所述第二逻辑节点的运行结果调试所述所述动作逻辑图。
14.根据权利要求8或9所述的方法,其特征在于,所述展示页面包括至少一个第一组件,每个所述第一组件与至少一个所述待处理事件存在对应关系。
15.一种事件处理装置,其特征在于,包括:
获取单元,用于获取待处理事件,所述待处理事件包括动作逻辑图,所述动作逻辑图由第二设备基于至少两个逻辑节点和逻辑结构生成,所述动作逻辑图包括所述至少两个逻辑节点和所述逻辑结构,所述逻辑结构用于指示每个所述逻辑节点之间的关联关系,每个所述逻辑节点用于指示所述待处理事件中的多个处理步骤中的一个所述处理步骤;
处理单元,用于对所述动作逻辑图进行编译处理,生成所述动作逻辑图的第一上下文信息;
所述获取单元,用于获取针对所述待处理事件的操作指令,响应所述操作指令,所述操作指令携带所述动作逻辑图的执行参数配置信息;
所述处理单元,用于基于所述动作逻辑图的第一上下文信息和所述执行参数配置信息运行每个所述逻辑节点,得到每个所述逻辑节点的运行结果;
所述处理单元,用于基于所述每个逻辑节点的运行结果确定所述待处理事件的处理结果,所述待处理事件的处理结果用于指示所述待处理事件的运行情况。
16.一种事件处理装置,其特征在于,所述事件处理装置包括:输入/输出(I/O)接口、处理器和存储器,所述存储器中存储有程序指令;
所述处理器用于执行存储器中存储的程序指令,执行如权利要求1至14中任一所述的方法。
17.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括指令,当所述指令在计算机设备上运行时,使得所述计算机设备执行如权利要求1至14中任一项所述的方法。
18.一种计算机程序产品,其特征在于,所述计算机程序成品包括指令,当所述指令在计算机设备或者处理器上运行时,使得所述计算机设备或者所述处理器执行如权利要求1至14中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310006673.7A CN117215661A (zh) | 2023-01-04 | 2023-01-04 | 一种事件处理的方法、装置以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310006673.7A CN117215661A (zh) | 2023-01-04 | 2023-01-04 | 一种事件处理的方法、装置以及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117215661A true CN117215661A (zh) | 2023-12-12 |
Family
ID=89049768
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310006673.7A Pending CN117215661A (zh) | 2023-01-04 | 2023-01-04 | 一种事件处理的方法、装置以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117215661A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117785391A (zh) * | 2024-02-28 | 2024-03-29 | 成都索贝视频云计算有限公司 | 一种服务操作逻辑结构化装置 |
CN117785391B (zh) * | 2024-02-28 | 2024-05-10 | 成都索贝视频云计算有限公司 | 一种服务操作逻辑结构化装置 |
-
2023
- 2023-01-04 CN CN202310006673.7A patent/CN117215661A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117785391A (zh) * | 2024-02-28 | 2024-03-29 | 成都索贝视频云计算有限公司 | 一种服务操作逻辑结构化装置 |
CN117785391B (zh) * | 2024-02-28 | 2024-05-10 | 成都索贝视频云计算有限公司 | 一种服务操作逻辑结构化装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11422778B2 (en) | Development environment for real-time dataflow programming language | |
CN112394922B (zh) | 决策配置方法、业务决策方法和决策引擎系统 | |
US8751558B2 (en) | Mashup infrastructure with learning mechanism | |
US8826240B1 (en) | Application validation through object level hierarchy analysis | |
CN108614776A (zh) | 跨语言协议测试请求的动态构建方法和系统 | |
CN106528399A (zh) | 一种测试用例确定方法及装置 | |
CN112329945A (zh) | 一种模型部署及推理的方法和装置 | |
US11947443B2 (en) | Robotic process automation (RPA) debugging systems and methods | |
US20180024816A1 (en) | Code snippet content recommendation to define an object literal | |
US9729677B2 (en) | Method of adding client server automation to computer languages for cloud computing | |
CN109508298B (zh) | 图形化的脚本测试方法及系统 | |
CN103678135A (zh) | 大数据环境下实现跨进程与跨线程调试的系统与方法 | |
US8126961B2 (en) | Integration of client and server development environments | |
US20200097260A1 (en) | Software application developer tools platform | |
CN108319474A (zh) | 一种页面信息生成方法、装置和设备 | |
Wanderley et al. | MBA: A system of systems architecture model for supporting collaborative work | |
CN116360735A (zh) | 一种表单生成方法、装置、设备和介质 | |
CN117215661A (zh) | 一种事件处理的方法、装置以及存储介质 | |
US11544179B2 (en) | Source traceability-based impact analysis | |
CN115562989A (zh) | 一种自动化测试序列转化方法、系统、设备和介质 | |
CN115509531A (zh) | 基于前端技术的微前端实现方法、装置、终端及存储介质 | |
Dantas et al. | Towards aspect-oriented programming for context-aware systems: A comparative study | |
CN114297057A (zh) | 一种自动化测试用例的设计及使用方法 | |
CN114090002A (zh) | 前端界面构建方法、装置、电子设备和存储介质 | |
CN106155895A (zh) | 脚本数据处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |