一种任务跟踪方法、装置、设备和计算机可读存储介质制造方法及图纸

技术编号:29062409 阅读:25 留言:0更新日期:2021-06-30 09:06
本发明专利技术公开了一种任务跟踪方法、装置、设备和计算机可读存储介质。该方法包括:创建包含目标任务的上下文环境;在启动所述上下文环境后,将预先设置的任务跟踪补丁设置到所述上下文环境中;在所述上下文环境中执行所述目标任务的过程中,通过所述任务跟踪补丁对所述目标任务进行跟踪。本发明专利技术利用猴子补丁的方式,将任务跟踪补丁动态设置到包含目标任务的上下文环境中,在不修改目标任务的程序代码的前提下,为目标任务的程序代码提供可以跟踪目标任务执行的任务跟踪补丁,通过任务跟踪补丁对目标任务进行跟踪,不会影响目标任务的执行。不会影响目标任务的执行。不会影响目标任务的执行。

【技术实现步骤摘要】
一种任务跟踪方法、装置、设备和计算机可读存储介质


[0001]本专利技术涉及计算机
,尤其涉及一种任务跟踪方法、装置、设备和计算机可读存储介质。

技术介绍

[0002]在JavaScript开发中,跟踪任务的执行是常用操作。在调试任务的程序代码时,如果任务的程序代码很大,那么通过跟踪任务的执行过程,如跟踪函数的调用过程,可以很容易的发现程序代码中出现的问题。
[0003]目前,对任务的执行过程进行跟踪,需要对任务的程序代码进行修改,在任务的程序代码中添加跟踪函数。然而,这种修改程序代码的方式,代码侵入性较大,容易导致在程序代码运行时出现程序异常。尤其是在对异步任务进行跟踪时,由于异步任务的程序代码复杂度较大,在修改程序代码之后,使得异步任务的程序代码的可读性差,容易忽视程序代码中的错误,导致运行程序代码时出现程序异常的问题。

技术实现思路

[0004]本专利技术的主要目的在于提供一种任务跟踪方法、装置、设备和计算机可读存储介质,以解决现有的任务跟踪方式需要对任务的程序代码进行修改,容易导致运行程序代码时出现程序异常的问题。
[0005]针对上述技术问题,本专利技术是通过以下技术方案来实现的:
[0006]本专利技术提供了一种任务跟踪方法,包括:创建包含目标任务的上下文环境;在启动所述上下文环境后,将预先设置的任务跟踪补丁设置到所述上下文环境中;在所述上下文环境中执行所述目标任务的过程中,通过所述任务跟踪补丁对所述目标任务进行跟踪。
[0007]其中,所述将预设的任务跟踪补丁设置到所述上下文环境中,包括:将所述任务跟踪补丁传入所述上下文环境的预设位置,或者,将所述上下文环境中的目标任务替换为预先设置的自定义任务;其中,在所述自定义任务中包括所述目标任务的程序代码以及位于所述预设位置的所述任务跟踪补丁。
[0008]其中,所述创建包含目标任务的上下文环境,包括:调用父上下文环境的fork方法,创建包含目标任务的上下文环境;其中,所述父上下文环境为根上下文环境或者调用所述目标任务的第一任务所属的上下文环境。
[0009]其中,所述将预设的任务跟踪补丁设置到所述上下文环境中,包括:如果所述目标任务和所述第一任务为同步任务,则调用所述上下文环境的run方法,将所述任务跟踪补丁传入所述上下文环境的预设位置或者将所述上下文环境中的目标任务替换为所述自定义任务;如果所述目标任务和所述第一任务为异步任务,则通过所述上下文环境的所述父上下文环境将所述任务跟踪补丁传入所述上下文环境的预设位置或者将所述上下文环境中的目标任务替换为所述自定义任务;所述上下文环境是由所述父上下文创建的,并且所述上下文环境中的任务跟踪补丁和所述父上下文环境中的任务跟踪补丁相同。
[0010]其中,所述启动所述上下文环境,包括:调用所述上下文环境的run方法,启动所述子上下文环境,以便在执行所述目标任务之后,返回所述目标任务的执行结果;或者,调用所述上下文环境的runguarded方法,启动所述子上下文环境,以便在执行所述目标任务之后,返回所述目标任务的执行结果以及在所述目标任务执行过程中出现的异常信息。
[0011]其中,所述预设位置为所述目标任务的程序代码之前的代码位置和/或所述目标任务的程序代码之后的代码位置。
[0012]其中,在所述任务跟踪补丁对应的程序代码中包括:钩子函数;其中,所述钩子函数用于监测所述目标任务在执行过程中发生的目标事件;所述通过所述任务跟踪补丁对所述目标任务进行跟踪,包括:在所述上下文环境中执行所述目标任务的过程中,如果所述钩子函数监测到所述目标事件发生,则执行预先为所述钩子函数对应设置的操作。
[0013]本专利技术还提供了一种任务跟踪装置,包括:创建模块,用于创建包含目标任务的上下文环境;设置模块,用于在启动所述上下文环境后,将预先设置的任务跟踪补丁设置到所述上下文环境中;跟踪模块,用于在所述上下文环境中执行所述目标任务的过程中,通过所述任务跟踪补丁对所述目标任务进行跟踪。
[0014]本专利技术还提供了一种任务跟踪设备,所述任务跟踪设备包括处理器、存储器;所述处理器用于执行所述存储器中存储的任务跟踪程序,以实现上述任一项所述的任务跟踪方法。
[0015]本专利技术还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述任一项所述的任务跟踪方法。
[0016]本专利技术有益效果如下:
[0017]本专利技术实施例利用猴子补丁的方式,将任务跟踪补丁动态设置到包含目标任务的上下文环境中,在不修改目标任务的程序代码的前提下,为目标任务的程序代码提供可以跟踪目标任务执行的任务跟踪补丁,通过任务跟踪补丁对目标任务进行跟踪,既不会影响目标任务的执行,也因为省去了修改任务代码的工作而减少了工作量。
附图说明
[0018]此处所说明的附图用来提供对本专利技术的进一步理解,构成本申请的一部分,本专利技术的示意性实施例及其说明用于解释本专利技术,并不构成对本专利技术的不当限定。在附图中:
[0019]图1是根据本专利技术一实施例的任务跟踪方法的流程图;
[0020]图2是根据本专利技术一实施例的上下文环境的结构示意图;
[0021]图3是根据本专利技术一实施例的任务跟踪装置的结构图;
[0022]图4是根据本专利技术一实施例的任务跟踪设备的结构图。
具体实施方式
[0023]为使本专利技术的目的、技术方案和优点更加清楚,以下结合附图及具体实施例,对本专利技术作进一步地详细说明。
[0024]根据本专利技术的实施例,提供了一种任务跟踪方法。如图1所示,为根据本专利技术一实施例的任务跟踪方法的流程图。
[0025]步骤S110,创建包含目标任务的上下文环境。
[0026]该目标任务,是指待调试的任务。
[0027]上下文环境,也可以称作执行上下文,是JavaScript代码的运行环境。创建包含目标任务的上下文环境是指,在创建的上下文环境中包括目标任务的程序代码,或者指向目标任务的程序代码的指针。
[0028]在本实施例中,上下文环境为其父上下文环境的子上下文环境。具体的,调用父上下文环境的fork方法,创建包含目标任务的上下文环境;其中,所述父上下文环境为根上下文环境或者调用所述目标任务的第一任务所属的上下文环境。
[0029]步骤S120,在启动所述上下文环境后,将预先设置的任务跟踪补丁设置到所述上下文环境中。
[0030]启动所述上下文环境,包括:通过调用所述上下文环境的run方法,启动所述子上下文环境;或者,通过调用所述上下文环境的runguarded方法,启动所述子上下文环境。
[0031]任务跟踪补丁,用于在目标任务执行时,对目标任务的执行过程进行跟踪。设置到上下文环境中的任务跟踪补丁可以是任务跟踪补丁的程序代码,也可以是指向任务跟踪补丁的程序代码的指针。在本实施例中,通过猴子补丁的方式,将任务跟踪补丁动态设置到上下文环境本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种任务跟踪方法,其特征在于,包括:创建包含目标任务的上下文环境;在启动所述上下文环境后,将预先设置的任务跟踪补丁设置到所述上下文环境中;在所述上下文环境中执行所述目标任务的过程中,通过所述任务跟踪补丁对所述目标任务进行跟踪。2.根据权利要求1所述的方法,其特征在于,所述将预设的任务跟踪补丁设置到所述上下文环境中,包括:将所述任务跟踪补丁传入所述上下文环境的预设位置,或者,将所述上下文环境中的目标任务替换为预先设置的自定义任务;其中,在所述自定义任务中包括所述目标任务的程序代码以及位于所述预设位置的所述任务跟踪补丁。3.根据权利要求2所述的方法,其特征在于,所述创建包含目标任务的上下文环境,包括:调用父上下文环境的fork方法,创建包含目标任务的上下文环境;其中,所述父上下文环境为根上下文环境或者调用所述目标任务的第一任务所属的上下文环境。4.根据权利要求3所述的方法,其特征在于,所述将预设的任务跟踪补丁设置到所述上下文环境中,包括:如果所述目标任务和所述第一任务为同步任务,则调用所述上下文环境的run方法,将所述任务跟踪补丁传入所述上下文环境的预设位置或者将所述上下文环境中的目标任务替换为所述自定义任务;如果所述目标任务和所述第一任务为异步任务,则通过所述上下文环境的所述父上下文环境将所述任务跟踪补丁传入所述上下文环境的预设位置或者将所述上下文环境中的目标任务替换为所述自定义任务;所述上下文环境是由所述父上下文创建的,并且所述上下文环境中的任务跟踪补丁和所述父上下文环境中的任务跟踪补丁相同。5.根据权利要求3所述的方法,其特征在于,所述启动所述上下文环境,包括:调用所述上下文环境的...

【专利技术属性】
技术研发人员:李云鹤
申请(专利权)人:北京国双科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1