一种唯一标识符生成方法、装置、计算机设备及存储介质与流程
未命名
09-23
阅读:114
评论:0
1.本技术涉及人工智能中的数据存储技术领域,尤其涉及一种唯一标识符生成方法、装置、计算机设备及存储介质。
背景技术:
2.跟踪标识(traceid),用于标识某一次具体的请求id。当用户的请求进入系统后,会在rpc(remote procedure call,远程过程调用)调用网络的第一层生成一个全局唯一的traceid,并且会随着每一层的rpc调用,不断往后传递,这样的话通过traceid就可以把一次用户请求在系统中调用的路径串联起来。
3.在现有的traceid生成方法中,主要是服务端应用在接受到客户端接口请求,在应用的web过滤层拦截请求后,生成traceid并网请求header中记录中该traceid。
4.然而,申请人发现,传统的traceid生成方法主要涉及客户端和服务器应用的交互场景中,但是对于定时任务和多线程异步任务的场景,没有网络层面的接口请求,它们是由服务器应用按一定规则,自行触发执行的程序,因此无法在应用的web过滤层拦截请求并生成traceid,由此可见,传统的traceid生成方法由于无法应用于定时任务或者多线程异步任务,导致兼容性较低。
技术实现要素:
5.本技术实施例的目的在于提出一种唯一标识符生成方法、装置、计算机设备及存储介质,以解决传统的traceid生成方法无法应用于定时任务或者多线程异步任务,兼容性较低的问题。
6.为了解决上述技术问题,本技术实施例提供一种唯一标识符生成方法,采用了如下所述的技术方案:
7.获取待执行任务;
8.对所述待执行任务进行识别操作,得到任务识别结果;
9.若所述任务识别结果为异步任务,则判断所述待执行任务的父线程是否存在父线程标识符;
10.若所述父线程存在所述父线程标识符,则将所述父线程标识符作为所述待执行任务的唯一标识符;
11.若所述父线程不存在所述父线程标识符,则生成第一唯一标识符,并将所述第一唯一标识符作为所述待执行任务的唯一标识符。
12.进一步的,在所述对所述待执行任务进行识别操作,得到任务识别结果的步骤之后,还包括下述步骤:
13.若所述任务识别结果为定时任务,则获取所述待识别任务的实现方式;
14.若所述实现方式为线程池方式,则执行所述判断所述待执行任务的父线程是否存在父线程标识符的步骤。
15.进一步的,在若所述任务识别结果为定时任务,则获取所述待识别任务的实现方式的步骤之后,还包括下述步骤:
16.若所述实现方式为第三方框架方式,则通过aop切面拦截方式拦截指定方法;
17.生成第二唯一标识符,并将所述第二唯一标识符设置至线程内存中;
18.执行所述待执行任务的业务逻辑,当所述业务逻辑执行完成后,清理所述线程内存中的所述第二唯一标识符。
19.进一步的,所述生成第一唯一标识符的步骤,具体包括下述步骤:
20.根据预设方式生成所述第一唯一标识符,其中,所述预设方式可以是继承方式或组合方式。
21.为了解决上述技术问题,本技术实施例还提供一种唯一标识符生成装置,采用了如下所述的技术方案:
22.任务获取模块,用于获取待执行任务;
23.任务识别模块,用于对所述待执行任务进行识别操作,得到任务识别结果;
24.第一识别结果模块,用于若所述任务识别结果为异步任务,则判断所述待执行任务的父线程是否存在父线程标识符;
25.第一标识符确认模块,用于若所述父线程存在所述父线程标识符,则将所述父线程标识符作为所述待执行任务的唯一标识符;
26.第一标识符生成模块,用于若所述父线程不存在所述父线程标识符,则生成第一唯一标识符,并将所述第一唯一标识符作为所述待执行任务的唯一标识符。
27.进一步的,所述装置还包括:
28.第二识别结果模块,用于若所述任务识别结果为定时任务,则获取所述待识别任务的实现方式;
29.第一实现方式模块,用于若所述实现方式为线程池方式,则执行所述判断所述待执行任务的父线程是否存在父线程标识符的步骤。
30.进一步的,所述装置还包括:
31.第三识别结果模块,用于若所述实现方式为第三方框架方式,则通过aop切面拦截方式拦截指定方法;
32.第二标识符生成模块,用于生成第二唯一标识符,并将所述第二唯一标识符设置至线程内存中;
33.业务逻辑执行模块,用于执行所述待执行任务的业务逻辑,当所述业务逻辑执行完成后,清理所述线程内存中的所述第二唯一标识符。
34.进一步的,所述第一标识符生成模块包括:
35.第一标识符生成子模块,用于根据预设方式生成所述第一唯一标识符,其中,所述预设方式可以是继承方式或组合方式。
36.为了解决上述技术问题,本技术实施例还提供一种计算机设备,采用了如下所述的技术方案:
37.包括存储器和处理器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令时实现如上所述的唯一标识符生成方法的步骤。
38.为了解决上述技术问题,本技术实施例还提供一种计算机可读存储介质,采用了
如下所述的技术方案:
39.所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如上所述的唯一标识符生成方法的步骤。
40.与现有技术相比,本技术实施例主要有以下有益效果:
41.本技术提供了一种唯一标识符生成方法,包括:获取待执行任务;对所述待执行任务进行识别操作,得到任务识别结果;若所述任务识别结果为异步任务,则判断所述待执行任务的父线程是否存在父线程标识符;若所述父线程存在所述父线程标识符,则将所述父线程标识符作为所述待执行任务的唯一标识符;若所述父线程不存在所述父线程标识符,则生成第一唯一标识符,并将所述第一唯一标识符作为所述待执行任务的唯一标识符。与现有技术相比,本技术解决了由于异步任务不经过应用的web过滤层而无法生成traceid的问题,通过在多线程异步任务的日志中增加traceid唯一标识,有利于线上问题的排查效率,只要确定了该次异步执行的traceid,就可以将该次执行的所有相关日志一次性检索出来,有利于开发人员整体把握该次执行的情况,而不用一次次地检索特定的日志,然后再进行整合。
附图说明
42.为了更清楚地说明本技术中的方案,下面将对本技术实施例描述中所需要使用的附图作一个简单介绍,显而易见地,下面描述中的附图是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
43.图1是本技术可以应用于其中的示例性系统架构图;
44.图2是本技术实施例一提供的唯一标识符生成方法的实现流程图;
45.图3是图2中步骤s202之后的一种具体实施方式的流程图;
46.图4是图3中步骤s301之后的一种具体实施方式的流程图;
47.图5是图2中步骤s205的一种具体实施方式的流程图;
48.图6是本技术实施例二提供的唯一标识符生成装置的结构示意图;
49.图7是根据本技术的计算机设备的一个实施例的结构示意图。
具体实施方式
50.除非另有定义,本文所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本技术;本技术的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本技术的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。
51.在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本技术的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
52.为了使本技术领域的人员更好地理解本技术方案,下面将结合附图,对本技术实
施例中的技术方案进行清楚、完整地描述。
53.如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
54.用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如网页浏览器应用、购物类应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
55.终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、mp3播放器(moving picture experts group audio layer iii,动态影像专家压缩标准音频层面3)、mp4(moving picture experts group audio layer iv,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。
56.服务器105可以是提供各种服务的服务器,例如对终端设备101、102、103上显示的页面提供支持的后台服务器。
57.需要说明的是,本技术实施例所提供的唯一标识符生成方法一般由服务器/终端设备执行,相应地,唯一标识符生成装置一般设置于服务器/终端设备中。
58.应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
59.实施例一
60.继续参考图2,示出了本技术实施例一提供的唯一标识符生成方法的实现流程图,为了便于说明,仅示出与本技术相关的部分。
61.上述的唯一标识符生成方法,包括:步骤s201、步骤s202、步骤s203、步骤s204以及步骤s205。
62.在步骤s201中,获取待执行任务;
63.在步骤s202中,对待执行任务进行识别操作,得到任务识别结果;
64.在步骤s203中,若任务识别结果为异步任务,则判断待执行任务的父线程是否存在父线程标识符;
65.在步骤s204中,若父线程存在父线程标识符,则将父线程标识符作为待执行任务的唯一标识符;
66.在步骤s205中,若父线程不存在父线程标识符,则生成第一唯一标识符,并将第一唯一标识符作为待执行任务的唯一标识符。
67.在本技术实施例中,唯一标识符(traceid)用于跟踪应用程序请求和响应。当应用程序由多个微服务组完成时,traceid可以帮助您跟踪整个请求和响应过程,以诊断问题和优化性能。
68.在本技术实施例中,在自定义的线程池类内,重写提交执行任务的方法。在重写的方法中,对提交的任务进行一层包装,包装类中重写任务的run或call方法,在其中可以生成一个traceid,并设置到线程自己内存中进行缓存。
69.在本技术实施例中,对于在用户请求或rpc调用的线程中,再起线程执行异步任务的场景,此时主线程可能已经有了一个traceid,因此可以在对任务进行包装前,获取主线
程的traceid,然后提供给异步任务使用,而无需重新生成一个,这样可以使用同一个唯一标识来追踪用户请求和异步任务,有利于整个业务流程的日志搜索。
70.在本技术实施例中,生成了traceid后,可以结合现有的日志存储、跟踪方案,实现日志的收集、过滤、展示等,协助开发、运维人员定位问题。
71.在本技术实施例中,提供了一种唯一标识符生成方法,包括:获取待执行任务;对待执行任务进行识别操作,得到任务识别结果;若任务识别结果为异步任务,则判断待执行任务的父线程是否存在父线程标识符;若父线程存在父线程标识符,则将父线程标识符作为待执行任务的唯一标识符;若父线程不存在父线程标识符,则生成第一唯一标识符,并将第一唯一标识符作为待执行任务的唯一标识符。与现有技术相比,本技术解决了由于异步任务不经过应用的web过滤层而无法生成traceid的问题,通过在多线程异步任务的日志中增加traceid唯一标识,有利于线上问题的排查效率,只要确定了该次异步执行的traceid,就可以将该次执行的所有相关日志一次性检索出来,有利于开发人员整体把握该次执行的情况,而不用一次次地检索特定的日志,然后再进行整合。
72.继续参阅图3,示出了图2中步骤s202之后的一种具体实施方式的流程图,为了便于说明,仅示出与本技术相关的部分。
73.在本实施例的一些可选的实现方式中,在步骤s202之后,还包括:步骤s301以及步骤s302。
74.在步骤s301中,若任务识别结果为定时任务,则获取待识别任务的实现方式;
75.在步骤s302中,若实现方式为线程池方式,则执行判断待执行任务的父线程是否存在父线程标识符的步骤。
76.在本技术实施例中,如果待识别任务是使用线程池的方式实现(如使用spring的@schedule注解),可以使用步骤s203至步骤s205异步任务的实现方案来解决。
77.继续参阅图4,示出了图3中步骤s301之后的一种具体实施方式的流程图,为了便于说明,仅示出与本技术相关的部分。
78.在本实施例的一些可选的实现方式中,在步骤s301之后,还包括:步骤s401、步骤s402以及步骤s403。
79.在步骤s401中,若实现方式为第三方框架方式,则通过aop切面拦截方式拦截指定方法;
80.在步骤s402中,生成第二唯一标识符,并将第二唯一标识符设置至线程内存中;
81.在步骤s403中,执行待执行任务的业务逻辑,当业务逻辑执行完成后,清理线程内存中的第二唯一标识符。
82.在本技术实施例中,如果待识别任务使用的是第三方框架(比如saturn框架),这些框架一般的使用方式是继承框架提供的一个基类,并实现特定的方法,框架就会按规则调用这个实现方法,完成使用者的业务逻辑。因此可以通过aop的方式,对这个特定的方法进行拦截。拦截方法中,先生成一个traceid,并设置到线程自己内存中进行缓存,然后再进行后续的业务逻辑。
83.继续参阅图5,示出了图2中步骤s205的一种具体实施方式的流程图,为了便于说明,仅示出与本技术相关的部分。
84.在本实施例的一些可选的实现方式中,步骤s205具体包括:步骤s501。
85.在步骤s501中,根据预设方式生成第一唯一标识符,其中,预设方式可以是继承方式或组合方式。
86.在本技术实施例中,在java技术栈中,由于比较规范的实现多线程的方式是使用线程池,因此可以继承或组合的方式,扩展线程池的逻辑。
87.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机可读指令来指令相关的硬件来完成,该计算机可读指令可存储于一计算机可读取存储介质中,该计算机可读指令在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)等非易失性存储介质,或随机存储记忆体(random access memory,ram)等。
88.应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
89.实施例二
90.进一步参考图6,作为对上述图2所示方法的实现,本技术提供了一种唯一标识符生成装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
91.如图6所示,本实施例的唯一标识符生成装置200包括:任务获取模块210、任务识别模块220、第一识别结果模块230、第一标识符确认模块240以及第一标识符生成模块250。其中:
92.任务获取模块210,用于获取待执行任务;
93.任务识别模块220,用于对待执行任务进行识别操作,得到任务识别结果;
94.第一识别结果模块230,用于若任务识别结果为异步任务,则判断待执行任务的父线程是否存在父线程标识符;
95.第一标识符确认模块240,用于若父线程存在父线程标识符,则将父线程标识符作为待执行任务的唯一标识符;
96.第一标识符生成模块250,用于若父线程不存在父线程标识符,则生成第一唯一标识符,并将第一唯一标识符作为待执行任务的唯一标识符。
97.在本技术实施例中,唯一标识符(traceid)用于跟踪应用程序请求和响应。当应用程序由多个微服务组完成时,traceid可以帮助您跟踪整个请求和响应过程,以诊断问题和优化性能。
98.在本技术实施例中,在自定义的线程池类内,重写提交执行任务的方法。在重写的方法中,对提交的任务进行一层包装,包装类中重写任务的run或call方法,在其中可以生成一个traceid,并设置到线程自己内存中进行缓存。
99.在本技术实施例中,对于在用户请求或rpc调用的线程中,再起线程执行异步任务的场景,此时主线程可能已经有了一个traceid,因此可以在对任务进行包装前,获取主线程的traceid,然后提供给异步任务使用,而无需重新生成一个,这样可以使用同一个唯一
标识来追踪用户请求和异步任务,有利于整个业务流程的日志搜索。
100.在本技术实施例中,生成了traceid后,可以结合现有的日志存储、跟踪方案,实现日志的收集、过滤、展示等,协助开发、运维人员定位问题。
101.在本技术实施例中,提供了一种唯一标识符生成装置200,包括:任务获取模块210,用于获取待执行任务;任务识别模块220,用于对待执行任务进行识别操作,得到任务识别结果;第一识别结果模块230,用于若任务识别结果为异步任务,则判断待执行任务的父线程是否存在父线程标识符;第一标识符确认模块240,用于若父线程存在父线程标识符,则将父线程标识符作为待执行任务的唯一标识符;第一标识符生成模块250,用于若父线程不存在父线程标识符,则生成第一唯一标识符,并将第一唯一标识符作为待执行任务的唯一标识符。与现有技术相比,本技术解决了由于异步任务不经过应用的web过滤层而无法生成traceid的问题,通过在多线程异步任务的日志中增加traceid唯一标识,有利于线上问题的排查效率,只要确定了该次异步执行的traceid,就可以将该次执行的所有相关日志一次性检索出来,有利于开发人员整体把握该次执行的情况,而不用一次次地检索特定的日志,然后再进行整合。
102.在本实施例的一些可选的实现方式中,上述唯一标识符生成装置100还包括:第二识别结果模块以及第一实现方式模块,其中:
103.第二识别结果模块,用于若任务识别结果为定时任务,则获取待识别任务的实现方式;
104.第一实现方式模块,用于若实现方式为线程池方式,则执行判断待执行任务的父线程是否存在父线程标识符的步骤。
105.在本技术实施例中,如果待识别任务是使用线程池的方式实现(如使用spring的@schedule注解),可以使用第一识别结果模块230、第一标识符确认模块240以及第一标识符生成模块250中异步任务的实现方案来解决。
106.在本实施例的一些可选的实现方式中,上述唯一标识符生成装置100还包括:第三识别结果模块、第二标识符生成模块以及业务逻辑执行模块,其中:
107.第三识别结果模块,用于若实现方式为第三方框架方式,则通过aop切面拦截方式拦截指定方法;
108.第二标识符生成模块,用于生成第二唯一标识符,并将第二唯一标识符设置至线程内存中;
109.业务逻辑执行模块,用于执行待执行任务的业务逻辑,当业务逻辑执行完成后,清理线程内存中的第二唯一标识符。
110.在本技术实施例中,如果待识别任务使用的是第三方框架(比如saturn框架),这些框架一般的使用方式是继承框架提供的一个基类,并实现特定的方法,框架就会按规则调用这个实现方法,完成使用者的业务逻辑。因此可以通过aop的方式,对这个特定的方法进行拦截。拦截方法中,先生成一个traceid,并设置到线程自己内存中进行缓存,然后再进行后续的业务逻辑。
111.在本实施例的一些可选的实现方式中,上述第一标识符生成模块250包括:第一标识符生成子模块,其中:
112.第一标识符生成子模块,用于根据预设方式生成第一唯一标识符,其中,预设方式
可以是继承方式或组合方式。
113.在本技术实施例中,在java技术栈中,由于比较规范的实现多线程的方式是使用线程池,因此可以继承或组合的方式,扩展线程池的逻辑。
114.为解决上述技术问题,本技术实施例还提供计算机设备。具体请参阅图7,图7为本实施例计算机设备基本结构框图。
115.所述计算机设备300包括通过系统总线相互通信连接存储器310、处理器320、网络接口330。需要指出的是,图中仅示出了具有组件310-330的计算机设备300,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(application specific integrated circuit,asic)、可编程门阵列(field-programmable gate array,fpga)、数字处理器(digital signal processor,dsp)、嵌入式设备等。
116.所述计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机设备可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。
117.所述存储器310至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器310可以是所述计算机设备300的内部存储单元,例如该计算机设备300的硬盘或内存。在另一些实施例中,所述存储器310也可以是所述计算机设备300的外部存储设备,例如该计算机设备300上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。当然,所述存储器310还可以既包括所述计算机设备300的内部存储单元也包括其外部存储设备。本实施例中,所述存储器310通常用于存储安装于所述计算机设备300的操作系统和各类应用软件,例如唯一标识符生成方法的计算机可读指令等。此外,所述存储器310还可以用于暂时地存储已经输出或者将要输出的各类数据。
118.所述处理器320在一些实施例中可以是中央处理器(central processing unit,cpu)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器320通常用于控制所述计算机设备300的总体操作。本实施例中,所述处理器320用于运行所述存储器310中存储的计算机可读指令或者处理数据,例如运行所述唯一标识符生成方法的计算机可读指令。
119.所述网络接口330可包括无线网络接口或有线网络接口,该网络接口330通常用于在所述计算机设备300与其他电子设备之间建立通信连接。
120.本技术提供的计算机设备,解决了由于异步任务不经过应用的web过滤层而无法生成traceid的问题,通过在多线程异步任务的日志中增加traceid唯一标识,有利于线上问题的排查效率,只要确定了该次异步执行的traceid,就可以将该次执行的所有相关日志一次性检索出来,有利于开发人员整体把握该次执行的情况,而不用一次次地检索特定的日志,然后再进行整合。
121.本技术还提供了另一种实施方式,即提供一种计算机可读存储介质,所述计算机
可读存储介质存储有计算机可读指令,所述计算机可读指令可被至少一个处理器执行,以使所述至少一个处理器执行如上述的唯一标识符生成方法的步骤。
122.本技术提供的计算机可读存储介质,解决了由于异步任务不经过应用的web过滤层而无法生成traceid的问题,通过在多线程异步任务的日志中增加traceid唯一标识,有利于线上问题的排查效率,只要确定了该次异步执行的traceid,就可以将该次执行的所有相关日志一次性检索出来,有利于开发人员整体把握该次执行的情况,而不用一次次地检索特定的日志,然后再进行整合。
123.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本技术各个实施例所述的方法。
124.显然,以上所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例,附图中给出了本技术的较佳实施例,但并不限制本技术的专利范围。本技术可以以许多不同的形式来实现,相反地,提供这些实施例的目的是使对本技术的公开内容的理解更加透彻全面。尽管参照前述实施例对本技术进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利用本技术说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本技术专利保护范围之内。
技术特征:
1.一种唯一标识符生成方法,其特征在于,包括下述步骤:获取待执行任务;对所述待执行任务进行识别操作,得到任务识别结果;若所述任务识别结果为异步任务,则判断所述待执行任务的父线程是否存在父线程标识符;若所述父线程存在所述父线程标识符,则将所述父线程标识符作为所述待执行任务的唯一标识符;若所述父线程不存在所述父线程标识符,则生成第一唯一标识符,并将所述第一唯一标识符作为所述待执行任务的唯一标识符。2.根据权利要求1所述的唯一标识符生成方法,其特征在于,在所述对所述待执行任务进行识别操作,得到任务识别结果的步骤之后,还包括下述步骤:若所述任务识别结果为定时任务,则获取所述待识别任务的实现方式;若所述实现方式为线程池方式,则执行所述判断所述待执行任务的父线程是否存在父线程标识符的步骤。3.根据权利要求2所述的唯一标识符生成方法,其特征在于,在若所述任务识别结果为定时任务,则获取所述待识别任务的实现方式的步骤之后,还包括下述步骤:若所述实现方式为第三方框架方式,则通过aop切面拦截方式拦截指定方法;生成第二唯一标识符,并将所述第二唯一标识符设置至线程内存中;执行所述待执行任务的业务逻辑,当所述业务逻辑执行完成后,清理所述线程内存中的所述第二唯一标识符。4.根据权利要求1所述的唯一标识符生成方法,其特征在于,所述生成第一唯一标识符的步骤,具体包括下述步骤:根据预设方式生成所述第一唯一标识符,其中,所述预设方式可以是继承方式或组合方式。5.一种唯一标识符生成装置,其特征在于,包括:任务获取模块,用于获取待执行任务;任务识别模块,用于对所述待执行任务进行识别操作,得到任务识别结果;第一识别结果模块,用于若所述任务识别结果为异步任务,则判断所述待执行任务的父线程是否存在父线程标识符;第一标识符确认模块,用于若所述父线程存在所述父线程标识符,则将所述父线程标识符作为所述待执行任务的唯一标识符;第一标识符生成模块,用于若所述父线程不存在所述父线程标识符,则生成第一唯一标识符,并将所述第一唯一标识符作为所述待执行任务的唯一标识符。6.根据权利要求5所述的唯一标识符生成装置,其特征在于,所述装置还包括:第二识别结果模块,用于若所述任务识别结果为定时任务,则获取所述待识别任务的实现方式;第一实现方式模块,用于若所述实现方式为线程池方式,则执行所述判断所述待执行任务的父线程是否存在父线程标识符的步骤。7.根据权利要求6所述的唯一标识符生成装置,其特征在于,所述装置还包括:
第三识别结果模块,用于若所述实现方式为第三方框架方式,则通过aop切面拦截方式拦截指定方法;第二标识符生成模块,用于生成第二唯一标识符,并将所述第二唯一标识符设置至线程内存中;业务逻辑执行模块,用于执行所述待执行任务的业务逻辑,当所述业务逻辑执行完成后,清理所述线程内存中的所述第二唯一标识符。8.根据权利要求6所述的唯一标识符生成装置,其特征在于,所述第一标识符生成模块包括:第一标识符生成子模块,用于根据预设方式生成所述第一唯一标识符,其中,所述预设方式可以是继承方式或组合方式。9.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令时实现如权利要求1至4中任一项所述的唯一标识符生成方法的步骤。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如权利要求1至4中任一项所述的唯一标识符生成方法的步骤。
技术总结
本申请实施例属于人工智能中的数据存储技术领域,涉及一种唯一标识符生成方法、装置、计算机设备及存储介质,该方法包括:获取待执行任务;对所述待执行任务进行识别操作,得到任务识别结果;若所述任务识别结果为异步任务,则判断所述待执行任务的父线程是否存在父线程标识符;若所述父线程存在所述父线程标识符,则将所述父线程标识符作为所述待执行任务的唯一标识符;若所述父线程不存在所述父线程标识符,则生成第一唯一标识符,并将所述第一唯一标识符作为所述待执行任务的唯一标识符。本申请有效解决了由于异步任务不经过应用的web过滤层而无法生成traceId的问题,有效提高兼容性。兼容性。兼容性。
技术研发人员:陈智翔
受保护的技术使用者:中国平安财产保险股份有限公司
技术研发日:2023.06.26
技术公布日:2023/9/22
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/