CN114816433A - 基于异步编程在项目中的编码方法、系统、设备及介质 - Google Patents
基于异步编程在项目中的编码方法、系统、设备及介质 Download PDFInfo
- Publication number
- CN114816433A CN114816433A CN202210620832.8A CN202210620832A CN114816433A CN 114816433 A CN114816433 A CN 114816433A CN 202210620832 A CN202210620832 A CN 202210620832A CN 114816433 A CN114816433 A CN 114816433A
- Authority
- CN
- China
- Prior art keywords
- data
- module
- project
- data module
- processing
- 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
- 238000000034 method Methods 0.000 title claims abstract description 37
- 238000012545 processing Methods 0.000 claims abstract description 76
- 238000010586 diagram Methods 0.000 claims abstract description 24
- 238000004590 computer program Methods 0.000 claims description 10
- 238000001514 detection method Methods 0.000 claims description 9
- 230000005540 biological transmission Effects 0.000 abstract description 4
- 238000012423 maintenance Methods 0.000 abstract description 4
- 230000010006 flight Effects 0.000 description 16
- 230000006870 function Effects 0.000 description 8
- 230000008569 process Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 230000006399 behavior Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
- G06F8/315—Object-oriented languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
- G06F9/449—Object-oriented method invocation or resolution
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种基于异步编程在项目中的编码方法、系统、设备及介质,该方法包括:获取目标项目数据;确定目标项目数据对应的数据结构图;执行根据第一数据模块和第二数据模块而设定的处理线程;检测当前执行的处理线程中待处理的第二数据模块是否为根节点,若否,则继续执行处理线程中依赖于第二数据模块的其他的第二数据模块的数据处理运算。本发明通过对象属性存储数据,一方面实现了高内聚的模块化,另一方面实现了灵活高效的跨模块数据访问功能;基于模块化实现的自动服务编排,实现了模块之间数据灵活的上下传递,节省了服务编排的硬编码与维护工作。
Description
技术领域
本发明涉及异步编程技术,尤其涉及一种基于异步编程在项目中的编码方法、系统、设备及介质。
背景技术
异步是一种程序设计的思想,使用异步模式设计的程序可以显著减少线程等待,从而在高吞吐量的场景中,极大提升系统的整体性能,显著降低时延。异步编程是一种并发编程的模式,其关注点是通过调度不同任务之间执行和等待的时间,通过减少处理器的闲置时间来达到减少整个程序的执行时间。
现有的CompletableFuture(组合式异步编程)和Reactor(异步应用程序库)异步编程框架存在上下文数据传递复杂,聚合操作部分框架不支持数据传递的缺陷;服务编排代码会随着业务规模迅速膨胀,造成编排代码难以开发和维护。
发明内容
本发明要解决的技术问题是为了克服现有技术中硬编码服务编排不易开发维护的缺陷,提供一种基于异步编程在项目中的编码方法、系统、设备及介质。
本发明是通过下述技术方案来解决上述技术问题:
第一方面,本发明提供一种基于异步编程在项目中的编码方法,所述编码方法包括:
获取目标项目数据;所述目标项目数据包括多个第一数据模块,不同的所述第一数据模块对应不同类型的项目子数据,所述第一数据模块包括类属性标识;
确定所述目标项目数据对应的数据结构图;所述数据结构图用于表征由所述第一数据模块和依赖于所述第一数据模块而生成的第二数据模块构成的树型结构;
执行根据所述第一数据模块和所述第二数据模块而设定的处理线程;
检测当前执行的所述处理线程中待处理的所述第二数据模块是否为根节点,若否,则继续执行所述处理线程中依赖于所述第二数据模块的其他所述第二数据模块的数据处理运算。
较佳地,所述编码方法还包括:
检测当前执行的所述处理线程中待处理的所述第二数据模块是否为根节点,若是,则线程结束。
较佳地,所述执行根据所述第一数据模块和所述第二数据模块而设定的处理线程的步骤,包括:
针对所述第一数据模块,使用多线程并发运行以获取所述第一数据模块中存储的所述项目子数据;
当获取到所述项目子数据后,以后序遍历的顺序执行所述第二数据模块中的数据处理运算。
较佳地,所述当获取到所述项目子数据后,以后序遍历的顺序执行所述第二数据模块中的数据处理运算的步骤,还包括:
根据所述类属性标识,调用与每个所述第二数据模块相关联的所述项目子数据并执行预设的逻辑运算;
将每个所述第二数据模块的逻辑运算结果存储于目标位置。
第二方面,本发明提供一种基于异步编程在项目中的编码系统,所述编码系统包括:
获取模块,用于获取目标项目数据;所述目标项目数据包括多个第一数据模块,不同的所述第一数据模块对应不同类型的项目子数据,所述第一数据模块包括类属性标识;
确定模块,用于确定所述目标项目数据对应的数据结构图;所述数据结构图用于表征由所述第一数据模块和依赖于所述第一数据模块而生成的第二数据模块构成的树型结构;
执行模块,用于执行根据所述第一数据模块和所述第二数据模块而设定的处理线程;
检测模块,用于检测当前执行的所述处理线程中待处理的所述第二数据模块是否为根节点,若否,则调用第一处理模块;
所述第一处理模块,用于继续执行所述处理线程中依赖于所述第二数据模块的其他所述第二数据模块的数据处理运算。
较佳地,所述编码系统还包括:第二处理模块;
所述检测模块,用于检测当前执行的所述处理线程中待处理的所述第二数据模块是否为根节点,若是,则调用所述第二处理模块;
所述第二处理模块,用于结束线程。
较佳地,所述执行模块,包括:
获取单元,用于针对所述第一数据模块,使用多线程并发运行以获取所述第一数据模块中存储的所述项目子数据;
执行单元,用于当获取到所述项目子数据后,以后序遍历的顺序执行所述第二数据模块中的数据处理运算。
较佳地,所述执行单元具体用于:
根据所述类属性标识,调用与每个所述第二数据模块相关联的所述项目子数据并执行预设的逻辑运算;
将每个所述第二数据模块的逻辑运算结果存储于目标位置。
第三方面,本发明还提供一种电子设备,包括处理器、存储器以及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现第一方面所述的基于异步编程在项目中的编码方法。
第四方面,本发明提供一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现第一方面所述的基于异步编程在项目中的编码方法的步骤。
本发明的积极进步效果在于:提供一种基于异步编程在项目中的编码方法、系统、设备及介质,确定目标项目数据对应的数据结构图;执行根据第一数据模块和第二数据模块而设定的处理线程;检测当前执行的处理线程中待处理的第二数据模块是否为根节点,若否,则继续自动执行处理线程。本发明通过对象属性存储数据,一方面实现了高内聚的模块化,另一方面实现了灵活高效的跨模块数据访问功能;基于模块化实现的自动服务编排,实现了模块之间数据灵活的上下传递,节省了服务编排的硬编码与维护工作。
附图说明
图1为本发明实施例1的基于异步编程在项目中的编码方法的流程图。
图2为本发明实施例1的基于异步编程在项目中的编码方法的项目结构示意图。
图3为本发明实施例2的基于异步编程在项目中的编码系统的模块示意图。
图4为本发明实施例3的电子设备的硬件结构示意图。
具体实施方式
下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。
实施例1
如图1所示,本发明实施例中一种基于异步编程在项目中的编码方法的流程图,具体可以包括如下步骤:
S1、获取目标项目数据;目标项目数据包括多个第一数据模块,不同的第一数据模块对应不同类型的项目子数据,第一数据模块包括类属性标识。
S2、确定目标项目数据对应的数据结构图;数据结构图用于表征由第一数据模块和依赖于第一数据模块而生成的第二数据模块构成的树型结构。
S3、执行根据第一数据模块和第二数据模块而设定的处理线程。
S4、检测当前执行的处理线程中待处理的第二数据模块是否为根节点,若否,则执行步骤S51,若是,则执行步骤S52。
S51、继续执行处理线程中依赖于第二数据模块的其他的第二数据模块的数据处理运算。
S52、结束线程。
针对上述步骤S1,可以通过网站或者应用(application;app)进行埋点,获取用户的行为数据和订单请求数据构成的目标项目数据。如图2所示,目标项目数据为查询订单退改信息,该项目包括三个第一数据模块,每个第一数据模块中存储的项目子数据不同。
针对上述步骤S2,获取该目标项目数据在执行的过程中所需的数据结构图。如图2所示,为由第一数据模块和第二数据模块构成的树型结构图。该图中collector1数据模块、collector2数据模块和collector3数据模块为第一数据模块。collector4数据模块、collector5数据模块、builder1数据模块、builder2数据模块和responseBuilder数据模块为第二数据模块。
针对上述步骤S3,在执行处理线程的过程中,collector4数据模块访问collector1数据模块的机票订单详情数据,和collector2数据模块的机票退票数据,计算是否还有未退票的航班,获取未退票航班的航班改签政策数据。collector5数据模块访问collector1数据模块的机票订单详情数据,和collector2数据模块的机票退票数据,计算是否还有未退票的航班,获取剩余未退票的航班退票政策数据。
builder1数据模块聚合collector4数据模块和collector5数据模块的剩余未退票航班的退改签政策数据,builder2数据模块聚合collector5数据模块的剩余未退票航班的退票政策数据,collector3数据模块的机票订单附属产品(比如保险,休息室等)的数据,计算此订单剩余可退金额。responseBuilder数据模块将builder1数据模块和builder2数据模块中存储的数据进行聚合,将聚合后的结果返回给用户端。
针对上述步骤S4,处理线程运行的过程中,实时检测待处理的第二数据模块是否为responseBuilder数据模块(根节点),若不是,表明该处理线程未运行完毕,继续自动执行步骤S51,若是,表明该处理线程已经运行完毕了,则自动执行步骤S52。
在一种可能实现的方案中,步骤S3包括:
S31、针对第一数据模块,使用多线程并发运行以获取第一数据模块中存储的项目子数据;
S32、当获取到项目子数据后,以后序遍历的顺序执行第二数据模块中的数据处理运算。
针对上述步骤S31,对于与其他数据模块不存在依赖关系的第一数据模块,使用多线程的方式,同时获取每个第一数据模块中预先存储的项目子数据。例如,图2的项目结构图中利用多线程同时获取collector1数据模块、collector2数据模块和collector3数据模块中显示存储的项目子数据分别为机票订单详情数据、机票退票数据和机票订单附属产品(比如保险、休息室等)详情数据,
针对上述步骤S32,当获取到项目子数据后,按照图2中箭头所指的方向继续执行后续的线程。例如,collector4数据模块访问collector1数据模块中的机票订单详情数据,并且访问collector2数据模块中的机票退票数据,计算是否还有未退票的航班,获取未退票航班的航班改签政策数据。
在一种可能实现的方案中,步骤S32包括:
S321、根据类属性标识,调用与每个第二数据模块相关联的项目子数据并执行预设的逻辑运算。
S322、将每个第二数据模块的逻辑运算结果存储于目标位置。
具体地,collector5数据模块通过第一数据模块中标注的类属性标识,利用getArriveCityId方法访问collector1数据模块中的机票订单详情数据,并且访问collector2数据模块中的机票退票数据,计算是否还有未退票的航班,获取剩余未退票的航班退票政策数据。将需要保存和传出数据的类中,将此类设置为跨线程的RequestScope生命周期,将数据赋值于类属性,并设置类属性的访问权限。其次,collector2数据模块将剩余未退票的航班退票政策数据保存至在本模块中,以供剩余的其他的第二数据模块执行后续的线程时,实现数据访问。
本实施例中,提供一种基于异步编程在项目中的编码方法,确定目标项目数据对应的数据结构图;执行根据第一数据模块和第二数据模块而设定的处理线程;根据当前执行的处理线程中待处理的第二数据模块是否为根节点的判断结果,确定继续执行或者暂停线程。本发明通过对象属性存储数据,一方面实现了高内聚的模块化,另一方面实现了灵活高效的跨模块数据访问功能;基于模块化实现的自动服务编排,实现了模块之间数据灵活的上下传递,节省了服务编排的硬编码与维护工作。
实施例2
如图3所示,本发明实施例中一种基于异步编程在项目中的编码系统的模块示意图,具体可以包括如下步骤:获取模块210、确定模块220、执行模块230、检测模块240、第一处理模块251和第二处理模块252。
其中,获取模块210,用于获取目标项目数据;目标项目数据包括多个第一数据模块,不同的第一数据模块对应不同类型的项目子数据,第一数据模块包括类属性标识。
确定模块220,用于确定目标项目数据对应的数据结构图;数据结构图用于表征由第一数据模块和依赖于第一数据模块而生成的第二数据模块构成的树型结构。
执行模块230,用于执行根据第一数据模块和第二数据模块而设定的处理线程。
检测模块240,用于检测当前执行的处理线程中待处理的第二数据模块是否为根节点,若否,则调用第一处理模块251;若是,则调用第二处理模块252;
第一处理模块251,用于继续执行处理线程中依赖于第二数据模块的其他的第二数据模块的数据处理运算。
第二处理模块252,用于结束线程。
可以通过网站或者应用(application;app)进行埋点,获取模块210获取用户的行为数据和订单请求数据构成的目标项目数据。如图2所示,目标项目数据为查询订单退改信息,该项目包括三个第一数据模块,每个第一数据模块中存储的项目子数据不同。
确定模块220获取该目标项目数据在执行的过程中所需的数据结构图。如图2所示,为由第一数据模块和第二数据模块构成的树型结构图。该图中collector1数据模块、collector2数据模块和collector3数据模块为第一数据模块。collector4数据模块、collector5数据模块、builder1数据模块、builder2数据模块和responseBuilder数据模块为第二数据模块。
执行模块230在执行处理线程的过程中,collector4数据模块访问collector1数据模块的机票订单详情数据,和collector2数据模块的机票退票数据,计算是否还有未退票的航班,获取未退票航班的航班改签政策数据。collector5数据模块访问collector1数据模块的机票订单详情数据,和collector2数据模块的机票退票数据,计算是否还有未退票的航班,获取剩余未退票的航班退票政策数据。
builder1数据模块聚合collector4数据模块和collector5数据模块的剩余未退票航班的退改签政策数据,builder2数据模块聚合collector5数据模块的剩余未退票航班的退票政策数据,collector3数据模块的机票订单附属产品(比如保险,休息室等)的数据,计算此订单剩余可退金额。responseBuilder数据模块将builder1数据模块和builder2数据模块中存储的数据进行聚合,将聚合后的结果返回给用户端。
处理线程运行的过程中,检测模块240实时检测待处理的第二数据模块是否为responseBuilder数据模块(根节点),若不是,表明该处理线程未运行完毕,继续自动调用第一处理模块251,若是,表明该处理线程已经运行完毕了,则自动调用第二处理模块252。
在一种可能实现的方案中,该执行模块230包括:
获取单元231,用于针对第一数据模块,使用多线程并发运行以获取第一数据模块中存储的项目子数据;
执行单元232,用于当获取到项目子数据后,以后序遍历的顺序执行所第二数据模块中的数据处理运算。
对于与其他数据模块不存在依赖关系的第一数据模块,获取单元231使用多线程的方式,同时获取每个第一数据模块中预先存储的项目子数据。例如,图2的项目结构图中利用多线程同时获取collector1数据模块、collector2数据模块和collector3数据模块中显示存储的项目子数据分别为机票订单详情数据、机票退票数据和机票订单附属产品(比如保险、休息室等)详情数据,
当获取到项目子数据后,执行单元232按照图2中箭头所指的方向继续执行后续的线程。例如,collector4数据模块访问collector1数据模块中的机票订单详情数据,并且访问collector2数据模块中的机票退票数据,计算是否还有未退票的航班,获取未退票航班的航班改签政策数据。
在一种可能实现的方案中,执行单元232具有用于:
根据类属性标识,调用与每个第二数据模块相关联的项目子数据并执行预设的逻辑运算。
将每个第二数据模块的逻辑运算结果存储于目标位置。
例如,执行单元232具有利用collector5数据模块通过第一数据模块中标注的类属性标识,利用getArriveCityId方法访问collector1数据模块中的机票订单详情数据,并且访问collector2数据模块中的机票退票数据,计算是否还有未退票的航班,获取剩余未退票的航班退票政策数据。将需要保存和传出数据的类中,将此类设置为跨线程的RequestScope生命周期,将数据赋值于类属性,并设置类属性的访问权限。其次,collector2数据模块将剩余未退票的航班退票政策数据保存至在本模块中,以供剩余的其他的第二数据模块执行后续的线程时,实现数据访问。
本实施例中,提供一种基于异步编程在项目中的编码系统,确定模块确定目标项目数据对应的数据结构图;执行模块执行根据第一数据模块和第二数据模块而设定的处理线程;第一检测模块根据当前执行的处理线程中待处理的第二数据模块是否为根节点的判断结果,确定继续执行或者暂停线程。本发明通过对象属性存储数据,一方面实现了高内聚的模块化,另一方面实现了灵活高效的跨模块数据访问功能;基于模块化实现的自动服务编排,实现了模块之间数据灵活的上下传递,节省了服务编排的硬编码与维护工作。
实施例3
图4为本实施例提供的一种电子设备的结构示意图。所述电子设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现实施例1的基于异步编程在项目中的编码方法,图4显示的电子设备30仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
电子设备30可以以通用计算设备的形式表现,例如其可以为服务器设备。电子设备30的组件可以包括但不限于:上述至少一个处理器31、上述至少一个存储器32、连接不同系统组件(包括存储器32和处理器31)的总线33。
总线33包括数据总线、地址总线和控制总线。
存储器32可以包括易失性存储器,例如随机存取存储器(RAM)321和/或高速缓存存储器322,还可以进一步包括只读存储器(ROM)323。
存储器32还可以包括具有一组(至少一个)程序模块324的程序/实用工具325,这样的程序模块324包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
处理器31通过运行存储在存储器32中的计算机程序,从而执行各种功能应用以及数据处理,例如本发明实施例1的基于异步编程在项目中的编码方法。
电子设备30也可以与一个或多个外部设备34(例如键盘、指向设备等)通信。这种通信可以通过输入/输出(I/O)接口35进行。并且,模型生成的设备30还可以通过网络适配器36与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器36通过总线33与模型生成的设备30的其它模块通信。应当明白,尽管图中未示出,可以结合模型生成的设备30使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID(磁盘阵列)系统、磁带驱动器以及数据备份存储系统等。
应当注意,尽管在上文详细描述中提及了电子设备的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
实施例4
本实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现实施例1的基于异步编程在项目中的编码方法的步骤。
其中,可读存储介质可以采用的更具体可以包括但不限于:便携式盘、硬盘、随机存取存储器、只读存储器、可擦拭可编程只读存储器、光存储器件、磁存储器件或上述的任意合适的组合。
在可能的实施方式中,本发明还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行实现实施例1的基于异步编程在项目中的编码方法的步骤。
其中,可以以一种或多种程序设计语言的任意组合来编写用于执行本发明的程序代码,所述程序代码可以完全地在用户设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户设备上部分在远程设备上执行或完全在远程设备上执行。
虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。
Claims (10)
1.一种基于异步编程在项目中的编码方法,其特征在于,所述编码方法包括:
获取目标项目数据;所述目标项目数据包括多个第一数据模块,不同的所述第一数据模块对应不同类型的项目子数据,所述第一数据模块包括类属性标识;
确定所述目标项目数据对应的数据结构图;所述数据结构图用于表征由所述第一数据模块和依赖于所述第一数据模块而生成的第二数据模块构成的树型结构;
执行根据所述第一数据模块和所述第二数据模块而设定的处理线程;
检测当前执行的所述处理线程中待处理的所述第二数据模块是否为根节点,若否,则继续执行所述处理线程中依赖于所述第二数据模块的其他所述第二数据模块的数据处理运算。
2.如权利要求1所述的基于异步编程在项目中的编码方法,其特征在于,所述编码方法还包括:
检测当前执行的所述处理线程中待处理的所述第二数据模块是否为根节点,若是,则结束线程。
3.如权利要求1所述的基于异步编程在项目中的编码方法,其特征在于,所述执行根据所述第一数据模块和所述第二数据模块而设定的处理线程的步骤,包括:
针对所述第一数据模块,使用多线程并发运行以获取所述第一数据模块中存储的所述项目子数据;
当获取到所述项目子数据后,以后序遍历的顺序执行所述第二数据模块中的数据处理运算。
4.如权利要求3所述的基于异步编程在项目中的编码方法,其特征在于,所述当获取到所述项目子数据后,以后序遍历的顺序执行所述第二数据模块中的数据处理运算的步骤,包括:
根据所述类属性标识,调用与每个所述第二数据模块相关联的所述项目子数据并执行预设的逻辑运算;
将每个所述第二数据模块的逻辑运算结果存储于目标位置。
5.一种基于异步编程在项目中的编码系统,其特征在于,所述编码系统包括:
获取模块,用于获取目标项目数据;所述目标项目数据包括多个第一数据模块,不同的所述第一数据模块对应不同类型的项目子数据,所述第一数据模块包括类属性标识;
确定模块,用于确定所述目标项目数据对应的数据结构图;所述数据结构图用于表征由所述第一数据模块和依赖于所述第一数据模块而生成的第二数据模块构成的树型结构;
执行模块,用于执行根据所述第一数据模块和所述第二数据模块而设定的处理线程;
检测模块,用于检测当前执行的所述处理线程中待处理的所述第二数据模块是否为根节点,若否,则调用第一处理模块;
所述第一处理模块,用于继续执行所述处理线程中依赖于所述第二数据模块的其他所述第二数据模块的数据处理运算。
6.如权利要求5所述的基于异步编程在项目中的编码系统,其特征在于,所述编码系统还包括:第二处理模块;
所述检测模块,检测当前执行的所述处理线程中待处理的所述第二数据模块是否为根节点,若是,则调用所述第二处理模块;
所述第二处理模块,用于结束线程。
7.如权利要求5所述的基于异步编程在项目中的编码方法,其特征在于,所述执行模块,包括:
获取单元,用于针对所述第一数据模块,使用多线程并发运行以获取所述第一数据模块中存储的所述项目子数据;
执行单元,用于当获取到所述项目子数据后,以后序遍历的顺序执行所述第二数据模块中的数据处理运算。
8.如权利要求7所述的基于异步编程在项目中的编码方法,其特征在于,所述执行单元具体用于:
根据所述类属性标识,调用与每个所述第二数据模块相关联的所述项目子数据并执行预设的逻辑运算;
将每个所述第二数据模块的逻辑运算结果存储于目标位置。
9.一种电子设备,其特征在于,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1-4中的任一项所述的基于异步编程在项目中的编码方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1-4中的任一项所述的基于异步编程在项目中的编码方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210620832.8A CN114816433A (zh) | 2022-06-01 | 2022-06-01 | 基于异步编程在项目中的编码方法、系统、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210620832.8A CN114816433A (zh) | 2022-06-01 | 2022-06-01 | 基于异步编程在项目中的编码方法、系统、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114816433A true CN114816433A (zh) | 2022-07-29 |
Family
ID=82519381
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210620832.8A Pending CN114816433A (zh) | 2022-06-01 | 2022-06-01 | 基于异步编程在项目中的编码方法、系统、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114816433A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008158759A (ja) * | 2006-12-22 | 2008-07-10 | Toshiba Corp | プログラミング方法、プログラム処理方法、処理プログラム及び情報処理装置 |
US20120210332A1 (en) * | 2011-02-16 | 2012-08-16 | Microsoft Corporation | Asynchronous programming execution |
CN111078205A (zh) * | 2019-11-22 | 2020-04-28 | 北京锐安科技有限公司 | 一种模块化编程方法、装置、存储介质及电子设备 |
CN111459493A (zh) * | 2020-03-26 | 2020-07-28 | 杭州指令集智能科技有限公司 | 一种基于组件编排的编程方法、装置及设备 |
-
2022
- 2022-06-01 CN CN202210620832.8A patent/CN114816433A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008158759A (ja) * | 2006-12-22 | 2008-07-10 | Toshiba Corp | プログラミング方法、プログラム処理方法、処理プログラム及び情報処理装置 |
US20120210332A1 (en) * | 2011-02-16 | 2012-08-16 | Microsoft Corporation | Asynchronous programming execution |
CN111078205A (zh) * | 2019-11-22 | 2020-04-28 | 北京锐安科技有限公司 | 一种模块化编程方法、装置、存储介质及电子设备 |
CN111459493A (zh) * | 2020-03-26 | 2020-07-28 | 杭州指令集智能科技有限公司 | 一种基于组件编排的编程方法、装置及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5852677B2 (ja) | レジスタ・マッピング方法 | |
US20210248469A1 (en) | Method and apparatus for scheduling deep learning reasoning engines, device, and medium | |
KR102236419B1 (ko) | 액세스 요청을 관리하기 위한 방법, 장치, 기기 및 저장 매체 | |
US8918795B2 (en) | Handling and reporting of object state transitions on a multiprocess architecture | |
CN115373835A (zh) | Flink集群的任务资源调整方法、装置及电子设备 | |
CN114168222A (zh) | 一种启动耗时的获取方法、装置、终端设备和存储介质 | |
CN112052082A (zh) | 任务属性优化方法、装置、服务器及存储介质 | |
CN111782341A (zh) | 用于管理集群的方法和装置 | |
CN113779117A (zh) | 一种数据监控方法、装置、存储介质和电子设备 | |
CN114398179B (zh) | 一种跟踪标识的获取方法、装置、服务器及存储介质 | |
CN115438056A (zh) | 一种数据获取方法、装置、设备以及存储介质 | |
CN114816433A (zh) | 基于异步编程在项目中的编码方法、系统、设备及介质 | |
US8756611B2 (en) | Delayed expansion of values in context | |
CN115390992A (zh) | 一种虚拟机创建方法、装置、设备和存储介质 | |
CN117093335A (zh) | 分布式存储系统的任务调度方法及装置 | |
US11475017B2 (en) | Asynchronous data enrichment for an append-only data store | |
CN110765098B (zh) | 流程运行预测系统及方法 | |
CN117290113B (zh) | 一种任务处理方法、装置、系统和存储介质 | |
US11907194B2 (en) | Systems and methods for executing and hashing modeling flows | |
US20240320035A1 (en) | Task analysis device and operating method thereof | |
US10664311B1 (en) | Timer object management for a multiprocessor virtual environment | |
CN116302331A (zh) | 一种Kubernetes集群健康巡检的方法 | |
CN118426900A (zh) | 基于OpenCL的SCADA画面缓存更新方法 | |
CN115202825A (zh) | 一种大规模集群请求处理方法、装置以及介质 | |
CN118277422A (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 |