CN115934656A - 信息处理方法、业务处理方法及装置 - Google Patents
信息处理方法、业务处理方法及装置 Download PDFInfo
- Publication number
- CN115934656A CN115934656A CN202211596239.0A CN202211596239A CN115934656A CN 115934656 A CN115934656 A CN 115934656A CN 202211596239 A CN202211596239 A CN 202211596239A CN 115934656 A CN115934656 A CN 115934656A
- Authority
- CN
- China
- Prior art keywords
- execution
- frame
- log
- target service
- execution frame
- 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
Images
Classifications
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本说明书实施例提供了一种信息处理方法、业务处理方法及装置,信息处理方法包括:在目标业务的执行流中,针对执行流中的执行帧,在执行帧的执行步骤完成后,根据执行帧中存储的目标业务的执行流对应的日志追踪标识,打印执行帧对应的日志;执行帧包括至少一个执行步骤;日志追踪标识用于标记执行帧对应的日志;在执行帧非执行流的最后一个执行帧时,将日志追踪标识传递至下一个执行帧,以在下一个执行帧中存储日志追踪标识;以及,删除执行帧中已存储的日志追踪标识;根据日志追踪标识,从日志数据中查询目标业务对应的目标日志。以此,能够快速实现日志追踪。
Description
技术领域
本文件涉及计算机技术领域,尤其涉及一种信息处理方法、业务处理方法及装置。
背景技术
随着电子技术的发展,业务的种类和数量日渐丰富,其流程的复杂度也越来越高。实际应用中,常常会出现多个业务并行处理且各个业务的链路相互交织。在存在相互交织的多条链路的情况下,对各条链路的复杂关系进行梳理并基于梳理结果获取单条链路的日志的难度较高。
发明内容
本说明书实施例提供了一种信息处理方法、业务处理方法及装置,在链路关系复杂的多业务并行场景下,从日志数据中快速获取目标业务对应的目标日志,以实现目标业务的日志追踪。
第一方面,本说明书实施例提供了一种信息处理方法,包括:
在目标业务的执行流中,针对所述执行流中的执行帧,在所述执行帧的执行步骤完成后,根据所述执行帧中存储的所述目标业务的执行流对应的日志追踪标识,打印所述执行帧对应的日志;所述执行帧包括至少一个执行步骤;所述日志追踪标识用于标记所述执行帧对应的日志;
在所述执行帧非所述执行流的最后一个执行帧时,将所述日志追踪标识传递至下一个执行帧,以在所述下一个执行帧中存储所述日志追踪标识;以及,删除所述执行帧中已存储的所述日志追踪标识;
根据所述日志追踪标识,从日志数据中查询所述目标业务对应的目标日志。
第二方面,本说明书实施例提供了一种业务处理方法,包括:
在目标业务的执行流中,针对所述执行流中的执行帧,在所述执行帧的执行步骤完成后,根据所述执行帧中存储的所述目标业务的执行流对应的日志追踪标识,打印所述执行帧对应的日志;所述执行帧包括至少一个执行步骤;所述日志追踪标识用于标记所述执行帧对应的日志;
在所述执行帧非所述执行流的最后一个执行帧时,将所述日志追踪标识传递至下一个执行帧,以在所述下一个执行帧中存储所述日志追踪标识;以及,删除所述执行帧中已存储的所述日志追踪标识。
第三方面,本说明书实施例提供了一种信息处理装置,包括:
第一打印单元,用于在目标业务的执行流中,针对所述执行流中的执行帧,在所述执行帧的执行步骤完成后,根据所述执行帧中存储的所述目标业务的执行流对应的日志追踪标识,打印所述执行帧对应的日志;所述执行帧包括至少一个执行步骤;所述日志追踪标识用于标记所述执行帧对应的日志;
第一传递单元,用于在所述执行帧非所述执行流的最后一个执行帧时,将所述日志追踪标识传递至下一个执行帧,以在所述下一个执行帧中存储所述日志追踪标识;以及,删除所述执行帧中已存储的所述日志追踪标识;
查询单元,用于根据所述日志追踪标识,从日志数据中查询所述目标业务对应的目标日志。
第四方面,本说明书实施例提供了一种业务处理装置,包括:
第二打印单元,用于在目标业务的执行流中,针对所述执行流中的执行帧,在所述执行帧的执行步骤完成后,根据所述执行帧中存储的所述目标业务的执行流对应的日志追踪标识,打印所述执行帧对应的日志;所述执行帧包括至少一个执行步骤;所述日志追踪标识用于标记所述执行帧对应的日志;
第二传递单元,用于在所述执行帧非所述执行流的最后一个执行帧时,将所述日志追踪标识传递至下一个执行帧,以在所述下一个执行帧中存储所述日志追踪标识;以及,删除所述执行帧中已存储的所述日志追踪标识。
第五方面,本说明书实施例提供了一种电子设备,包括:处理器;以及,被配置为存储计算机可执行指令的存储器,所述计算机可执行指令在被执行时使所述处理器实现上述第一方面所述的信息处理方法的步骤,或者,实现上述第二方面所述的业务处理方法的步骤。
第六方面,本说明书实施例提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机可执行指令,所述计算机可执行指令在被处理器执行时实现上述第一方面所述的信息处理方法的步骤,或者,实现上述第二方面所述的业务处理方法的步骤。
通过本说明书一个或多个实施例,在目标业务的执行流中,针对执行流中的执行帧,在执行帧的执行步骤完成后,根据执行帧中存储的目标业务的执行流对应的日志追踪标识,打印执行帧对应的日志;执行帧包括至少一个执行步骤;日志追踪标识用于标记执行帧对应的日志;在执行帧非执行流的最后一个执行帧时,将日志追踪标识传递至下一个执行帧,以在下一个执行帧中存储日志追踪标识;以及,删除执行帧中已存储的日志追踪标识;根据日志追踪标识,从日志数据中查询目标业务对应的目标日志。以此,每个执行流分别对应于一个日志追踪标识,针对执行流中的执行帧,根据执行帧中存储的日志追踪标识打印日志,可以使得执行帧对应的日志中携带有日志追踪标识,有利于后续基于日志追踪标识进行该执行流的日志链路追踪。另外,若执行帧非执行流中最后一个执行帧,在执行步骤完成后,传递日志追踪标识至下一个执行帧,且删除已存储的执行帧,能够使负责执行该执行帧对应的数据处理流程的模块或组件在为目标业务提供服务完成之后,腾出位置为并行处理的其他业务提供服务,供其他业务的执行帧创建对应的追踪标识,有利于多个业务并行处理的场景下针对目标业务的日志追踪。
附图说明
为了更清楚地说明本说明书一个或多个实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图;
图1为本说明书一实施例提供的一种信息处理方法的流程示意图;
图2为本说明书一实施例提供的一种应用于搜索业务场景下的执行流示意图;
图3为本说明书一实施例提供的一种应用于搜索业务场景下的信息处理方法的流程示意图;
图4为本说明书一实施例提供的一种信息处理方法中日志追踪标识的运行原理示意图;
图5为本说明书一实施例提供的一种应用于多执行流并发场景下的信息处理方法的标识传递示意图;
图6为本说明书一实施例提供的一种信息处理方法中创建和删除日志追踪标识的时间示意图;
图7为本说明书一实施例提供的业务处理方法的流程示意图;
图8为本说明书一实施例提供的信息处理装置的结构示意图;
图9为本说明书一实施例提供的业务处理装置的结构示意图;
图10为本说明书一实施例提供的电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书一个或多个实施例中的技术方案,下面将结合本说明书一个或多个实施例中的附图,对本说明书一个或多个实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书的一部分实施例,而不是全部的实施例。基于本说明书一个或多个实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本文件的保护范围。
图1为本说明书一实施例提供的信息处理方法的流程示意图,如图1所示,该方法包括以下步骤:
步骤S102,在目标业务的执行流中,针对执行流中的执行帧,在执行帧的执行步骤完成后,根据执行帧中存储的目标业务的执行流对应的日志追踪标识,打印执行帧对应的日志;执行帧包括至少一个执行步骤;日志追踪标识用于标记执行帧对应的日志。
目标业务可以是一个业务流程包括多个执行步骤的业务。
一个目标业务的执行流可以是一次目标业务上的完整的调用流程。
每个业务可以用于实现一个预先设定的业务目标,例如,搜索业务用于获得搜索词对应的搜索结果,交易业务用于完成用户与商家之间的交易,咨询业务用于为用户提供智能坐席或人工坐席的咨询服务。
通过执行一个执行流,完成一次目标业务上的完整的调用流程,可以实现一个该执行流对应的业务目标。例如,以目标业务为搜索业务为例,用户输入商品A的搜索词,触发了一个搜索业务的执行流,在该执行流执行完成后,用户可以获得商品A的搜索结果。
下面以搜索业务场景为例,结合图2示例性说明执行流。图2为本说明书一实施例提供的一种应用于搜索业务场景下的执行流示意图。
如图2所示,在搜索业务场景下,一次执行流所包括的多个执行步骤至少与如下执行主体存在关联:客户端Client,服务器Server,日志数据库Log。
客户端可以包括处理模块和SDK(Software Development Kit,软件开发工具包),如图2,客户端的处理模块与SDK均归属于客户端设备。此处SDK可以是Client的跨平台层,由Rust语言编写,提供数据操作的底层逻辑,例如,SDK可以用于与服务器通信,可以用于本地数据缓存,等等。
在如图2所示的实施例中,一次搜索业务的执行流包括步骤S202至步骤S220,具体如下:
步骤S202,由用户输入搜索词来触发搜索。
步骤S204,客户端的处理模块响应用户搜索事件,执行搜索准备。
步骤S206,客户端的处理模块将一些关键信息作为日志,打印日志。
步骤S208,客户端的处理模块调用SDK提供的搜索接口。
步骤S210,SDK发送搜索请求至服务器。
SDK接收到客户端的处理模块的搜索请求search request,转而向服务器发送搜索请求。
步骤S212,SDK接收搜索响应。
SDK接收到服务器针对搜索请求search request的响应search response。
步骤S214,SDK将一些关键信息作为日志,打印日志。
步骤S216,SDK通过回调callback的方式,将请求结果返回给客户端的处理模块。
步骤S218,客户端的处理模块消费请求结果。
步骤S220,客户端的处理模块将一些关键信息作为日志,打印日志。
综上,步骤S202至步骤S220所构成的一次执行流描述了搜索业务的业务逻辑上的一次完整调用。
在目标业务的执行流中,针对执行流中的执行帧,在执行帧的执行步骤完成后,根据执行帧中存储的目标业务的执行流对应的日志追踪标识,打印执行帧对应的日志;执行帧包括至少一个执行步骤;日志追踪标识用于标记执行帧对应的日志。
执行帧可以包括一个执行步骤,也可以包括多个执行步骤。
对于目标业务的一个执行流,该执行流中每个执行帧对应的日志均可以通过同一个日志追踪标识进行标记。
例如,目标业务的一个执行流:目标执行流,可以包括执行帧1、执行帧2以及执行帧3。该目标执行流对应的日志追踪标识可以是Traceid。
在执行帧1的执行步骤完成后,根据执行帧1存储的目标业务的执行流对应的日志追踪标识Traceid,可以打印该执行帧1对应的日志,该执行帧1对应的日志用于反映执行帧1包括的全部或部分执行步骤的数据处理流程,且该执行帧1对应的日志携带有日志追踪标识Traceid,日志追踪标识Traceid用于标记执行帧1对应的日志。
在执行帧2的执行步骤完成后,根据执行帧2存储的目标业务的执行流对应的日志追踪标识Traceid,可以打印该执行帧2对应的日志,该执行帧2对应的日志用于反映执行帧2包括的全部或部分执行步骤的数据处理流程,且该执行帧2对应的日志携带有日志追踪标识Traceid,日志追踪标识Traceid用于标记执行帧2对应的日志。
在执行帧3的执行步骤完成后,根据执行帧3存储的目标业务的执行流对应的日志追踪标识Traceid,可以打印该执行帧3对应的日志,该执行帧3对应的日志用于反映执行帧3包括的全部或部分执行步骤的数据处理流程,且该执行帧3对应的日志携带有日志追踪标识Traceid,日志追踪标识Traceid用于标记执行帧3对应的日志。
优选地,在执行帧的执行步骤完成后,根据执行帧中存储的目标业务的执行流对应的日志追踪标识,打印执行帧对应的日志,可以是在执行帧的最后一个执行步骤完成后,根据执行帧中存储的目标业务的执行流对应的日志追踪标识,打印执行帧对应的日志。通过在执行帧的最后一个步骤完成之后打印日志,可以在后续步骤中基于日志追踪标识获取记录该执行帧对应的完整的执行过程的日志数据。
在另一个实施例中,在执行帧包括多个执行步骤的情况下,在执行帧的执行步骤完成后,根据执行帧中存储的目标业务的执行流对应的日志追踪标识,打印执行帧对应的日志,也可以是在执行帧的最后一个执行步骤之外的其他执行步骤完成之后,根据执行帧中存储的目标业务的执行流对应的日志追踪标识,打印执行帧对应的日志。执行顺序位于该其他执行步骤之后的一个或多个执行步骤可以归属于预先配置的非关键步骤集合,则通过在该其他执行步骤完成之后打印日志,省略个别重要性较低的执行步骤对应的日志数据,可以节省资源。
在一个执行帧中,打印日志的次数可以是一次,也可以是多个。若打印日志的次数为一次,则该打印得到的日志可以反映该执行帧中的每个执行步骤对应的执行过程,或者,可以反映该执行帧中部分重要性较高的执行步骤对应的执行过程。
若打印日志的次数为多次,则每次日志打印可以对应于该执行帧中的一个或多个执行步骤。
本说明书中列举的各个实施例中,以在执行帧中最后一个执行步骤之后打印日志为例,示例性说明执行帧的处理流程。打印日志的时机也可以根据需求灵活设置。
在一种实施方式中,信息处理方法还包括:根据目标业务产生的代码执行跳跃,对目标业务的执行流进行执行帧划分。
目标业务可能会产生代码执行跳跃,也可能不产生代码执行跳跃。
代码执行跳跃可以是由异步调用引起的。异步调用是一个可以无需等待被调用函数的返回值就让操作继续进行的方法。
操作系统把CPU处理时间划分成许多短暂时间片,在时间T1执行一个线程的指令,到时间T2又执行下一线程的指令,各线程轮流执行,使得所有线程可以近似视为在并肩前进。这样,编程时可以创建多个线程,在同一期间执行,各线程可以“并行”完成不同的任务。在单线程方式下,计算机是一台严格意义上的冯·诺依曼式机器,一段代码调用另一段代码时,只能采用同步调用,必须等待这段代码执行完返回结果后,调用方才能继续往下执行。有了多线程的支持,可以采用异步调用,调用方和被调方可以属于两个不同的线程,调用方启动被调方线程后,不等对方返回结果就继续执行后续代码。被调方执行完毕后,通过某种手段通知调用方:结果已经出来,请酌情处理。
在执行流的执行过程中,若存在异步调用,会导致代码执行上的微观层面的不连续,即产生代码执行跳跃。
每个执行帧可以包括一个执行步骤,也可以包括多个执行步骤。
根据目标业务产生的代码执行跳跃,对目标业务的执行流进行执行帧划分,可以使得划分得到的各个执行帧内部不受代码执行跳跃影响。
根据目标业务产生的代码执行跳跃,对目标业务的执行流进行执行帧划分,可以是在执行流执行之前,在执行流所包括的多个执行步骤中确定发生代码执行跳跃的执行步骤,将该发生代码执行跳跃的执行步骤确定为执行跳跃点,进而,根据该执行跳跃点,对该多个执行步骤进行划分,得到多个执行帧,每个执行帧包括至少一个执行步骤。
在一个实施例中,执行帧可以包括代码执行跳跃且代码执行跳跃发生在执行帧的尾部。例如,执行帧包括多个执行步骤,该多个执行步骤中的最后一个执行步骤发生代码执行跳跃。
具体实施时,可以将每个执行跳跃点对应的执行步骤确定为该执行跳跃点对应的执行帧的最后一个执行步骤,将每个执行跳跃点对应的执行步骤的下一个执行步骤确定为该该执行跳跃点对应的执行帧的下一个执行帧的首个执行步骤。
例如,执行流包括执行步骤1、执行步骤2、执行步骤3、执行步骤4、执行步骤5以及执行步骤6。其中,执行步骤3的执行过程中存在异步调用,会产生代码执行跳跃,可以将执行步骤3确定为执行跳跃点。进而,可以基于执行跳跃点将执行流划分为两个执行帧:执行帧1和执行帧2。其中,执行帧1包括执行步骤1、执行步骤2以及执行步骤3,执行帧2包括执行步骤4、执行步骤5以及执行步骤6。
在另一个实施例中,执行帧可以是不包括代码执行跳跃的最大的执行流区块。
具体实施时,还可以将每个执行跳跃点对应的执行步骤的上一个执行步骤确定为该执行跳跃点对应的执行帧的最后一个执行步骤,将每个执行跳跃点对应的执行步骤的下一个执行步骤确定为该该执行跳跃点对应的执行帧的下一个执行帧的首个执行步骤。该情况下划分得到的每个执行帧均不包括执行跳跃点。
例如,执行流包括执行步骤1、执行步骤2、执行步骤3、执行步骤4、执行步骤5以及执行步骤6。其中,执行步骤3的执行过程中存在异步调用,会产生代码执行跳跃,可以将执行步骤3确定为执行跳跃点。进而,可以基于执行跳跃点将执行流划分为两个执行帧:执行帧1和执行帧2。其中,执行帧1包括执行步骤1以及执行步骤2,执行帧2包括执行步骤4、执行步骤5以及执行步骤6。
另外,根据目标业务产生的代码执行跳跃,对目标业务的执行流进行执行帧划分,还可以是在执行流执行过程中,在确定产生代码执行跳跃时,进行执行帧的划分。
在一种实施方式中,根据目标业务产生的代码执行跳跃,对目标业务的执行流进行执行帧划分,包括:在确定目标业务执行过程中产生了代码执行跳跃时,进行执行帧的划分;其中,进行执行帧划分后,对于产生代码执行跳跃时相邻的两个执行帧,产生代码执行跳跃时的前一个执行步骤作为前一执行帧的最后一个执行步骤,产生代码执行跳跃时的后一个执行步骤作为后一执行帧的首个执行步骤。
在确定目标业务执行过程中产生了代码执行跳跃时,进行执行帧的划分,可以是在一个目标业务的执行流的执行过程中,若检测到即将产生代码执行跳跃,则进行执行帧的划分,将产生代码执行跳跃时的前一个执行步骤作为前一执行帧的最后一个执行步骤,将产生代码执行跳跃时的后一个执行步骤作为后一执行帧的首个执行步骤。
在一个实施例中,产生代码执行跳跃时的前一个执行步骤可以是产生代码执行跳跃的执行步骤,产生代码执行跳跃时的后一个执行步骤可以是产生代码执行跳跃的执行步骤的后一个执行步骤。
例如,执行流包括执行步骤1、执行步骤2、执行步骤3、执行步骤4、执行步骤5以及执行步骤6。其中,在执行步骤3的执行过程中,检测到即将产生代码执行跳跃,则将产生代码执行跳跃时的前一个执行步骤,即执行步骤3,作为前一执行帧的最后一个执行步骤,将产生代码执行跳跃时的后一个执行步骤,即执行步骤4作为后一执行帧的首个执行步骤。继续执行步骤4的执行,直至执行步骤6执行完成,没有再产生代码执行跳跃。以此,可以将执行流划分为执行帧1和执行帧2。其中,执行帧1包括执行步骤1、执行步骤2以及执行步骤3,执行帧2包括执行步骤4、执行步骤5以及执行步骤6。
在另一个实施例中,产生代码执行跳跃时的前一个执行步骤可以是产生代码执行跳跃的执行步骤的前一个执行步骤,产生代码执行跳跃时的后一个执行步骤可以是产生代码执行跳跃的执行步骤。
在又一个实施例中,产生代码执行跳跃时的前一个执行步骤可以是产生代码执行跳跃的执行步骤的前一个执行步骤,产生代码执行跳跃时的后一个执行步骤可以是产生代码执行跳跃的执行步骤的后一个执行步骤。
目标业务的代码执行跳跃是由异步调用导致的代码执行在微观层面上的不连续,因此,在异步场景下,根据目标业务产生的代码执行跳跃,对目标业务的执行流进行划分,能够使得在每个执行帧内,日志追踪标识不受异步调用影响。
在一种实施方式中,在确定目标业务执行过程中产生了代码执行跳跃时,进行执行帧的划分之前,还包括:确定目标业务的执行流中的触发步骤;触发步骤用于触发执行目标业务;将触发步骤的下一个执行步骤确定为目标业务的执行流中首个执行帧的首个执行步骤;在确定目标业务执行过程中产生了代码执行跳跃时,进行执行帧的划分之后,信息处理方法还包括:将目标业务的执行流中最后一个执行步骤确定为目标业务的执行流中最后一个执行帧的最后一个执行步骤;执行流中的最后一个执行步骤为预定的执行流终点的执行步骤。
确定目标业务的执行流中的触发步骤;触发步骤用于触发执行目标业务。触发步骤可以是目标业务的执行流中的首个执行步骤。可以将触发步骤确定为执行流的执行原点。执行原点为触发执行流开始的点,例如,点击回调步骤,SDK/Server push通知步骤。
在一个实施例中,可以将触发步骤的下一个执行步骤确定为目标业务的执行流中首个执行帧的首个执行步骤。
在另一个实施例中,也可以将触发步骤确定为目标业务的执行流中首个执行帧的首个执行步骤。
执行流中的最后一个执行步骤为预定的执行流终点的执行步骤,示例性地,执行流终点的执行步骤可以是数据上屏步骤。
在进行执行帧的划分之后,可以将执行流中的最后一个执行步骤确定为目标业务的执行流中最后一个执行帧的最后一个执行步骤。
在一种实施方式中,在确定目标业务执行过程中产生了代码执行跳跃时,进行执行帧的划分,包括:在确定目标业务执行过程中产生了跨进程调用时,进行执行帧的划分;或者,在确定目标业务执行过程中产生了线程切换时,进行执行帧的划分;或者,在确定目标业务执行过程中产生了协程切换时,进行执行帧的划分;或者,在确定目标业务执行过程中产生了消息入队时,进行执行帧的划分;或者,在确定目标业务执行过程中产生了执行设备切换时,进行执行帧的划分。
在目标业务执行过程中,可能会产生跨进程调用,具体地,在Android系统中通常使用AIDL、iOS中通常使用URLcheme的方式进行跨进程调用。若检测到即将产生跨进程调用,可以进行执行帧的划分。
进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。
在多线程场景下,在目标业务执行过程中,可能会发生线程的切换。若检测到即将发生线程的切换,可以进行执行帧的划分。
线程(thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。
线程是独立调度和分派的基本单位。线程可以为操作系统内核调度的内核线程,如Win32线程;由用户进程自行调度的用户线程,如Linux平台的POSIX Thread;或者由内核与用户进程,如Windows 7的线程,进行混合调度。
同一进程中的多条线程将共享该进程中的全部系统资源,如虚拟地址空间,文件描述符和信号处理等等。但同一进程中的多个线程有各自的调用栈(call stack),自己的寄存器环境(register context),自己的线程本地存储(thread-local storage)。
一个进程可以有很多线程,每条线程并行执行不同的任务。
在目标业务执行过程中,可能会发生协程的切换。若检测到即将发生协程的切换,可以进行执行帧的划分。
协程(coroutine)是一种程序组件。一个程序可以包含多个协程,协程相对独立,有协程对应的上下文,在当前协程切换到其他协程的情况下该切换由当前协程控制。
在目标业务执行过程中,可能会产生消息入队。若检测到即将发生消息入队,可以进行执行帧的划分。
在目标业务执行过程中,可能会产生执行设备切换,例如,执行主体由客户端切换为服务器。若检测到即将产生执行设备切换,可以进行执行帧的划分。
步骤S104,在执行帧非执行流的最后一个执行帧时,将日志追踪标识传递至下一个执行帧,以在下一个执行帧中存储日志追踪标识;以及,删除执行帧中已存储的日志追踪标识。
在执行帧不是执行流的最后一个执行帧的情况下,在执行帧的执行步骤完成之后,可以将日志追踪标识传递至该执行帧的下一个执行帧,以在下一个执行帧中存储日志追踪标识,以及,删除该执行帧中已存储的日志追踪标识。
步骤S104中,将日志追踪标识传递至该执行帧的下一个执行帧的时机,可以是在执行帧中最后一次进行日志打印之后,也可以是该执行帧的最后一个执行步骤执行之后,还可以是其他预设的标识传递时机。
需要强调的是,在本说明书提供的各个信息处理方法实施例中,在每个执行帧中,日志打印操作与日志追踪标识的传递操作的执行顺序可以是先执行日志打印操作,再执行传递操作,还可以是先执行传递操作,再执行日志打印操作,也可以将二者交叉执行,即,先执行日志打印操作,再执行传递操作,接着执行日志打印操作。另外,在每个执行帧中,日志追踪标识的删除操作的执行顺序可以位于日志打印操作之后,且该删除操作的执行顺序位于传递操作之后。
在执行帧为执行流的最后一个执行帧的情况下,可以在执行帧的执行步骤完成之后,删除该执行帧中已存储的日志追踪标识。该情况下,删除该执行帧中已存储的日志追踪标识的时机可以是执行帧中最后一次进行日志打印之后,也可以是该执行帧的最后一个执行步骤执行之后,还可以是其他预设的标识删除时机。
在一种实施方式中,信息处理方法还包括:对目标业务的执行流进行执行帧划分之后,还包括:针对执行流中的执行帧,创建目标业务的执行流对应的日志追踪标识,将日志追踪标识存储于执行帧对应的代码执行单元中;删除执行帧中已存储的日志追踪标识,包括:删除执行帧对应的代码执行单元中已存储的日志追踪标识。
针对目标业务,一个执行流对应于一个日志追踪标识Traceid。日志追踪标识可以采用随机算法生成。Java可以提供Random、ThreadLocalRandom和SecureRandom三种随机数生成类。示例性地,为了避免随机数可预测,并且降低多线程间的锁开销,可以采用ThreadLocalRandom和SecureRandom两种方式生成日志追踪标识。
对于每个执行流,可以在执行流的执行原点生成日志追踪标识,也可以在执行流的第一个执行帧的首个步骤执行之前创建日志追踪标识。
需要强调的是,对于一个执行流,采用随机算法生成日志追踪标识仅发生一次,而不是每个执行帧分别生成一个日志追踪标识。进而,针对每个执行帧,创建目标业务的执行流对应的日志追踪标识,指的不是采用随机算法生成日志追踪标识,而是,将生成的日志追踪标识设置为该执行帧的对应的追踪标识。
由于执行帧是根据目标业务产生的代码执行跳跃划分得到的,因此,每个执行帧对应于一个代码执行单元,且相邻两个执行帧的代码执行单元不同。
代码执行单元可以是线程,也可以是进程,还可以是协程,等等。
例如,在多线程场景下,对于相邻的执行帧1与执行帧2,执行帧1的代码执行单元为线程1,执行帧2的代码执行单元为线程2,在执行帧1与执行帧2之间发生了线程切换,由线程1切换至线程2。
将日志追踪标识存储于执行帧对应的代码执行单元中,可以是,将日志追踪标识以TreadLocal线程变量的方式全局存储于执行帧对应的代码执行单元。且对于不同的代码执行单元,每个代码执行单元中存储的日志追踪标识是相互隔离的,每个代码执行单元均无法跨代码执行单元使用其他代码执行单元存储的日志追踪标识。以此,可以保证,在每个执行帧的执行过程中,可以从该执行帧对应的代码的任意位置获取日志追踪标识,还可以避免在多线程场景下日志追踪标识的竞争和覆盖。
以代码执行单元为线程为例,每个线程对应于一个追踪标识。针对每个执行帧,创建目标业务的执行流对应的日志追踪标识,将日志追踪标识存储于执行帧对应的线程中。
例如,目标业务的执行流包括执行帧1、执行帧2以及执行帧3,执行帧1的代码执行单元为线程1,执行帧2的代码执行单元为线程2,执行帧3的代码执行单元为线程1。线程1在执行帧1的执行过程中,创建日志追踪标识ID1,并将该ID1设置为线程1对应的追踪标识并存储于线程1对应的追踪标识的预设存储区域;线程2在执行帧2的执行过程中,将该ID1设置为线程2对应的追踪标识并存储于线程2对应的追踪标识的预设存储区域;线程3在执行帧3的执行过程中,将该ID1设置为线程3对应的追踪标识并存储于线程3对应的追踪标识的预设存储区域。
在一种实施方式中,执行帧为目标业务的执行流中首个执行帧;在执行帧的首个执行步骤执行之前,将目标业务的执行流对应的日志追踪标识设置为执行帧对应的追踪标识,包括:在首个执行帧的首个步骤执行之前,基于随机算法生成目标业务的执行流对应的日志追踪标识;将日志追踪标识设置为首个执行帧对应的追踪标识。
目标业务的执行流可以包括多个执行帧。对于该多个执行帧中的首个执行帧,可以在首个执行帧的首个步骤执行之前,基于随机算法生成目标业务的执行流对应的日志追踪标识;将日志追踪标识设置为首个执行帧对应的追踪标识。
在一种实施方式中,执行帧为目标业务的执行流中首个执行帧之外的其他执行帧;在执行帧的首个执行步骤执行之前,将目标业务的执行流对应的日志追踪标识设置为执行帧对应的追踪标识,包括:在其他执行帧的首个步骤执行之前,将其他执行帧的上一个执行帧传递的日志追踪标识设置为其他执行帧对应的追踪标识。
目标业务的执行流可以包括多个执行帧。对于该多个执行帧中的首个执行帧之外的其他执行帧,可以在该其他执行帧的首个步骤执行之前,将其他执行帧的上一个执行帧传递的日志追踪标识设置为其他执行帧对应的追踪标识。
需要强调的是,在图1实施例所提供的信息处理方法中,并不是依次执行步骤S102、步骤S104以及步骤S106,而是先多次交替执行步骤S102和步骤S104,最后,执行步骤S106。
在另一实施例中,也可以是,先执行步骤“根据目标业务产生的代码执行跳跃,对目标业务的执行流进行执行帧划分”,再多次交替执行步骤S102和步骤S104,最后执行步骤S106。
在又一实施例中,还可以是,在执行步骤“根据目标业务产生的代码执行跳跃,对目标业务的执行流进行执行帧划分”的过程中,多次交替执行步骤S102和步骤S104,最后执行步骤S106。
在执行流的执行过程中,每次产生新的执行帧,都可以按照如上的步骤S102和S104的方式,执行相应处理,以便于在每个执行帧的执行过程中打印该执行帧对应的日志,该日志携带有执行流对应的日志追踪标识。
在目标业务的执行流中,根据目标业务产生的代码执行跳跃,对目标业务的执行流进行执行帧划分,可以确定每个执行帧的首个执行步骤和最后一个执行步骤。
图1仅仅示出了信息处理方法实施例的一部分处理环节,执行流的具体执行过程可以参照下述示例:
通过执行帧划分可以确定首个执行帧的首个执行步骤,针对目标业务的执行流中的首个执行帧,创建目标业务的执行流对应的日志追踪标识,将日志追踪标识存储于该首个执行帧对应的代码执行单元中;通过执行帧划分可以确定首个执行帧的最后一个步骤,在该首个执行帧的最后一个执行步骤完成后,将日志追踪标识传递至第二个执行帧对应的代码执行单元并删除已存储的日志追踪标识。
通过执行帧划分可以确定第二个执行帧的首个步骤,针对该第二个执行帧,创建目标业务的执行流对应的日志追踪标识,将日志追踪标识存储于该第二个执行帧对应的代码执行单元中;通过执行帧划分可以确定第二个执行帧的最后一个步骤,在该第二个执行帧的最后一个执行步骤完成后,将日志追踪标识传递至第三个执行帧对应的代码执行单元并删除已存储的日志追踪标识。
通过执行帧划分可以确定该第三个执行帧的首个步骤,针对该第三个执行帧,创建目标业务的执行流对应的日志追踪标识,将日志追踪标识存储于该第二个执行帧对应的代码执行单元中;通过执行帧划分可以确定第三个执行帧的最后一个步骤,在该第三个执行帧的最后一个执行步骤完成后,将日志追踪标识传递至第四个执行帧对应的代码执行单元并删除已存储的日志追踪标识。
通过执行帧划分可以确定最后一个执行帧的首个步骤,针对该最后一个执行帧,创建目标业务的执行流对应的日志追踪标识,将日志追踪标识存储于该最后一个执行帧对应的代码执行单元中;通过执行帧划分可以确定该最后一个执行帧的最后一个步骤,在该最后一个执行帧的最后一个执行步骤完成后,删除已存储的日志追踪标识。
示例性地,将日志追踪标识传递至下一个执行帧对应的代码执行单元,可以包括如下几种情况:
(a1)跨进程调用
日志追踪标识可以定义在执行跨进程调用的接口中,作为接口参数传递。例如,进程通信的发起方所在进程为ProcessA,所在的线程为ThreadA,进程通信的接收方所在进程为ProcessB,所在的线程为ThreadB,则在产生跨进程调用的情况下,将日志追踪标识传递至下一个执行帧对应的代码执行单元可以包括如下步骤:
步骤a101:发起方在进程ProcessA中,获取当前线程ThreadA的Traceid,将其称为TraceidA;
步骤a102:发起方调用跨进程接口,并传递TraceidA;
步骤a103:接收方在进程ProcessB中响应进程ProcessA发起的跨进程调用,接收参数TraceidA;
步骤a104:接收方获取当前线程ThreadB的Traceid,将其称为TraceidB;
步骤a105:接收方设置TraceidA为当前线程ThreadB的Traceid;
步骤a106:接收方执行业务逻辑;
步骤a107:接收方删除当前线程ThreadB的Traceid:TraceidA;
步骤a108:接收方设置TraceidB为当前线程ThreadB的Traceid。
(a2)线程切换
例如,切换前后的线程分别为ThreadA和ThreadB,则在发生线程切换的情况下,将日志追踪标识传递至下一个执行帧对应的代码执行单元可以包括如下步骤:
步骤a201:切换前获取当前线程ThreadA的Traceid,将其称为TraceidA;
步骤a202:切换后获取当前线程ThreadB的Traceid,将其称为TraceidB;
步骤a203:设置TraceidA为当前线程ThreadB的Traceid;
步骤a204:在当前线程ThreadB中执行业务逻辑;
步骤a205:删除当前线程ThreadB的Traceid:TraceidA;
步骤a206:设置TraceidB为当前线程ThreadB的Traceid。
(a3)协程切换
例如,切换前后的协程分别为:CoroutineA和CoroutineB,且CorountineA所在的线程为ThreadA,CoroutineB所在的线程为ThreadB。则在发生协程切换的情况下,将日志追踪标识传递至下一个执行帧对应的代码执行单元可以包括如下步骤:
步骤a301:切换前获取当前协程CoroutineA所在线程ThreadA的Traceid,将其称为TraceidA;
步骤a302:切换后获取当前协程CoroutineB所在线程ThreadB的Traceid,将其称为TraceidB;
步骤a303:设置TraceidA为当前协程CoroutineB所在线程ThreadB的Traceid;
步骤a304:在当前协程CoroutineB中执行业务逻辑;
步骤a305:删除当前协程CoroutineB所在线程ThreadB的Traceid:TraceidA;
步骤a306:设置TraceidB为当前协程CoroutineB所在线程ThreadB的Traceid。
(a4)消息入队
入队前对消息封装,在消息前后设置和删除Traceid。例如,调用入队方法的线程为ThreadA,执行消息的方法为ThreadB,则在发生协程切换的情况下,将日志追踪标识传递至下一个执行帧对应的代码执行单元可以包括如下步骤:
步骤a401:入队前获取当前线程ThreadA的Traceid,将其称为TraceidA;
步骤a402:在消息执行前,获取消息执行线程ThreadB的Traceid,将其称为TraceidB;
步骤a403:设置TraceidA为消息执行线程ThreadB的Traceid;
步骤a404:在消息执行线程ThreadB中执行业务逻辑;
步骤a405:在消息执行之后,删除消息执行线程ThreadB的Traceid:TraceidA;
步骤a406:设置TraceidB为消息执行线程ThreadB的Traceid。
在一种实施方式中,针对执行流中的执行帧,创建目标业务的执行流对应的日志追踪标识,包括:在执行帧的首个执行步骤执行之前,将目标业务的执行流对应的日志追踪标识设置为执行帧对应的追踪标识;将日志追踪标识传递至下一个执行帧,包括:在执行帧的最后一个执行步骤完成后,通过跨代码执行单元接口,将日志追踪标识传递至执行帧的下一个执行帧对应的代码执行单元。
通过在每个执行帧的首个执行步骤执行之前,将目标业务的执行流对应的日志追踪标识设置为每个执行帧对应的追踪标识,可以使得在每个执行帧的执行过程中打印的日志均携带有该执行流对应的日志追踪标识,有利于后续基于日志追踪标识搜索日志数据。
在执行帧的最后一个执行步骤完成后,通过跨代码执行单元接口,将日志追踪标识传递至执行帧的下一个执行帧对应的代码执行单元,可以是,将日志追踪标识配置为跨代码执行单元接口的接口参数,从而利用该跨代码执行单元接口传递日志追踪标识,以便于在异步场景下也能够利用日志追踪标识追踪目标业务的完整的日志数据。
另外,若目标业务的执行流并未发生过代码执行跳跃,使得执行流仅包括一个执行帧,该情况下,日志追踪标识在单一的代码执行单元的全局变量中,且执行流的执行一直连续,不会发生日志追踪标识在不同的代码执行单元之间传递。
通过在依次执行的各个执行帧之间传递日志追踪标识,可以实现异步场景下的日志追踪,使得在目标业务涉及异步调用的情况下也可以基于日志追踪标识获得目标业务对应的完整的日志数据。
步骤S106,根据日志追踪标识,从日志数据中查询目标业务对应的目标日志。
根据一个目标业务的执行流对应的日志追踪标识,可以从全量日志数据中搜索得到该执行流对应的目标日志,目标日志由该执行流所包括的至少一个执行帧中每个执行帧对应的日志共同构成。每个执行帧对应的日志中可以携带有日志生成时间,进而,可以根据日志生成时间,生成执行流对应的链路日志数据。
在一种实施方式中,信息处理方法应用于客户端;根据日志追踪标识,从日志数据中查询目标业务对应的目标日志,包括:根据日志追踪标识,从日志数据中查询目标业务的执行流中执行帧对应的日志;执行帧对应的日志包括服务端关联日志;服务端关联日志包括服务端标识;服务端标识为与客户端交互的服务端执行目标业务的关联步骤之后生成的服务端日志中携带的标识;根据服务端标识,从服务端日志数据中查询目标业务对应的服务端关联日志;将执行帧对应的日志和服务端关联日志确定为目标业务对应的目标日志。
根据日志追踪标识,从日志数据中查询目标业务的执行流中每个执行帧对应的日志。执行流可以包括多个执行帧,该多个执行帧中可以包括一个或多个服务端关联日志,服务端关联日志可以包括服务端标识。该服务端标识为与客户端交互的服务端执行目标业务的关联步骤之后生成的服务端日志中携带的标识。
根据服务端标识,从服务端日志数据中查询目标业务对应的服务端关联日志。服务端关联日志可以是服务端与客户端进行交互时所产生的日志数据。将每个执行帧对应的日志和服务端关联日志确定为目标业务对应的目标日志,可以是基于每个执行帧对应的日志和服务端关联日志,构建目标业务对应的链路日志数据。
例如,在客户端与服务端交互的过程中,服务端数据可以以响应Response的形式返回,Response的头部信息header或者身体信息body中可以携带服务器标识LogId,LogId用于服务端日志追踪,客户端可以将LogId作为日志打印,然后通过日志文本解析,将Traceid和LogId映射,即可实现一个目标业务的执行流的全链路日志追踪。
综上,在如图1所示的实施例中的信息处理方法中,在目标业务的执行流中,针对执行流中的执行帧,在执行帧的执行步骤完成后,根据执行帧中存储的目标业务的执行流对应的日志追踪标识,打印执行帧对应的日志;执行帧包括至少一个执行步骤;日志追踪标识用于标记执行帧对应的日志;在执行帧非执行流的最后一个执行帧时,将日志追踪标识传递至下一个执行帧,以在下一个执行帧中存储日志追踪标识;以及,删除执行帧中已存储的日志追踪标识;根据日志追踪标识,从日志数据中查询目标业务对应的目标日志。以此,每个执行流分别对应于一个日志追踪标识,针对执行流中的执行帧,根据执行帧中存储的日志追踪标识打印日志,可以使得执行帧对应的日志中携带有日志追踪标识,有利于后续基于日志追踪标识进行该执行流的日志链路追踪。另外,若执行帧非执行流中最后一个执行帧,在执行步骤完成后,传递日志追踪标识至下一个执行帧,且删除已存储的执行帧,能够使负责执行该执行帧对应的数据处理流程的模块或组件在为目标业务提供服务完成之后,腾出位置为并行处理的其他业务提供服务,供其他业务的执行帧创建对应的追踪标识,有利于多个业务并行处理的场景下针对目标业务的日志追踪。
出于相同的技术构思,本说明书一实施例提供了一种应用于搜索场景下的信息处理方法。图3为本说明书一实施例提供的一种应用于搜索业务场景下的信息处理方法的流程示意图。
图3实施例所示的搜索业务的执行流可以参照上述的图2实施例。
如图3所示,在搜索业务场景下,一次执行流所包括的多个执行步骤至少与如下执行主体存在关联:客户端Client,服务器Server,日志数据库Log。
客户端可以包括处理模块和SDK(Software Development Kit,软件开发工具包),如图3,客户端的处理模块与SDK均归属于客户端设备。SDK可以是Client的跨平台层,由Rust语言编写,提供数据操作的底层逻辑,例如,SDK可以用于与服务器通信,可以用于本地数据缓存,等等。
步骤S302,由用户输入搜索词来触发搜索。
步骤S304,客户端的处理模块生成并存储Traceid。
步骤S306,客户端的处理模块响应用户搜索事件,执行搜索准备。
步骤S308,客户端的处理模块将一些关键信息作为日志,携带Traceid打印日志。
步骤S310,客户端的处理模块调用SDK提供的搜索接口。
步骤S312,SDK接收到客户端的处理模块的搜索请求search request,转而向服务器发送搜索请求。
步骤S314,客户端的处理模块删除Traceid。
步骤S316,SDK接收搜索响应。
SDK接收到服务器针对搜索请求search request的响应search response。
步骤S318,SDK恢复步骤S314中删除的Traceid。
步骤S320,SDK将一些关键信息作为日志,携带Traceid打印日志。
步骤S322,SDK通过回调callback的方式,将请求结果返回给客户端的处理模块。
步骤S324,客户端的处理模块消费请求结果。
步骤S326,客户端的处理模块将一些关键信息作为日志打印,携带Traceid打印日志。
步骤S328,SDK删除Traceid。
其中,步骤S302触发的点击回调为一个搜索业务的执行流的执行原点,步骤S326为执行终点。
步骤S312调用服务端接口和步骤S316服务端接口返回,发生了异步调用,因此会产生代码执行跳跃,根据执行原点、执行跳跃点和执行终点,可以将搜索业务的执行流划分为两个执行帧,其中,执行帧1包括步骤S304至步骤S314,执行帧2包括步骤S318至步骤S328。每个执行帧的前后都会对当前线程做Traceid的创建和删除。
出于与前述方法实施例相同的技术构思,本说明书一实施例示出了信息处理方法中日志追踪标识的运行原理。图4为本说明书一实施例提供的一种信息处理方法中日志追踪标识的运行原理示意图。
如图4所示,用户发起调用,由方法A(即图4中方法401)响应,方法401通过Traceid工具类(即TraceidUtil)生成并设置Traceid到线程A对应的ThreadLocal线程变量403中。方法401通过日志对象写入日志,写入过程中,Traceid工具类通过线程变量403中存储的Traceid,为日志对象提供Traceid,使得携带有Traceid的日志A(即图4中日志406)一并存储到日志文件中。
其中,ThreadLocal线程变量,用于表征ThreadLocal中填充的变量属于当前线程,该变量对其他线程而言是隔离的,也就是说该变量是当前线程独有的变量。ThreadLocal为变量在每个线程中都创建了一个副本,那么每个线程可以访问自己内部的副本变量。
方法可以是目标业务的执行流对应的代码中的一段函数,一个方法可以对应于一个执行步骤。
方法B(即图4中方法402)的日志写入同方法401。
方法402异步调用线程B中的方法C(即图4中方法403),并传递Traceid。
方法403通过Traceid工具类设置Traceid到线程B对应的线程变量405中。
方法403的日志写入同方法401。
通过上述方式,可以在日志文件中写入方法401对应的日志406,方法402对应的日志407以及方法403对应的日志408。
出于与前述方法实施例相同的技术构思,本说明书一实施例示出了多执行流并发场景下标识传递过程。图5为本说明书一实施例提供的一种应用于多执行流并发场景下的信息处理方法的标识传递示意图。
如图5所示,两个执行流:执行流A和执行流B并行处理。根据执行原点、执行跳跃点和执行终点,将两条执行流划分成多个执行帧。执行流A的执行帧有执行帧A1、执行帧A2和执行帧A3,执行流B的执行帧有执行帧B1、执行帧B2和执行帧B3。两条执行流在两个线程:线程A和线程B中交织执行。在每个执行帧前后设置清除Traceid,Traceid沿着执行流在多个执行帧之间跨线程传递。
具体地,如图5所示,在执行流A中,执行帧A1的代码执行单元为线程A,在执行帧A1的首个执行步骤执行之前,生成并设置TraceidA,将TraceidA存储于线程A,在执行帧A1的最后一个执行步骤执行之后,将TraceidA传递至线程B,并删除线程A中存储的TraceidA。
执行帧A2的代码执行单元为线程B,在执行帧A2的首个执行步骤执行之前,执行帧A1将TraceidA传递至线程B,设置TraceidA,将TraceidA存储于线程B,在执行帧A2的最后一个执行步骤执行之后,将TraceidA传递至线程A,并删除线程B中存储的TraceidA。
执行帧A3的代码执行单元为线程A,在执行帧A3的首个执行步骤执行之前,执行帧A2将TraceidA传递至线程A,设置TraceidA,将TraceidA存储于线程A,在执行帧A3的最后一个执行步骤执行之后,删除线程A中存储的TraceidA。
如图5所示,在执行流B中,执行帧B1的代码执行单元为线程B,在执行帧B1的首个执行步骤执行之前,生成并设置TraceidB,将TraceidB存储于线程B,在执行帧B1的最后一个执行步骤执行之后,将TraceidB传递至线程A,并删除线程B中存储的TraceidB。
执行帧B2的代码执行单元为线程A,在执行帧B2的首个执行步骤执行之前,执行帧B1将TraceidB传递至线程A,设置TraceidB,将TraceidB存储于线程A,在执行帧B2的最后一个执行步骤执行之后,将TraceidB传递至线程B,并删除线程A中存储的TraceidB。
执行帧B3的代码执行单元为线程B,在执行帧B3的首个执行步骤执行之前,执行帧B2将TraceidB传递至线程B,设置TraceidB,将TraceidB存储于线程B,在执行帧B3的最后一个执行步骤执行之后,删除线程B中存储的TraceidB。
通过在执行当前执行帧的最后一个执行步骤之后,删除代码执行单元中存储的该当前执行帧对应的日志追踪标识,可以为并行处理的其他执行流腾出位置,以便于其他执行流设置日志追踪标识,进而有利于在复杂的多执行流并发的场景下获取单个执行流对应的日志数据。
图6为本说明书一实施例提供的一种信息处理方法中创建和删除日志追踪标识的时间示意图。
Taceid始终在执行帧的首个方法的方法体首尾设置和清除。如6所示,横轴表示方法执行的时间,纵轴表示方法执行的顺序,其中方法A、B在线程A中执行,方法C、D在线程B中执行,执行顺序为A->B->C->D。方法A、B组成第一个执行帧,方法C、D组成第二个执行帧。
在方法A的方法体开头设置Traceid,,在方法A的方法体结尾处删除Traceid。由于方法B的生命周期小于方法A的生命周期,因此Traceid在整个第一个执行帧中始终有效。
同理在方法C的方法体开头设置Traceid,,在方法C的方法体结尾处删除Traceid。由于方法D的生命周期小于方法C的生命周期,因此Traceid在整个第二个执行帧中始终有效。
进一步地,出于与图1实施例相同的技术构思,本说明书一实施例还提供了一种业务处理方法,图7为本说明书一实施例提供的业务处理方法的流程示意图,如图7所示,该流程包括:
步骤S702,在目标业务的执行流中,针对执行流中的执行帧,在执行帧的执行步骤完成后,根据执行帧中存储的目标业务的执行流对应的日志追踪标识,打印执行帧对应的日志;执行帧包括至少一个执行步骤;日志追踪标识用于标记执行帧对应的日志。
可选地,业务处理方法还包括:根据目标业务产生的代码执行跳跃,对目标业务的执行流进行执行帧划分。
步骤S704,在执行帧非执行流的最后一个执行帧时,将日志追踪标识传递至下一个执行帧,以在下一个执行帧中存储日志追踪标识;以及,删除执行帧中已存储的日志追踪标识。
由于技术构思相同,本业务处理方法实施例中描述得较为简单,可参照图1实施例中的对应说明部分。
本说明书一实施例还提供了一种信息处理装置,图8为本说明书一实施例提供的信息处理装置的结构示意图,如图8所示,该装置包括:
第一打印单元801,用于在目标业务的执行流中,针对执行流中的执行帧,在执行帧的执行步骤完成后,根据执行帧中存储的目标业务的执行流对应的日志追踪标识,打印执行帧对应的日志;执行帧包括至少一个执行步骤;日志追踪标识用于标记执行帧对应的日志;
第一传递单元802,用于在执行帧非执行流的最后一个执行帧时,将日志追踪标识传递至下一个执行帧,以在下一个执行帧中存储日志追踪标识;以及,删除执行帧中已存储的日志追踪标识;
查询单元803,用于根据日志追踪标识,从日志数据中查询目标业务对应的目标日志。
本实施例中的信息处理装置能够实现前述的信息处理方法的各个过程,并达到相同的效果和功能,这里不再重复。
本说明书一实施例还提供了一种业务处理装置,图9为本说明书一实施例提供的业务处理装置的结构示意图,如图9所示,该装置包括:
第二打印单元901,用于在目标业务的执行流中,针对执行流中的执行帧,在执行帧的执行步骤完成后,根据执行帧中存储的目标业务的执行流对应的日志追踪标识,打印执行帧对应的日志;执行帧包括至少一个执行步骤;日志追踪标识用于标记执行帧对应的日志;
第二传递单元902,用于在执行帧非执行流的最后一个执行帧时,将日志追踪标识传递至下一个执行帧,以在下一个执行帧中存储日志追踪标识;以及,删除执行帧中已存储的日志追踪标识。
本实施例中的业务处理装置能够实现前述的业务处理方法的各个过程,并达到相同的效果和功能,这里不再重复。
本说明书一实施例还提供了一种电子设备,图10为本说明书一实施例提供的电子设备的结构示意图,如图10所示,电子设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上的处理器1001和存储器1002,存储器1002中可以存储有一个或一个以上应用程序或数据。其中,存储器1002可以是短暂存储或持久存储。存储在存储器1002的应用程序可以包括一个或一个以上模块(图示未示出),每个模块可以包括电子设备中的一系列计算机可执行指令。更进一步地,处理器1001可以设置为与存储器1002通信,在电子设备上执行存储器1002中的一系列计算机可执行指令。电子设备还可以包括一个或一个以上电源1003,一个或一个以上有线或无线网络接口1004,一个或一个以上输入或输出接口1005,一个或一个以上键盘1006等。
在一个具体的实施例中,电子设备为日志获取设备,具体为后台服务器,包括有处理器;以及,被配置为存储计算机可执行指令的存储器,计算机可执行指令在被执行时使处理器实现以下流程:
在目标业务的执行流中,针对执行流中的执行帧,在执行帧的执行步骤完成后,根据执行帧中存储的目标业务的执行流对应的日志追踪标识,打印执行帧对应的日志;执行帧包括至少一个执行步骤;日志追踪标识用于标记执行帧对应的日志;
在执行帧非执行流的最后一个执行帧时,将日志追踪标识传递至下一个执行帧,以在下一个执行帧中存储日志追踪标识;以及,删除执行帧中已存储的日志追踪标识;
根据日志追踪标识,从日志数据中查询目标业务对应的目标日志。
本说明书实施例中的日志获取设备能够实现前述的信息处理方法的各个过程,并达到相同的效果和功能,这里不再重复。
在另一个具体的实施例中,电子设备为业务处理设备,具体为后台服务器,包括有处理器;以及,被配置为存储计算机可执行指令的存储器,计算机可执行指令在被执行时使处理器实现以下流程:
在目标业务的执行流中,针对执行流中的执行帧,在执行帧的执行步骤完成后,根据执行帧中存储的目标业务的执行流对应的日志追踪标识,打印执行帧对应的日志;执行帧包括至少一个执行步骤;日志追踪标识用于标记执行帧对应的日志;
在执行帧非执行流的最后一个执行帧时,将日志追踪标识传递至下一个执行帧,以在下一个执行帧中存储日志追踪标识;以及,删除执行帧中已存储的日志追踪标识。。
本说明书实施例中的业务处理设备能够实现前述的业务处理方法的各个过程,并达到相同的效果和功能,这里不再重复。
本说明书另一实施例还提供了一种计算机可读存储介质,计算机可读存储介质用于存储计算机可执行指令,计算机可执行指令在被处理器执行时实现以下流程:
在目标业务的执行流中,针对执行流中的执行帧,在执行帧的执行步骤完成后,根据执行帧中存储的目标业务的执行流对应的日志追踪标识,打印执行帧对应的日志;执行帧包括至少一个执行步骤;日志追踪标识用于标记执行帧对应的日志;
在执行帧非执行流的最后一个执行帧时,将日志追踪标识传递至下一个执行帧,以在下一个执行帧中存储日志追踪标识;以及,删除执行帧中已存储的日志追踪标识;
根据日志追踪标识,从日志数据中查询目标业务对应的目标日志。
本说明书实施例中的存储介质能够实现前述的信息处理方法的各个过程,并达到相同的效果和功能,这里不再重复。
本说明书另一实施例还提供了一种计算机可读存储介质,计算机可读存储介质用于存储计算机可执行指令,计算机可执行指令在被处理器执行时实现以下流程:
在目标业务的执行流中,针对执行流中的执行帧,在执行帧的执行步骤完成后,根据执行帧中存储的目标业务的执行流对应的日志追踪标识,打印执行帧对应的日志;执行帧包括至少一个执行步骤;日志追踪标识用于标记执行帧对应的日志;
在执行帧非执行流的最后一个执行帧时,将日志追踪标识传递至下一个执行帧,以在下一个执行帧中存储日志追踪标识;以及,删除执行帧中已存储的日志追踪标识。。
本说明书实施例中的存储介质能够实现前述的业务处理方法的各个过程,并达到相同的效果和功能,这里不再重复。
本说明书各个实施例中,所述的计算机可读存储介质包括只读存储器(Read-OnlyMemory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书实施例时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本说明书一个或多个实施例可提供为方法、系统或计算机程序产品。因此,本说明书一个或多个实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本说明书一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本说明书一个或多个实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定业务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书的一个或多个实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行业务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本文件的实施例而已,并不用于限制本文件。对于本领域技术人员来说,本文件可以有各种更改和变化。凡在本文件的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本文件的权利要求范围之内。
Claims (16)
1.一种信息处理方法,其特征在于,包括:
在目标业务的执行流中,针对所述执行流中的执行帧,在所述执行帧的执行步骤完成后,根据所述执行帧中存储的所述目标业务的执行流对应的日志追踪标识,打印所述执行帧对应的日志;所述执行帧包括至少一个执行步骤;所述日志追踪标识用于标记所述执行帧对应的日志;
在所述执行帧非所述执行流的最后一个执行帧时,将所述日志追踪标识传递至下一个执行帧,以在所述下一个执行帧中存储所述日志追踪标识;以及,删除所述执行帧中已存储的所述日志追踪标识;
根据所述日志追踪标识,从日志数据中查询所述目标业务对应的目标日志。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据所述目标业务产生的代码执行跳跃,对所述目标业务的执行流进行执行帧划分。
3.根据权利要求2所述的方法,其特征在于,对所述目标业务的执行流进行执行帧划分之后,还包括:
针对所述执行流中的执行帧,创建所述目标业务的执行流对应的所述日志追踪标识,将所述日志追踪标识存储于所述执行帧对应的代码执行单元中;
所述删除所述执行帧中已存储的所述日志追踪标识,包括:
删除所述执行帧对应的代码执行单元中已存储的所述日志追踪标识。
4.根据权利要求2所述的方法,所述根据所述目标业务产生的代码执行跳跃,对所述目标业务的执行流进行执行帧划分,包括:
在确定所述目标业务执行过程中产生了代码执行跳跃时,进行执行帧的划分;
其中,进行所述执行帧划分后,对于产生代码执行跳跃时相邻的两个执行帧,产生所述代码执行跳跃时的前一个执行步骤作为前一执行帧的最后一个执行步骤,产生所述代码执行跳跃时的后一个执行步骤作为后一执行帧的首个执行步骤。
5.根据权利要求4所述的方法,其特征在于,所述在确定所述目标业务执行过程中产生了代码执行跳跃时,进行执行帧的划分之前,还包括:
确定所述目标业务的执行流中的触发步骤;所述触发步骤用于触发执行所述目标业务;
将所述触发步骤的下一个执行步骤确定为所述目标业务的执行流中首个执行帧的首个执行步骤;
所述在确定所述目标业务执行过程中产生了代码执行跳跃时,进行执行帧的划分之后,还包括:
将所述目标业务的执行流中最后一个执行步骤确定为所述目标业务的执行流中最后一个执行帧的最后一个执行步骤;所述执行流中的最后一个执行步骤为预定的执行流终点的执行步骤。
6.根据权利要求3所述的方法,其特征在于,所述针对所述执行流中的执行帧,创建所述目标业务的执行流对应的所述日志追踪标识,包括:
在所述执行帧的首个执行步骤执行之前,将所述目标业务的执行流对应的日志追踪标识设置为所述执行帧对应的追踪标识;
所述将所述日志追踪标识传递至下一个执行帧,包括:
在所述执行帧的最后一个执行步骤完成后,通过跨代码执行单元接口,将所述日志追踪标识传递至所述执行帧的下一个执行帧对应的代码执行单元。
7.根据权利要求6所述的方法,其特征在于,所述执行帧为所述目标业务的执行流中首个执行帧之外的其他执行帧;所述在所述执行帧的首个执行步骤执行之前,将所述目标业务的执行流对应的日志追踪标识设置为所述执行帧对应的追踪标识,包括:
在所述其他执行帧的首个步骤执行之前,将所述其他执行帧的上一个执行帧传递的所述日志追踪标识设置为所述其他执行帧对应的追踪标识。
8.根据权利要求4所述的方法,其特征在于,所述在确定所述目标业务执行过程中产生了代码执行跳跃时,进行执行帧的划分,包括:
在确定所述目标业务执行过程中产生了跨进程调用时,进行执行帧的划分;
或者,
在确定所述目标业务执行过程中产生了线程切换时,进行执行帧的划分;
或者,
在确定所述目标业务执行过程中产生了协程切换时,进行执行帧的划分;
或者,
在确定所述目标业务执行过程中产生了消息入队时,进行执行帧的划分;
或者,
在确定所述目标业务执行过程中产生了执行设备切换时,进行执行帧的划分。
9.根据权利要求1所述的方法,其特征在于,应用于客户端;所述根据所述日志追踪标识,从日志数据中查询所述目标业务对应的目标日志,包括:
根据所述日志追踪标识,从所述日志数据中查询所述目标业务的执行流中所述执行帧对应的日志;所述执行帧对应的日志包括服务端关联日志;所述服务端关联日志包括服务端标识;所述服务端标识为与所述客户端交互的服务端执行所述目标业务的关联步骤之后生成的服务端日志中携带的标识;
根据所述服务端标识,从服务端日志数据中查询所述目标业务对应的服务端关联日志;
将所述执行帧对应的日志和所述服务端关联日志确定为所述目标业务对应的目标日志。
10.根据权利要求6所述的方法,其特征在于,所述执行帧为所述目标业务的执行流中首个执行帧;所述在所述执行帧的首个执行步骤执行之前,将所述目标业务的执行流对应的日志追踪标识设置为所述执行帧对应的追踪标识,包括:
在所述首个执行帧的首个步骤执行之前,基于随机算法生成所述目标业务的执行流对应的日志追踪标识;
将所述日志追踪标识设置为所述首个执行帧对应的追踪标识。
11.一种业务处理方法,其特征在于,包括:
在目标业务的执行流中,针对所述执行流中的执行帧,在所述执行帧的执行步骤完成后,根据所述执行帧中存储的所述目标业务的执行流对应的日志追踪标识,打印所述执行帧对应的日志;所述执行帧包括至少一个执行步骤;所述日志追踪标识用于标记所述执行帧对应的日志;
在所述执行帧非所述执行流的最后一个执行帧时,将所述日志追踪标识传递至下一个执行帧,以在所述下一个执行帧中存储所述日志追踪标识;以及,删除所述执行帧中已存储的所述日志追踪标识。
12.根据权利要求11所述的方法,其特征在于,所述方法还包括:
根据所述目标业务产生的代码执行跳跃,对所述目标业务的执行流进行执行帧划分。
13.一种信息处理装置,其特征在于,包括:
第一打印单元,用于在目标业务的执行流中,针对所述执行流中的执行帧,在所述执行帧的执行步骤完成后,根据所述执行帧中存储的所述目标业务的执行流对应的日志追踪标识,打印所述执行帧对应的日志;所述执行帧包括至少一个执行步骤;所述日志追踪标识用于标记所述执行帧对应的日志;
第一传递单元,用于在所述执行帧非所述执行流的最后一个执行帧时,将所述日志追踪标识传递至下一个执行帧,以在所述下一个执行帧中存储所述日志追踪标识;以及,删除所述执行帧中已存储的所述日志追踪标识;
查询单元,用于根据所述日志追踪标识,从日志数据中查询所述目标业务对应的目标日志。
14.一种业务处理装置,其特征在于,包括:
第二打印单元,用于在目标业务的执行流中,针对所述执行流中的执行帧,在所述执行帧的执行步骤完成后,根据所述执行帧中存储的所述目标业务的执行流对应的日志追踪标识,打印所述执行帧对应的日志;所述执行帧包括至少一个执行步骤;所述日志追踪标识用于标记所述执行帧对应的日志;第二传递单元,用于在所述执行帧非所述执行流的最后一个执行帧时,将所述日志追踪标识传递至下一个执行帧,以在所述下一个执行帧中存储所述日志追踪标识;以及,删除所述执行帧中已存储的所述日志追踪标识。
15.一种电子设备,其特征在于,包括:
处理器;以及,
被配置为存储计算机可执行指令的存储器,所述计算机可执行指令在被执行时使所述处理器实现上述权利要求1-10任一项所述的信息处理方法的步骤,或者,实现上述权利要求11或12所述的业务处理方法的步骤。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储计算机可执行指令,所述计算机可执行指令在被处理器执行时实现上述权利要求1-10任一项所述的信息处理方法的步骤,或者,实现上述权利要求11或12所述的业务处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211596239.0A CN115934656A (zh) | 2022-12-13 | 2022-12-13 | 信息处理方法、业务处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211596239.0A CN115934656A (zh) | 2022-12-13 | 2022-12-13 | 信息处理方法、业务处理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115934656A true CN115934656A (zh) | 2023-04-07 |
Family
ID=86648846
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211596239.0A Pending CN115934656A (zh) | 2022-12-13 | 2022-12-13 | 信息处理方法、业务处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115934656A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116225880A (zh) * | 2023-05-05 | 2023-06-06 | 支付宝(杭州)信息技术有限公司 | 用于链路追踪的方法、装置及系统 |
-
2022
- 2022-12-13 CN CN202211596239.0A patent/CN115934656A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116225880A (zh) * | 2023-05-05 | 2023-06-06 | 支付宝(杭州)信息技术有限公司 | 用于链路追踪的方法、装置及系统 |
CN116225880B (zh) * | 2023-05-05 | 2023-09-08 | 支付宝(杭州)信息技术有限公司 | 用于链路追踪的方法、装置及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108062252B (zh) | 一种信息交互方法、对象管理方法及装置和系统 | |
US6128641A (en) | Data processing unit with hardware assisted context switching capability | |
CN110955535B (zh) | 一种多业务请求进程调用fpga设备的方法及相关装置 | |
CN106371826B (zh) | 应用程序跨系统运行的方法和装置 | |
JP2006515690A (ja) | 複数のプロセッサを有するデータ処理システムと、複数のプロセッサを有するデータ処理システムのためのタスクスケジューラと、タスクスケジューリングの対応する方法 | |
Pyarali et al. | Evaluating and optimizing thread pool strategies for real-time CORBA | |
CN107797848B (zh) | 进程调度方法、装置和主机设备 | |
CN105242962A (zh) | 基于异构众核的轻量级线程快速触发方法 | |
US7784057B2 (en) | Single-stack model for high performance parallelism | |
CN107479981B (zh) | 一种基于异步调用实现同步调用的处理方法及装置 | |
KR20150114444A (ko) | 실시간 운영 체제에서 스택 메모리 관리를 제공하는 방법 및 시스템 | |
CN112749023A (zh) | 一种信息的处理方法、装置、设备及系统 | |
CN115934656A (zh) | 信息处理方法、业务处理方法及装置 | |
CN111552945B (zh) | 一种资源处理方法、装置及设备 | |
CN116724294A (zh) | 一种任务分配方法及装置 | |
CN116107728B (zh) | 一种任务执行方法、装置、存储介质及电子设备 | |
WO2006111881A2 (en) | Implementation of multi-tasking on a digital signal processor | |
CN1867895B (zh) | 用于除了操作一个主操作系统外还操作一个辅助操作系统的方法和装置 | |
CN117407054A (zh) | 中断处理方法、电子设备和存储介质 | |
CN112162840A (zh) | 一种基于中断重入机制的协程处理及管理方法 | |
US5392426A (en) | Method and apparatus for use in program operation, control and control block management and storage | |
CN108009007B (zh) | 轻量级线程的调度方法及协同管理器、vCPU调度器 | |
CN111538722B (zh) | 一种业务处理方法、装置、设备及业务系统 | |
EP3414659B1 (en) | Thread diversion awaiting log call return | |
CN112905267B (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 |