CN112286653A - 提高对采集数据的处理效率的方法、装置以及存储介质 - Google Patents
提高对采集数据的处理效率的方法、装置以及存储介质 Download PDFInfo
- Publication number
- CN112286653A CN112286653A CN202011092347.5A CN202011092347A CN112286653A CN 112286653 A CN112286653 A CN 112286653A CN 202011092347 A CN202011092347 A CN 202011092347A CN 112286653 A CN112286653 A CN 112286653A
- Authority
- CN
- China
- Prior art keywords
- data
- queue
- sending
- analyzed
- acquired
- 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 114
- 238000012545 processing Methods 0.000 title claims abstract description 67
- 238000013500 data storage Methods 0.000 claims abstract description 92
- 230000008569 process Effects 0.000 claims description 41
- 230000001360 synchronised effect Effects 0.000 claims description 9
- 230000006870 function Effects 0.000 claims description 8
- 230000004044 response Effects 0.000 claims description 8
- 230000005540 biological transmission Effects 0.000 description 37
- 238000010586 diagram Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 5
- 238000007405 data analysis Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 239000011230 binding agent Substances 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 238000005034 decoration Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000005538 encapsulation Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 238000011112 process operation Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000013024 troubleshooting Methods 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
- 239000011800 void material Substances 0.000 description 1
Images
Classifications
-
- 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种提高对采集数据的处理效率的方法、装置以及存储介质。其中,该方法包括:获取采集到的与应用程序相关的采集数据;将采集数据存储至数据存储队列,其中数据存储队列为单线程单队列形式;对数据存储队列中的采集数据进行处理,确定需要进行分析的待分析数据;以及响应于数据发送的触发操作,将待分析数据发送至数据发送队列,其中数据发送队列为单线程单队列形式。
Description
技术领域
本申请涉及数据处理技术领域,特别是涉及一种提高对采集数据的处理效率的方法、装置以及存储介质。
背景技术
android多进程:android中由于单个进程有资源和内存限制,当整个app在单个进程使用的时候容易导致app资源和内存不够,当创建多个进程的时候能够保障各个进程合理分配资源和内存,避免资源和内存集中在单个进程。android多线程:google的android操作系统基于linux系统进行开发,保留了linux系统上的多线程操作;在上层用户接口使用java开发,也有同java类似的多线程方案;android还有自身的Handler机制。android大数据SDK数据操作:由于大数据SDK需要实时、高效、准确的发送,对SDK在多进程、多线程下数据操作要求比较高。现有技术中,android多进程方案大多采用基于linux系统上进程通信的方式有socket、namedpipe命名管道、signal信号、share memory共享内存、文件共享等;基于android平台又提供了Binder机制等;还有第三方开源平台的Andromeda等解决方案。android多线程方案采用基于java的多线程Thread方案、基于android提供的Handler方案、基于底层的Pthreads方案。参考图2所示,android大数据SDK数据操作一般通过单线程中实现一个循环,来实现数据的进出,来实现数据的存储和发送。
然而,基于linux的方案使用难度大,使用繁琐,一般开发人员不易操作;基于第三方开源平台的Andromeda框架虽然使用方便易上手,但是代码量比较大,不适合普通SDK使用。基于android平台的Binder机制使用方便,但是操作难度大,易用性不太方便。基于java平台的多线程方案灵活性高,但是易出现死锁等增加排查难度。单线程循环效率低下,当数据量特别大的时候易阻塞;在数据实时性、准确性上有一定的缺陷;在跨进程操作时数据同步、标记位同步易出错。综上所述,现有技术中对采集到的数据进行处理的效率低下。
针对上述的现有技术中存在的对采集数据的存储和发送效率低下的技术问题,目前尚未提出有效的解决方案。
发明内容
本公开的实施例提供了一种提高对采集数据的处理效率的方法、装置以及存储介质,以至少解决现有技术中存在的提高对采集数据的处理效率的方法、装置以及存储介质。
根据本公开实施例的一个方面,提供了一种提高对采集数据的存储和发送效率的方法,包括:获取采集到的与应用程序相关的采集数据;将采集数据存储至数据存储队列,其中数据存储队列为单线程单队列形式;对数据存储队列中的采集数据进行处理,确定需要进行分析的待分析数据;以及响应于数据发送的触发操作,将待分析数据发送至数据发送队列,其中数据发送队列为单线程单队列形式。
根据本公开实施例的另一个方面,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时由处理器执行以上任意一项所述的方法。
根据本公开实施例的另一个方面,还提供了一种提高对采集数据的存储和发送效率的装置,包括:数据获取模块,用于获取采集到的与应用程序相关的采集数据;数据存储模块,用于将采集数据存储至数据存储队列,其中数据存储队列为单线程单队列形式;数据处理模块,用于对数据存储队列中的采集数据进行处理,确定需要进行分析的待分析数据;以及数据发送模块,用于响应于数据发送的触发操作,将待分析数据发送至数据发送队列,其中数据发送队列为单线程单队列形式。
根据本公开实施例的另一个方面,还提供了一种提高对采集数据的存储和发送效率的装置,包括:处理器;以及存储器,与处理器连接,用于为处理器提供处理以下处理步骤的指令:获取采集到的与应用程序相关的采集数据;将采集数据存储至数据存储队列,其中数据存储队列为单线程单队列形式;对数据存储队列中的采集数据进行处理,确定需要进行分析的待分析数据;以及响应于数据发送的触发操作,将待分析数据发送至数据发送队列,其中数据发送队列为单线程单队列形式。
在本公开实施例中,在SDK将采集数据进行存储和发送的过程中,本方案可以通过单线程单队列形式的数据存储队列存储采集数据,然后通过单线程单队列形式的数据发送队列发送待分析数据。从而,与现有技术中采用多进程、多线程的方式相比,本方案在数据存储和发送的过程中采用单线程单队列的形式可以简化多进程、多线程使用过程,方便业务使用。此外,本方案与现有的采用单线程循环存储发送数据相比,还可以达到提高数据存储和发送效率的技术效果。进而解决了现有技术中存在的对采集数据的存储和发送效率低下的技术问题。
附图说明
此处所说明的附图用来提供对本公开的进一步理解,构成本申请的一部分,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。在附图中:
图1是用于实现根据本公开实施例1所述的方法的计算设备的硬件结构框图;
图2是根据本公开实施例1所述的现有技术中的单线程循环实现数据存储和发送的流程示意图;
图3是根据本公开实施例1的第一个方面所述的提高对采集数据的存储和发送效率的方法的流程示意图;
图4是根据本公开实施例1所述的存储和发送模型的结构示意图;
图5是根据本公开实施例1所述的数据处理流程的示意图;
图6是根据本公开实施例2所述的提高对采集数据的存储和发送效率的装置的示意图;以及
图7是根据本公开实施例3所述的提高对采集数据的存储和发送效率的装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本公开的技术方案,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本公开一部分的实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本公开保护的范围。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
根据本实施例,还提供了一种提高对采集数据的存储和发送效率的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本实施例所提供的方法实施例可以在移动终端、计算机终端、服务器或者类似的计算设备中执行。图1示出了一种用于实现提高对采集数据的存储和发送效率的方法的计算设备的硬件结构框图。如图1所示,计算设备可以包括一个或多个处理器(处理器可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器、以及用于通信功能的传输装置。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算设备还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
应当注意到的是上述一个或多个处理器和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算设备中的其他元件中的任意一个内。如本公开实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器可用于存储应用软件的软件程序以及模块,如本公开实施例中的提高对采集数据的存储和发送效率的方法对应的程序指令/数据存储装置,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的提高对采集数据的存储和发送效率的方法。存储器可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至计算设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算设备的通信供应商提供的无线网络。在一个实例中,传输装置包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算设备的用户界面进行交互。
此处需要说明的是,在一些可选实施例中,上述图1所示的计算设备可以包括硬件元件(包括电路)、软件元件(包括存储在计算机可读介质上的计算机代码)、或硬件元件和软件元件两者的结合。应当指出的是,图1仅为特定具体实例的一个实例,并且旨在示出可存在于上述计算设备中的部件的类型。
在上述运行环境下,根据本实施例的第一个方面,提供了一种提高对采集数据的存储和发送效率的方法,该方法例如可以应用到对终端设备中的数据信息进行采集的SDK中,该SDK例如包括数据采集模型(或模块)和数据存储和发送模型(或模块),通过数据采集模型可以采集数据,通过数据存储和发送模型可以对采集的数据进行存储和发送,其中该方法例如可以应用到SDK的该数据存储和发送模型。其中该终端设备例如但不限于是智能手机、平板、pad等,并且该终端设备的操作系统优选为android系统。图3示出了该方法的流程示意图,参考图3所示,该方法包括:
S302:获取采集到的与应用程序相关的采集数据;
S304:将采集数据存储至数据存储队列,其中数据存储队列为单线程单队列形式;
S306:对数据存储队列中的采集数据进行处理,确定需要进行分析的待分析数据;以及
S308:响应于数据发送的触发操作,将待分析数据发送至数据发送队列,其中数据发送队列为单线程单队列形式。
正如背景技术中所述的,单线程循环效率低下,当数据量特别大的时候易阻塞;在数据实时性、准确性上有一定的缺陷;在跨进程操作时数据同步、标记位同步易出错。综上所述,现有技术中对采集到的数据进行处理的效率低下。
针对背景技术中存在的技术问题,本实施例技术方案在步骤S302中,数据采集SDK首先获取采集到的与应用程序相关的采集数据。其中,数据采集SDK例如可以部署在终端设备(例如:智能手机)中,该终端设备的操作系统例如可以是android系统,通过SDK可以对终端设备上运行的应用程序的数据进行采集、存储以及发送至数据分析方进行数据分析,在这种情况下该SDK的数据存储和发送模型首先获取采集数据。
进一步地,在步骤S304中,SDK的数据存储和发送模型将采集数据存储至数据存储队列,其中数据存储队列为单线程单队列形式。参考图4所示,该数据存储和发送模型包括数据存储队列,其中该数据存储队列包括数据存储线程和队列,并且线程例如可以是单线程,队列例如可以是单队列。通过单线程单队列的形式存储采集数据可以简化多进程、多线程使用过程,方便业务使用。
进一步地,在步骤S306中,SDK的数据存储和发送模型对数据存储队列中的采集数据进行处理,确定需要进行分析的待分析数据。其中,采集数据例如可以分为需要进行分析的待分析数据(例如:用户在应用程序中的点击量、用户信息等数据)、生命周期数据(例如:应用程序APP从打开到关闭的数据)以及永久生效的持久数据(例如:应用程序中持久有效的数据)等。SDK的数据存储和发送模型可以从数据存储队列中提取该采集数据进行分析,从采集数据中确定该待分析数据。
最终,在步骤S308中,SDK的数据存储和发送模型响应于数据发送的触发操作,将待分析数据发送至数据发送队列。例如:数据分析方(例如数据平台)需要对该待分析数据进行分析,因此可以数据分析方可以发送数据获取请求或者在数据分析方与该SDK通信之后自动触发数据发送的操作,将待分析数据发送至数据发送队列。参考图4所示,该SDK的数据存储和发送模型还可以包括数据发送队列,该数据发送队列可以包括数据发送线程和队列,其中该线程可以是单线程,该队列可以是单队列,并且该队列可以是串行队列。此外,在数据发送的过程中可以通过使用Handler机制来实现数据的有序发送。通过单线程单队列的形式发送待分析数据可以简化多进程、多线程使用过程,方便业务使用。
从而通过这种方式,在SDK将采集数据进行存储和发送的过程中,本方案可以通过单线程单队列形式的数据存储队列存储采集数据,然后通过单线程单队列形式的数据发送队列发送待分析数据。从而,与现有技术中采用多进程、多线程的方式相比,本方案在数据存储和发送的过程中采用单线程单队列的形式可以简化多进程、多线程使用过程,方便业务使用。此外,本方案与现有的采用单线程循环存储发送数据相比,还可以达到提高数据存储和发送效率的技术效果。进而解决了现有技术中存在的对采集数据的存储和发送效率低下的技术问题。
可选地,该方法对数据存储队列中的采集数据进行处理,包括:利用跨进程和多线程的方式对数据存储队列中的采集数据进行同步处理。
具体地,SDK采集的采集数据可能是多个应用程序中的数据,并且还可能是同一个应用程序中不同进程或线程产生的数据。因此,在对数据存储队列中的采集数据进行处理需要保证数据的同步,例如保证相同线程的数据同步,跨进程的数据同步等。为了实现数据的同步,参考图4所示,SDK的数据存储和发送模型还包括跨进程、多线程的数据处理功能,利用跨进程和多线程的方式对数据存储队列中的采集数据进行同步处理。因此,通过这种方式可以保障采集的数据可以同步,并且还保障多进程、多线程下数据的保存、发送稳定和不易丢数据。
可选地,该方法中数据存储队列包括高优先级单线程串行队列、中优先级单线程串行队列以及普通单线程串行队列,将采集数据存储至数据存储队列,包括:根据采集数据的优先级,将采集数据存储至高优先级单线程串行队列;或者根据采集数据的优先级,将采集数据存储至中优先级单线程串行队列;或者根据采集数据的优先级,将采集数据存储至普通单线程串行队列。
具体地,为了实现数据分级管理,本方案还可以把采集数据操作按照优先级操作。在具体实现上,参考图4所示,数据存储队列可以包含三个单线程串行队列,分别为高优先级单线程串行队列、中优先级单线程串行队列、普通单线程串行队列。在将采集数据存储至数据存储队列的操作中,可以根据采集数据的优先级将数据存储至不同的队列,例如:将高优先级的数据(例如:初始化init接口、对外接口类型的set数据)存储至高优先级串行队列,将中优先级数据存储至中优先级队列(例如:重要节点事件startup、pageview、end),将普通数据(例如:track事件、热图事件、全埋点、可视化等)存储至普通队列。从而通过这种方式,实现数据分级管理,把数据操作按照优先级操作,避免单一线程造成的数据阻塞。
此外,需要补充说明的是,单线程串行队列的实现:通过ExecutorService方式来创建一个单线程队列;通过FutureTask来实现线程的同步。
Private static ExecutorService highService=Executors.newSingleThreadExecutor();
异步线程操作:
public static void asyncHighPriorityExecutor(Runnable runnable){
highService.execute(runnable);
}
同步线程操作:
具体使用方式
高优先级
中优先级
普通优先级
可选地,该方法对采集数据进行同步处理,包括:通过ContentProvider组件实现跨进程处理中的采集数据同步;以及通过getWritableDatabase函数实现多线程处理中的采集数据同步。
具体地,在对采集数据进行同步处理的操作中,跨进程通过使用android的四大组件ContentProvider来保障数据同步,通过getWritableDatabase函数实现多线程处理中的采集数据同步。在一个具体实例中,可以将待分析数据存储至sqlite数据库,sqlite的数据库通过一个数据连接getWritableDatabase进行操作来保证不同线程的数据可以同步。
可选地,该方法实现多线程处理中的采集数据同步,还包括:通过SharedPreferences实现多线程处理中的采集数据同步;以及通过synchronized实现多线程处理中的采集数据同步。
具体地,采集数据还可能是键值对的形式,该方法还可以将键值对数据通过SharedPreferences来保障内部线程同步。此外,对于采集数据中的内部数据,可以将内部数据添加通过synchronized来保障数据跨线程同步,将数据保存到数据库。
此外,对于应用程序的永久生效持久数据,通过SharedPreferences和数据库DB来保存;单生命周期数据通过实现一个Map来进行数据内存数据存储。
可选地,该方法响应于数据发送的触发操作,将待分析数据发送至数据发送队列,包括:将待分析数据存储至预设数据库;以及响应于触发操作,将数据库中的待分析数据发送至数据发送队列。
具体地,参考图4所示,在响应于数据发送的触发操作,将待分析数据发送至数据发送队列的操作中,首先将待分析数据存储至预设数据库,例如sqlite数据库。然后,响应于触发操作,将sqlite数据库中的待分析数据发送至数据发送队列。
可选地,该方法还包括:响应于数据获取的获取指令,通过预先设置的数据接口将采集数据进行发送。
具体地,参考图5所示,本方案数据存储和发送模型还可以封装用于导出数据的接口(get接口),用户可以通过该接口直接获取采集数据。此外,本方案的数据存储和发送模型除了可以获取采集到的采集数据,还可以通过手动接口(set接口)设置数据,例如:由工作人员设置需要存储与发送的数据,然后存储至数据存储线程和队列。从而,通过对外封装接口可以使得模型使用更加便捷,减少了外层调用的使用难度。
在具体实现上,get接口和set接口可以封装调用,具体地:
set接口封装调用
get接口封装调用
综上所述,本方案的SDK数据存储和发送模型能够提高数据存储效率、保障数据存储准确率;多线程模型,在数据存储的同时,也能够进行数据发送,避免数据单线程排队存储和发送;当app被主动杀死或者异常退出的时候,由于多线程模型效率高,能够尽可能保障数据在本地的存储,避免数据丢失,提高了采集数据的准确率。此外,该模型跨进程、多线程对内实现,对外封装,避免了大数据在跨进程、多线程下的同步问题。减少了使用者对多进程、多线程数据的操作困惑,减少了外层调用方的使用难度。
此外,参考图1所示,根据本实施例的第二个方面,提供了一种存储介质。所述存储介质包括存储的程序,其中,在所述程序运行时由处理器执行以上任意一项所述的方法。
从而根据本实施例,在SDK将采集数据进行存储和发送的过程中,本方案可以通过单线程单队列形式的数据存储队列存储采集数据,然后通过单线程单队列形式的数据发送队列发送待分析数据。从而,与现有技术中采用多进程、多线程的方式相比,本方案在数据存储和发送的过程中采用单线程单队列的形式可以简化多进程、多线程使用过程,方便业务使用。此外,本方案与现有的采用单线程循环存储发送数据相比,还可以达到提高数据存储和发送效率的技术效果。进而解决了现有技术中存在的对采集数据的存储和发送效率低下的技术问题。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例2
图6示出了根据本实施例所述的提高对采集数据的存储和发送效率的装置600,该装置600与根据实施例1的第一个方面所述的方法相对应。参考图6所示,该装置600包括:数据获取模块610,用于获取采集到的与应用程序相关的采集数据;数据存储模块620,用于将采集数据存储至数据存储队列,其中数据存储队列为单线程单队列形式;数据处理模块630,用于对数据存储队列中的采集数据进行处理,确定需要进行分析的待分析数据;以及数据发送模块640,用于响应于数据发送的触发操作,将待分析数据发送至数据发送队列,其中数据发送队列为单线程单队列形式。
可选地,数据处理模块630,包括:同步子模块,用于利用跨进程和多线程的方式对数据存储队列中的采集数据进行同步处理。
可选地,数据存储队列包括高优先级单线程串行队列、中优先级单线程串行队列以及普通单线程串行队列,并且数据存储模块620,包括:第一存储子模块,用于根据采集数据的优先级,将采集数据存储至高优先级单线程串行队列;或者第二存储子模块,用于根据采集数据的优先级,将采集数据存储至中优先级单线程串行队列;或者第三存储子模块,用于根据采集数据的优先级,将采集数据存储至普通单线程串行队列。
可选地,同步子模块,包括:跨进程同步单元,用于通过ContentProvider组件实现跨进程处理中的采集数据同步;以及多线程同步单元,用于通过getWritableDatabase函数实现多线程处理中的采集数据同步。
可选地,装置600还包括:第一处理子单元,用于通过SharedPreferences实现多线程处理中的采集数据同步;以及第二处理子单元,用于通过synchronized实现多线程处理中的采集数据同步。
可选地,数据发送模块640,包括:数据库存储子模块,用于将待分析数据存储至预设数据库;以及发送子模块,用于响应于触发操作,将数据库中的待分析数据发送至数据发送队列。
可选地,装置600还包括接口发送模块,用于响应于数据获取的获取指令,通过预先设置的数据接口将采集数据进行发送。
从而根据本实施例,在SDK将采集数据进行存储和发送的过程中,本方案可以通过单线程单队列形式的数据存储队列存储采集数据,然后通过单线程单队列形式的数据发送队列发送待分析数据。从而,与现有技术中采用多进程、多线程的方式相比,本方案在数据存储和发送的过程中采用单线程单队列的形式可以简化多进程、多线程使用过程,方便业务使用。此外,本方案与现有的采用单线程循环存储发送数据相比,还可以达到提高数据存储和发送效率的技术效果。进而解决了现有技术中存在的对采集数据的存储和发送效率低下的技术问题。
实施例3
图7示出了根据本实施例所述的提高对采集数据的存储和发送效率的装置700,该装置700与根据实施例1的第一个方面所述的方法相对应。参考图7所示,该装置700包括:处理器710;以及存储器720,与处理器710连接,用于为处理器710提供处理以下处理步骤的指令:获取采集到的与应用程序相关的采集数据;将采集数据存储至数据存储队列,其中数据存储队列为单线程单队列形式;对数据存储队列中的采集数据进行处理,确定需要进行分析的待分析数据;以及响应于数据发送的触发操作,将待分析数据发送至数据发送队列,其中数据发送队列为单线程单队列形式。
可选地,对数据存储队列中的采集数据进行处理,包括:利用跨进程和多线程的方式对数据存储队列中的采集数据进行同步处理。
可选地,数据存储队列包括高优先级单线程串行队列、中优先级单线程串行队列以及普通单线程串行队列,将采集数据存储至数据存储队列,包括:根据采集数据的优先级,将采集数据存储至高优先级单线程串行队列;或者根据采集数据的优先级,将采集数据存储至中优先级单线程串行队列;或者根据采集数据的优先级,将采集数据存储至普通单线程串行队列。
可选地,对采集数据进行同步处理,包括:通过ContentProvider组件实现跨进程处理中的采集数据同步;以及通过getWritableDatabase函数实现多线程处理中的采集数据同步。
可选地,响应于数据发送的触发操作,将待分析数据发送至数据发送队列,包括:将待分析数据存储至预设数据库;以及响应于触发操作,将数据库中的待分析数据发送至数据发送队列。
可选地,存储器720还用于为处理器710提供处理以下处理步骤的指令:响应于数据获取的获取指令,通过预先设置的数据接口将采集数据进行发送。
从而根据本实施例,在SDK将采集数据进行存储和发送的过程中,本方案可以通过单线程单队列形式的数据存储队列存储采集数据,然后通过单线程单队列形式的数据发送队列发送待分析数据。从而,与现有技术中采用多进程、多线程的方式相比,本方案在数据存储和发送的过程中采用单线程单队列的形式可以简化多进程、多线程使用过程,方便业务使用。此外,本方案与现有的采用单线程循环存储发送数据相比,还可以达到提高数据存储和发送效率的技术效果。进而解决了现有技术中存在的对采集数据的存储和发送效率低下的技术问题。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种提高对采集数据的存储和发送效率的方法,其特征在于,包括:
获取采集到的与应用程序相关的采集数据;
将所述采集数据存储至数据存储队列,其中所述数据存储队列为单线程单队列形式;
对所述数据存储队列中的采集数据进行处理,确定需要进行分析的待分析数据;以及
响应于数据发送的触发操作,将所述待分析数据发送至数据发送队列,其中所述数据发送队列为单线程单队列形式。
2.根据权利要求1所述的方法,其特征在于,对所述数据存储队列中的采集数据进行处理,包括:
利用跨进程和多线程的方式对所述数据存储队列中的采集数据进行同步处理。
3.根据权利要求1所述的方法,其特征在于,所述数据存储队列包括高优先级单线程串行队列、中优先级单线程串行队列以及普通单线程串行队列,将所述采集数据存储至数据存储队列,包括:
根据所述采集数据的优先级,将所述采集数据存储至所述高优先级单线程串行队列;或者
根据所述采集数据的优先级,将所述采集数据存储至所述中优先级单线程串行队列;或者
根据所述采集数据的优先级,将所述采集数据存储至所述普通单线程串行队列。
4.根据权利要求2所述的方法,其特征在于,对所述采集数据进行同步处理,包括:
通过ContentProvider组件实现跨进程处理中的采集数据同步;以及
通过getWritableDatabase函数实现多线程处理中的采集数据同步。
5.根据权利要求4所述的方法,其特征在于,实现多线程处理中的采集数据同步,还包括:
通过SharedPreferences实现多线程处理中的采集数据同步;以及
通过synchronized实现多线程处理中的采集数据同步。
6.根据权利要求1所述的方法,其特征在于,响应于数据发送的触发操作,将所述待分析数据发送至数据发送队列,包括:
将所述待分析数据存储至预设数据库;以及
响应于所述触发操作,将所述数据库中的所述待分析数据发送至所述数据发送队列。
7.根据权利要求1所述的方法,其特征在于,还包括:响应于数据获取的获取指令,通过预先设置的数据接口将所述采集数据进行发送。
8.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时由处理器执行权利要求1至7中任意一项所述的方法。
9.一种提高对采集数据的存储和发送效率的装置,其特征在于,包括:
数据获取模块,用于获取采集到的与应用程序相关的采集数据;
数据存储模块,用于将所述采集数据存储至数据存储队列,其中所述数据存储队列为单线程单队列形式;
数据处理模块,用于对所述数据存储队列中的采集数据进行处理,确定需要进行分析的待分析数据;以及
数据发送模块,用于响应于数据发送的触发操作,将所述待分析数据发送至数据发送队列,其中所述数据发送队列为单线程单队列形式。
10.一种提高对采集数据的存储和发送效率的装置,其特征在于,包括:
处理器;以及
存储器,与所述处理器连接,用于为所述处理器提供处理以下处理步骤的指令:
获取采集到的与应用程序相关的采集数据;
将所述采集数据存储至数据存储队列,其中所述数据存储队列为单线程单队列形式;
对所述数据存储队列中的采集数据进行处理,确定需要进行分析的待分析数据;以及
响应于数据发送的触发操作,将所述待分析数据发送至数据发送队列,其中所述数据发送队列为单线程单队列形式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011092347.5A CN112286653A (zh) | 2020-10-13 | 2020-10-13 | 提高对采集数据的处理效率的方法、装置以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011092347.5A CN112286653A (zh) | 2020-10-13 | 2020-10-13 | 提高对采集数据的处理效率的方法、装置以及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112286653A true CN112286653A (zh) | 2021-01-29 |
Family
ID=74496130
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011092347.5A Pending CN112286653A (zh) | 2020-10-13 | 2020-10-13 | 提高对采集数据的处理效率的方法、装置以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112286653A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030037117A1 (en) * | 2001-08-16 | 2003-02-20 | Nec Corporation | Priority execution control method in information processing system, apparatus therefor, and program |
US20040252709A1 (en) * | 2003-06-11 | 2004-12-16 | Fineberg Samuel A. | System having a plurality of threads being allocatable to a send or receive queue |
KR20150095083A (ko) * | 2014-02-12 | 2015-08-20 | 주식회사 엘지유플러스 | 전송 큐 관리가 가능한 무선 장치 및 이를 이용한 전송 큐 관리 방법 |
CN106375103A (zh) * | 2015-07-23 | 2017-02-01 | 杭州海康威视数字技术股份有限公司 | 一种告警数据采集和发送方法 |
CN107589990A (zh) * | 2017-10-26 | 2018-01-16 | 郑州云海信息技术有限公司 | 一种基于线程池的数据通讯的方法及系统 |
-
2020
- 2020-10-13 CN CN202011092347.5A patent/CN112286653A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030037117A1 (en) * | 2001-08-16 | 2003-02-20 | Nec Corporation | Priority execution control method in information processing system, apparatus therefor, and program |
US20040252709A1 (en) * | 2003-06-11 | 2004-12-16 | Fineberg Samuel A. | System having a plurality of threads being allocatable to a send or receive queue |
KR20150095083A (ko) * | 2014-02-12 | 2015-08-20 | 주식회사 엘지유플러스 | 전송 큐 관리가 가능한 무선 장치 및 이를 이용한 전송 큐 관리 방법 |
CN106375103A (zh) * | 2015-07-23 | 2017-02-01 | 杭州海康威视数字技术股份有限公司 | 一种告警数据采集和发送方法 |
CN107589990A (zh) * | 2017-10-26 | 2018-01-16 | 郑州云海信息技术有限公司 | 一种基于线程池的数据通讯的方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108062367B (zh) | 一种数据列表的上传方法及其终端 | |
CN110489391B (zh) | 一种数据处理方法及相关设备 | |
CN111767143B (zh) | 交易数据处理方法、装置、设备及系统 | |
CN101084488B (zh) | 用于调试在多核架构中执行的多线程程序的方法和系统 | |
TWI672027B (zh) | 網頁中的資料處理方法、裝置及系統 | |
WO2019051948A1 (zh) | 监控数据的处理方法、设备、服务器及存储介质 | |
CN110806931A (zh) | 分布式服务的调用链路跟踪实现方法、装置及电子设备 | |
US20180129519A1 (en) | Method and system for emulating application running in secondary device on primary device | |
WO2019075845A1 (zh) | 链路调用关系的构建方法、装置、计算机设备及存储介质 | |
US20160147271A1 (en) | Powering nodes | |
CN114363144A (zh) | 一种面向分布式系统的故障信息关联上报方法及相关设备 | |
CN112286653A (zh) | 提高对采集数据的处理效率的方法、装置以及存储介质 | |
CN113076231A (zh) | 服务器应用场景设置方法、系统、终端及存储介质 | |
WO2020073200A1 (zh) | 调试程序的方法和系统 | |
CN116150273A (zh) | 数据处理方法、装置、计算机设备及存储介质 | |
WO2018233365A1 (zh) | 一种信息查询方法、终端、设备以及存储介质 | |
CN115655304A (zh) | 一种imu模块标定数据批量化自动采集方法及装置 | |
CN114564249A (zh) | 推荐调度引擎、推荐调度方法及计算机可读存储介质 | |
CN114945020A (zh) | 一种基于云平台的云边协同数据接入方法以及系统 | |
CN108809763B (zh) | 一种网络性能参数采集方法、终端装置及存储介质 | |
CN110688231B (zh) | 读写请求统计信息的处理方法、装置和系统 | |
CN117493065B (zh) | 处理器信息的处理方法和装置,存储介质及电子设备 | |
CN110109783A (zh) | 多核系统的调试方法和终端设备 | |
CN116185609A (zh) | 裸金属服务器的管理方法、装置及可读存储介质 | |
CN107991930A (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 |