掌桥专利:专业的专利平台
掌桥专利
首页

一种埋点数据上报方法、系统、计算机设备及介质

文献发布时间:2023-06-19 19:38:38


一种埋点数据上报方法、系统、计算机设备及介质

技术领域

本发明涉及计算机技术领域,特别涉及一种埋点数据上报方法、系统、计算机设备及介质。

背景技术

埋点是指在应用程序(APP)中特定的流程收集一些信息,用来跟踪应用程序的使用状况,后续可以用来进一步优化产品或是提供运营的数据支撑,其中,可以通过埋点来采集访问数、访客数、停留时长、页面浏览数、跳出率等信息。

在现有技术中,目前业界有很多数据采集的方案,包括可视化埋点、无埋点等。其中可视化埋点是需要圈选的,无埋点是保存所有用户点击的xpath,然后交由后端进行分析。当前前端web功能页面中仅有业务线程处理,当用户触发相关业务功能时,此时由于业务线程需要先处理埋点上报操作,此时会造成用户触发的相关业务功能出现响应延迟,从而降低系统平台的时效性。

发明内容

基于此,有必要针对系统平台的时效性低的问题,提供一种埋点数据上报方法、系统、计算机设备及介质。

一种埋点数据上报方法,方法包括:实时监听并获取业务主线程产生的埋点消息,得到业务主线程埋点消息;根据业务主线程埋点消息的消息标识符缓存业务主线程埋点消息到埋点副线程的目标队列中;其中,业务主线程是用来处理系统业务功能的线程,埋点副线程是用来处理埋点数据的线程;根据目标队列的队列状态将目标队列的埋点消息批量封装为埋点数据包,并将埋点数据包上报至服务端。

在其中一个实施例中,实时监听并获取业务主线程产生的埋点消息之前,还包括:通过HTML5 Web Workers框架构建目标线程;定义数组对象;将数组对象与目标线程进行集成处理,得到埋点副线程;将埋点副线程融合至当前系统的web页面中。

在其中一个实施例中,方法还包括:实时监听并获取业务主线程产生的埋点消息,得到业务主线程埋点消息,包括:在监听到业务主线程产生的消息发送指令时,基于消息发送指令接收来自业务主线程发送的消息;创建被动消息标识符;将被动消息标识符与接收来自业务主线程发送的消息进行封装,得到业务主线程埋点消息。

在其中一个实施例中,实时监听并获取业务主线程产生的埋点消息,得到业务主线程埋点消息,包括:在监听到业务主线程的消息销毁指令时,基于消息销毁指令调用设置在业务主线程上的消息读取服务;创建主动消息标识符;获取来自消息读取服务响应的埋点消息;将主动消息标识符与来自消息读取服务响应的埋点消息进行封装,得到业务主线程埋点消息。

在其中一个实施例中,根据业务主线程埋点消息的消息标识符缓存业务主线程埋点消息到埋点副线程的目标队列中,包括:当业务主线程埋点消息的消息标识符为被动消息标识符时,分析监听到的埋点消息对应的目标元素数量;确定埋点副线程中的目标队列内可存位置数量;当目标元素数量大于可存位置数量时,根据目标元素数量创建多个链表元素;将多个链表元素插入到由指针指向的目标队列的尾部,得到更新存储位置后的目标队列;将监听到的埋点消息保存至更新存储位置后的目标队列中。

在其中一个实施例中,根据目标队列的队列状态将目标队列的埋点消息批量封装为埋点数据包,包括:当目标队列的队列状态为非空闲状态时,对目标队列中的数据进行逐一采样,得到采样数据;将采样数据进行批量封装,得到埋点数据包;或者,当目标队列的队列状态为空闲状态时,继续执行根据业务主线程埋点消息的消息标识符缓存业务主线程埋点消息到埋点副线程的目标队列中的步骤。

在其中一个实施例中,方法还包括:计算目标队列中元素数量;当目标队列中元素数量大于等于预设阈值时,确定目标队列的队列状态为非空闲状态;或者,当目标队列中元素数量小于预设阈值时,确定目标队列的队列状态为空闲状态。

一种埋点数据上报系统,系统包括:埋点消息监听获取模块,用于实时监听并获取业务主线程产生的埋点消息,得到业务主线程埋点消息;埋点消息缓存模块,用于根据业务主线程埋点消息的消息标识符缓存业务主线程埋点消息到埋点副线程的目标队列中;其中,业务主线程是用来处理系统业务功能的线程,埋点副线程是用来处理埋点数据的线程;埋点消息封装上报模块,用于根据目标队列的队列状态将目标队列的埋点消息批量封装为埋点数据包,并将埋点数据包上报至服务端。

一种计算机设备,包括存储器和处理器,存储器中存储有计算机可读指令,计算机可读指令被处理器执行时,使得处理器执行上述埋点数据上报方法的步骤。

一种存储有计算机可读指令的介质,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述埋点数据上报方法的步骤。

上述埋点数据上报方法、系统、设备和介质,埋点数据上报系统首先实时监听并获取业务主线程产生的埋点消息,得到业务主线程埋点消息,然后根据业务主线程埋点消息的消息标识符缓存业务主线程埋点消息到埋点副线程的目标队列中;业务主线程是用来处理系统业务功能的线程,埋点副线程是用来处理埋点数据的线程,最后根据目标队列的队列状态将目标队列的埋点消息批量封装为埋点数据包,将该数据包上报服务端。由于本申请通过缓存业务主线程埋点消息到埋点副线程的目标队列中,使得埋点消息的处理过程由埋点副线程专门负责,从而避免了业务主线程处理埋点消息而存在用户触发的相关业务功能出现响应延迟,提升了系统平台的时效性。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。

图1为本申请一个实施例中提供的埋点数据上报方法的实施环境图;

图2为本申请一个实施例中计算机设备的内部结构示意图;

图3为本申请一个实施例中提供的埋点数据上报方法的方法示意图;

图4为本申请一个实施例中提供的另一种埋点数据上报方法的方法示意图;

图5是本申请实施例提供的一种埋点数据上报系统的系统结构示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

可以理解,本申请所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。

图1为一个实施例中提供的埋点数据上报方法的实施环境图,如图1所示,在该实施环境中,包括服务端110以及客户端120。

服务端110可以为服务器,该服务器具体可以是独立的服务器,也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器,例如为保存埋点数据包的服务器设备。客户端120实时监听并获取业务主线程产生的埋点消息,得到业务主线程埋点消息,客户端120根据业务主线程埋点消息的消息标识符缓存业务主线程埋点消息到埋点副线程的目标队列中;其中,业务主线程是用来处理系统业务功能的线程,埋点副线程是用来处理埋点数据的线程,客户端120根据目标队列的队列状态将目标队列的埋点消息批量封装为埋点数据包,并将埋点数据包上报至服务端110。

需要说明的是,客户端120可为智能手机、平板电脑、笔记本电脑、台式计算机等,但并不局限于此。服务端110以及客户端120可以通过蓝牙、USB(Universal Serial Bus,通用串行总线)或者其他通讯连接方式进行连接,本发明在此不做限制。

图2为一个实施例中计算机设备的内部结构示意图。如图2所示,该计算机设备包括通过系统总线连接的处理器、介质、存储器和网络接口。其中,该计算机设备的介质存储有操作系统、数据库和计算机可读指令,数据库中可存储有控件信息序列,该计算机可读指令被处理器执行时,可使得处理器实现一种埋点数据上报方法。该计算机设备的处理器用于提供计算和控制能力,支撑整个设备的运行。该计算机设备的存储器中可存储有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器执行一种埋点数据上报方法。该计算机设备的网络接口用于与终端连接通信。本领域技术人员可以理解,图2中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。其中,介质为一种可读的存储介质。

下面将结合附图3-4,对本申请实施例提供的埋点数据上报方法进行详细介绍。该方法可依赖于计算机程序实现,可运行于基于冯诺依曼体系的埋点数据上报系统上。该计算机程序可集成在应用中,也可作为独立的工具类应用运行。

本申请实施例可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。

人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大埋点数据上报技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。

请参见图3,为本申请实施例提供了一种埋点数据上报方法的流程示意图。

如图3所示,本申请实施例的方法可以包括以下步骤:

S101,实时监听并获取业务主线程产生的埋点消息,得到业务主线程埋点消息;

其中,线程是操作系统能够进行运算调度的最小单位,每条线程用来执行不同的任务。业务主线程是用来处理系统业务功能的线程,

在本申请实施例中,在实时监听并获取业务主线程产生的埋点消息之前还需要构建埋点副线程融合至当前系统的web页面中。首先通过HTML5 Web Workers框架构建目标线程,然后定义数组对象,其次将数组对象与目标线程进行集成处理,得到埋点副线程,最后将埋点副线程融合至当前系统的web页面中。

具体的,HTML5 Web Workers框架是一个前端框架,Web Workers是运行在后台的JavaScript,独立于其他脚本,不会影响页面的性能。采用Web Workers构建埋点副线程,可以避免业务主线程上报埋点而影响业务功能的响应速度。通过在Web Workers构建的埋点副线程中集成队列缓存,可以进行埋点数据的批量上报,批量上报方式很大程度上可以缓解服务器和网络传输压力。

在一种可能的实现方式中,在实时监听并获取业务主线程产生的埋点消息,得到业务主线程埋点消息时,首先在监听到业务主线程产生的消息发送指令时,基于消息发送指令接收来自业务主线程发送的消息,然后创建被动消息标识符,最后将被动消息标识符与接收来自业务主线程发送的消息进行封装,得到业务主线程埋点消息。例如用户通过触发系统前端页面中的业务功能,此时埋点函数运行收集信息,实时产生埋点数据,并对监听器发出业务主线程产生的消息发送指令,监听器在监听到业务主线程产生的消息发送指令时,基于消息发送指令接收来自业务主线程发送的消息,此时为被动收到消息,因此创建被动消息标识符对消息进行标记,标记完成后得到业务主线程埋点消息。

在另一种可能的实现方式中,在实时监听并获取业务主线程产生的埋点消息,得到业务主线程埋点消息时,在监听到业务主线程的消息销毁指令时,首先基于消息销毁指令调用设置在业务主线程上的消息读取服务,再创建主动消息标识符,然后获取来自消息读取服务响应的埋点消息,最后将主动消息标识符与来自消息读取服务响应的埋点消息进行封装,得到业务主线程埋点消息。例如,用户触发关闭系统前端页面时,此时为了及时将产生的埋点数据上报,需要在监听到业务主线程的消息销毁指令时,首先基于消息销毁指令调用设置在业务主线程上的消息读取服务,由于该消息获取为主动获取,此时需要创建主动消息标识符,然后获取来自消息读取服务响应的埋点消息,最后将主动消息标识符与来自消息读取服务响应的埋点消息进行封装,得到业务主线程埋点消息。

S102,根据业务主线程埋点消息的消息标识符缓存业务主线程埋点消息到埋点副线程的目标队列中;

其中,埋点副线程是用来处理埋点数据的线程。

在一种可能的实现方式中,当业务主线程埋点消息的消息标识符为被动消息标识符时,说明此时用户在操作系统的业务功能,由于产生的埋点信息较多,需要将该场景下的埋点信息缓存到埋点副线程的目标队列中,首先分析监听到的埋点消息对应的目标元素数量,然后确定埋点副线程中的目标队列内可存位置数量,其次当目标元素数量大于可存位置数量时,根据目标元素数量创建多个链表元素,再将多个链表元素插入到由指针指向的目标队列的尾部,得到更新存储位置后的目标队列,最后将监听到的埋点消息保存至更新存储位置后的目标队列中。

在另一种可能的实现方式中,当业务主线程埋点消息的消息标识符为主动消息标识符时,说明此时用户正在关闭系统的前端页面,此时为了及时将埋点数据进行上报,需要将消息标识符为主动消息标识符的业务主线程埋点消息直接上报至服务端。

S103,根据目标队列的队列状态将目标队列的埋点消息批量封装为埋点数据包,并将埋点数据包上报至服务端。

在一种可能的实现方式中,在根据目标队列的队列状态将目标队列的埋点消息批量封装为埋点数据包时,当目标队列的队列状态为非空闲状态时,首先对目标队列中的数据进行逐一采样,得到采样数据,然后将采样数据进行批量封装,得到埋点数据包。

在另一种可能的实现方式中,在根据目标队列的队列状态将目标队列的埋点消息批量封装为埋点数据包时,当目标队列的队列状态为空闲状态时,继续执行根据业务主线程埋点消息的消息标识符缓存业务主线程埋点消息到埋点副线程的目标队列中的步骤,直到队列为非空闲状态。

具体的,在判断目标队列的空闲状态时,首先计算目标队列中元素数量,然后当目标队列中元素数量大于等于预设阈值时,确定目标队列的队列状态为非空闲状态;或者,当目标队列中元素数量小于预设阈值时,确定目标队列的队列状态为空闲状态。

需要说明的是,使用web workers创建新的线程,对监听到的事件及数据发送到worker并由worker线程进行埋点数据的上报,这样不会阻塞主线程的UI操作,提升了用户体验。

在本申请实施例中,埋点数据上报系统首先实时监听并获取业务主线程产生的埋点消息,得到业务主线程埋点消息,然后根据业务主线程埋点消息的消息标识符缓存业务主线程埋点消息到埋点副线程的目标队列中;业务主线程是用来处理系统业务功能的线程,埋点副线程是用来处理埋点数据的线程,最后根据目标队列的队列状态将目标队列的埋点消息批量封装为埋点数据包,将该数据包上报服务端。由于本申请通过缓存业务主线程埋点消息到埋点副线程的目标队列中,使得埋点消息的处理过程由埋点副线程专门负责,从而避免了业务主线程处理埋点消息而存在用户触发的相关业务功能出现响应延迟,提升了系统平台的时效性。

请参见图4,为本申请实施例提供了一种埋点数据上报方法的流程示意图。

如图4所示,本申请实施例的方法可以包括以下步骤:

S201,通过HTML5 Web Workers框架构建目标线程;

S202,定义数组对象,将数组对象与目标线程进行集成处理,得到埋点副线程;

S203,将埋点副线程融合至当前系统的web页面中;

S204,在监听到业务主线程产生的消息发送指令时,基于消息发送指令接收来自业务主线程发送的消息;

S205,创建被动消息标识符,将被动消息标识符与接收来自业务主线程发送的消息进行封装,得到业务主线程埋点消息;

S206,当业务主线程埋点消息的消息标识符为被动消息标识符时,分析监听到的埋点消息对应的目标元素数量;

S207,确定埋点副线程中的目标队列内可存位置数量,当目标元素数量大于可存位置数量时,根据目标元素数量创建多个链表元素;

S208,将多个链表元素插入到由指针指向的目标队列的尾部,得到更新存储位置后的目标队列,将监听到的埋点消息保存至更新存储位置后的目标队列中;

S209,根据目标队列的队列状态将目标队列的埋点消息批量封装为埋点数据包,并将埋点数据包上报至服务端。

在本申请实施例中,埋点数据上报系统首先实时监听并获取业务主线程产生的埋点消息,得到业务主线程埋点消息,然后根据业务主线程埋点消息的消息标识符缓存业务主线程埋点消息到埋点副线程的目标队列中;业务主线程是用来处理系统业务功能的线程,埋点副线程是用来处理埋点数据的线程,最后根据目标队列的队列状态将目标队列的埋点消息批量封装为埋点数据包,将该数据包上报服务端。由于本申请通过缓存业务主线程埋点消息到埋点副线程的目标队列中,使得埋点消息的处理过程由埋点副线程专门负责,从而避免了业务主线程处理埋点消息而存在用户触发的相关业务功能出现响应延迟,提升了系统平台的时效性。

下述为本发明系统实施例,可以用于执行本发明方法实施例。对于本发明系统实施例中未披露的细节,请参照本发明方法实施例。

请参见图5,其示出了本发明一个示例性实施例提供的埋点数据上报系统的结构示意图。该埋点数据上报系统可以通过软件、硬件或者两者的结合实现成为设备的全部或一部分。该系统1包括埋点消息监听获取模块10、埋点消息缓存模块20、埋点消息封装上报模块30。

埋点消息监听获取模块10,用于实时监听并获取业务主线程产生的埋点消息,得到业务主线程埋点消息;

埋点消息缓存模块20,用于根据业务主线程埋点消息的消息标识符缓存业务主线程埋点消息到埋点副线程的目标队列中;其中,

业务主线程是用来处理系统业务功能的线程,埋点副线程是用来处理埋点数据的线程;

埋点消息封装上报模块30,用于根据目标队列的队列状态将目标队列的埋点消息批量封装为埋点数据包,并将埋点数据包上报至服务端。

需要说明的是,上述实施例提供的埋点数据上报系统在执行埋点数据上报方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的埋点数据上报系统与埋点数据上报方法实施例属于同一构思,其体现实现过程详见方法实施例,这里不再赘述。

上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。

在本申请实施例中,埋点数据上报系统首先实时监听并获取业务主线程产生的埋点消息,得到业务主线程埋点消息,然后根据业务主线程埋点消息的消息标识符缓存业务主线程埋点消息到埋点副线程的目标队列中;业务主线程是用来处理系统业务功能的线程,埋点副线程是用来处理埋点数据的线程,最后根据目标队列的队列状态将目标队列的埋点消息批量封装为埋点数据包,将该数据包上报服务端。由于本申请通过缓存业务主线程埋点消息到埋点副线程的目标队列中,使得埋点消息的处理过程由埋点副线程专门负责,从而避免了业务主线程处理埋点消息而存在用户触发的相关业务功能出现响应延迟,提升了系统平台的时效性。

在一个实施例中,提出了一种计算机设备,设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:

实时监听并获取业务主线程产生的埋点消息,得到业务主线程埋点消息;

根据业务主线程埋点消息的消息标识符缓存业务主线程埋点消息到埋点副线程的目标队列中;其中,

业务主线程是用来处理系统业务功能的线程,埋点副线程是用来处理埋点数据的线程;

根据目标队列的队列状态将目标队列的埋点消息批量封装为埋点数据包,并将埋点数据包上报至服务端。

在一个实施例中,处理器执行实时监听并获取业务主线程产生的埋点消息之前时,还执行以下操作:

通过HTML5 Web Workers框架构建目标线程;

定义数组对象;

将数组对象与目标线程进行集成处理,得到埋点副线程;

将埋点副线程融合至当前系统的web页面中。

在一个实施例中,处理器执行实时监听并获取业务主线程产生的埋点消息,得到业务主线程埋点消息时,具体执行以下操作:

在监听到业务主线程产生的消息发送指令时,基于消息发送指令接收来自业务主线程发送的消息;

创建被动消息标识符;

将被动消息标识符与接收来自业务主线程发送的消息进行封装,得到业务主线程埋点消息。

在一个实施例中,处理器执行实时监听并获取业务主线程产生的埋点消息,得到业务主线程埋点消息时,具体执行以下操作:

在监听到业务主线程的消息销毁指令时,基于消息销毁指令调用设置在业务主线程上的消息读取服务;

创建主动消息标识符;

获取来自消息读取服务响应的埋点消息;

将主动消息标识符与来自消息读取服务响应的埋点消息进行封装,得到业务主线程埋点消息。

在一个实施例中,处理器在执行根据业务主线程埋点消息的消息标识符缓存业务主线程埋点消息到埋点副线程的目标队列中时,具体执行以下操作:

当业务主线程埋点消息的消息标识符为被动消息标识符时,分析监听到的埋点消息对应的目标元素数量;

确定埋点副线程中的目标队列内可存位置数量;

当目标元素数量大于可存位置数量时,根据目标元素数量创建多个链表元素;

将多个链表元素插入到由指针指向的目标队列的尾部,得到更新存储位置后的目标队列;

将监听到的埋点消息保存至更新存储位置后的目标队列中。

在一个实施例中,处理器执行根据目标队列的队列状态将目标队列的埋点消息批量封装为埋点数据包时,具体执行以下操作:

当目标队列的队列状态为非空闲状态时,对目标队列中的数据进行逐一采样,得到采样数据;

将采样数据进行批量封装,得到埋点数据包;

或者,

当目标队列的队列状态为空闲状态时,继续执行根据业务主线程埋点消息的消息标识符缓存业务主线程埋点消息到埋点副线程的目标队列中的步骤。

在一个实施例中,处理器还执行以下操作:

计算目标队列中元素数量;

当目标队列中元素数量大于等于预设阈值时,确定目标队列的队列状态为非空闲状态;

或者,

当目标队列中元素数量小于预设阈值时,确定目标队列的队列状态为空闲状态。

在本申请实施例中,埋点数据上报系统首先实时监听并获取业务主线程产生的埋点消息,得到业务主线程埋点消息,然后根据业务主线程埋点消息的消息标识符缓存业务主线程埋点消息到埋点副线程的目标队列中;业务主线程是用来处理系统业务功能的线程,埋点副线程是用来处理埋点数据的线程,最后根据目标队列的队列状态将目标队列的埋点消息批量封装为埋点数据包,将该数据包上报服务端。由于本申请通过缓存业务主线程埋点消息到埋点副线程的目标队列中,使得埋点消息的处理过程由埋点副线程专门负责,从而避免了业务主线程处理埋点消息而存在用户触发的相关业务功能出现响应延迟,提升了系统平台的时效性。

在一个实施例中,提出了一种存储有计算机可读指令的介质,该计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行以下步骤:

实时监听并获取业务主线程产生的埋点消息,得到业务主线程埋点消息;

根据业务主线程埋点消息的消息标识符缓存业务主线程埋点消息到埋点副线程的目标队列中;其中,

业务主线程是用来处理系统业务功能的线程,埋点副线程是用来处理埋点数据的线程;

根据目标队列的队列状态将目标队列的埋点消息批量封装为埋点数据包,并将埋点数据包上报至服务端。

在一个实施例中,处理器执行实时监听并获取业务主线程产生的埋点消息之前时,还执行以下操作:

通过HTML5 Web Workers框架构建目标线程;

定义数组对象;

将数组对象与目标线程进行集成处理,得到埋点副线程;

将埋点副线程融合至当前系统的web页面中。

在一个实施例中,处理器执行实时监听并获取业务主线程产生的埋点消息,得到业务主线程埋点消息时,具体执行以下操作:

在监听到业务主线程产生的消息发送指令时,基于消息发送指令接收来自业务主线程发送的消息;

创建被动消息标识符;

将被动消息标识符与接收来自业务主线程发送的消息进行封装,得到业务主线程埋点消息。

在一个实施例中,处理器执行实时监听并获取业务主线程产生的埋点消息,得到业务主线程埋点消息时,具体执行以下操作:

在监听到业务主线程的消息销毁指令时,基于消息销毁指令调用设置在业务主线程上的消息读取服务;

创建主动消息标识符;

获取来自消息读取服务响应的埋点消息;

将主动消息标识符与来自消息读取服务响应的埋点消息进行封装,得到业务主线程埋点消息。

在一个实施例中,处理器在执行根据业务主线程埋点消息的消息标识符缓存业务主线程埋点消息到埋点副线程的目标队列中时,具体执行以下操作:

当业务主线程埋点消息的消息标识符为被动消息标识符时,分析监听到的埋点消息对应的目标元素数量;

确定埋点副线程中的目标队列内可存位置数量;

当目标元素数量大于可存位置数量时,根据目标元素数量创建多个链表元素;

将多个链表元素插入到由指针指向的目标队列的尾部,得到更新存储位置后的目标队列;

将监听到的埋点消息保存至更新存储位置后的目标队列中。

在一个实施例中,处理器执行根据目标队列的队列状态将目标队列的埋点消息批量封装为埋点数据包时,具体执行以下操作:

当目标队列的队列状态为非空闲状态时,对目标队列中的数据进行逐一采样,得到采样数据;

将采样数据进行批量封装,得到埋点数据包;

或者,

当目标队列的队列状态为空闲状态时,继续执行根据业务主线程埋点消息的消息标识符缓存业务主线程埋点消息到埋点副线程的目标队列中的步骤。

在一个实施例中,处理器还执行以下操作:

计算目标队列中元素数量;

当目标队列中元素数量大于等于预设阈值时,确定目标队列的队列状态为非空闲状态;

或者,

当目标队列中元素数量小于预设阈值时,确定目标队列的队列状态为空闲状态。

在本申请实施例中,埋点数据上报系统首先实时监听并获取业务主线程产生的埋点消息,得到业务主线程埋点消息,然后根据业务主线程埋点消息的消息标识符缓存业务主线程埋点消息到埋点副线程的目标队列中;业务主线程是用来处理系统业务功能的线程,埋点副线程是用来处理埋点数据的线程,最后根据目标队列的队列状态将目标队列的埋点消息批量封装为埋点数据包,将该数据包上报服务端。由于本申请通过缓存业务主线程埋点消息到埋点副线程的目标队列中,使得埋点消息的处理过程由埋点副线程专门负责,从而避免了业务主线程处理埋点消息而存在用户触发的相关业务功能出现响应延迟,提升了系统平台的时效性。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等非易失性介质,或随机存储记忆体(RandomAccess Memory,RAM)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

相关技术
  • 一种埋点数据上报方法、装置及计算机可读存储介质
  • 数据回溯与上报方法、装置、计算机设备及存储介质
  • 数据上报方法、装置、计算机设备及存储介质
  • 一种元数据管理方法、系统、设备及计算机可读存储介质
  • 一种磁盘数据上云方法、系统、设备及计算机存储介质
  • 一种基于有效埋点的数据上报方法、装置、计算机设备及介质
  • 埋点信息的上报方法、埋点方法、装置、介质、电子设备
技术分类

06120115981089