CN112698962A - 数据处理方法、装置、电子设备及存储介质 - Google Patents
数据处理方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN112698962A CN112698962A CN202011622579.7A CN202011622579A CN112698962A CN 112698962 A CN112698962 A CN 112698962A CN 202011622579 A CN202011622579 A CN 202011622579A CN 112698962 A CN112698962 A CN 112698962A
- Authority
- CN
- China
- Prior art keywords
- data
- work queue
- processed
- pool
- computing
- 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
-
- 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]
-
- 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/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
Abstract
本发明涉及数据处理,提供了一种数据处理方法、装置、电子设备及存储介质。该方法将预设的进程池划分为输入输出操作的第一进程池及计算操作的第二进程池,分别创建对应的第一工作队列及第二工作队列,当接收到数据处理请求时,判断待处理数据是否完整,若是,将待处理数据封装为计算任务存储至第二工作队列,判断第二进程池中是否存在空闲进程,若存在,利用该空闲进程从第二工作队列中读取计算任务后执行计算处理得到计算结果,之后,将计算结果存储至第一工作队列,判断第一进程池中是否存在空闲进程,若存在,利用该空闲进程从第一工作队列中读取计算结果。利用本发明可以提供充分的并行处理能力,减少系统资源的消耗。
Description
技术领域
本发明涉及数据处理,尤其涉及一种数据处理方法、装置、电子设备及存储介质。
背景技术
目前的计算服务中间件系统,其数据的输入输出与计算处于同一个进程或者线程当中,输入输出操作、计算操作以及待计算数据的获取都在同一个进程或者线程中处理。
由于输入输出与计算所使用的资源是共享,当输入输出端的性能不对称时,将导致输入输出处理消耗大量的计算资源,降低了系统的处理能力,且由于输入输出与计算的共享,当有大量的输入输出在单位时间内需要处理时,输入输出使用的资源占比将远大于计算所使用的资源,在大并发时,会导致系统分配更多的资源来协调进程或者线程的切换。
发明内容
鉴于以上内容,本发明提供一种数据处理方法、装置、电子设备及存储介质,其目的在于解决现有技术中输入输出操作和计算操作在同一个进程中处理,导致系统资源消耗大的技术问题。
为实现上述目的,本发明提供一种数据处理方法,该方法包括:
创建步骤:将预设的进程池划分为输入输出操作的第一进程池及计算操作的第二进程池,分别创建所述第一进程池对应的第一工作队列,及所述第二进程池对应的第二工作队列;
接收步骤:接收客户端发出的数据处理的请求,获取所述请求中的待处理数据,基于预先配置的数据协议判断所述待处理数据是否完整,当所述待处理数据完整时,将所述待处理数据封装为计算任务,并将所述计算任务存储至所述第二工作队列;
处理步骤:判断所述第二进程池中是否存在空闲进程,当判断所述第二进程池中存在空闲进程时,利用该空闲进程从所述第二工作队列中读取所述计算任务,基于预设的处理规则对所述计算任务执行计算处理得到计算结果,并将所述计算结果存储至所述第一工作队列;及
反馈步骤:判断所述第一进程池中是否存在空闲进程,当判断所述第一进程池中存在空闲进程时,利用该空闲进程从所述第一工作队列中读取所述计算结果,并将所述计算结果反馈至所述客户端。
优选的,所述接收步骤还包括:
当判断所述待处理数据不完整时,判断所述第一进程池中是否存在空闲进程,当判断所述第一进程池中不存在空闲进程时,将所述待处理数据存储至所述第一工作队列,当判断所述第一进程池中存在空闲进程时,利用该空闲进程接收所述待处理数据对应的不完整数据。
优选的,在所述反馈步骤之后,所述方法还包括:
判断所述第一工作队列是否存储有待处理数据或待反馈的计算结果,当判断所述第一工作队列均未存储有待处理数据及待反馈的计算结果时,将所述第一进程池中的空闲进程设为预设状态。
优选的,在所述处理步骤之后,所述方法还包括:
判断所述第二工作队列是否存储有待处理的计算任务,当判断所述第二工作队列未存储有待处理的计算任务时,将所述第二进程池中的空闲进程设为预设状态;
当判断所述第二工作队列存储有待处理的计算任务时,基于所述第二进程池中的空闲进程从所述第二工作队列中读取所述待处理的计算任务,并对该计算任务执行计算处理。
优选的,所述反馈步骤还包括:
当判断所述第一进程池中不存在空闲进程时,将所述计算结果封装成传输任务,将所述传输任务存储至所述第一工作队列,直至所述第一进程池中存在空闲进程时对所述传输任务执行传输操作。
优选的,所述基于预设的处理规则对所述计算任务执行计算处理得到计算结果包括:
获取所述计算任务的标识,基于所述标识从预先配置的映射关系表中查找所述计算任务对应的计算处理规则,基于所述计算处理规则对所述计算任务执行计算处理得到计算结果。
为实现上述目的,本发明还提供一种数据处理装置,其特征在于,所述装置包括:
创建模块:将预设的进程池划分为输入输出操作的第一进程池及计算操作的第二进程池,分别创建所述第一进程池对应的第一工作队列,及所述第二进程池对应的第二工作队列;
接收模块:接收客户端发出的数据处理的请求,获取所述请求中的待处理数据,基于预先配置的数据协议判断所述待处理数据是否完整,当所述待处理数据完整时,将所述待处理数据封装为计算任务,并将所述计算任务存储至所述第二工作队列;
处理模块:判断所述第二进程池中是否存在空闲进程,当判断所述第二进程池中存在空闲进程时,利用该空闲进程从所述第二工作队列中读取所述计算任务,基于预设的处理规则对所述计算任务执行计算处理得到计算结果,并将所述计算结果存储至所述第一工作队列;及
反馈模块:判断所述第一进程池中是否存在空闲进程,当判断所述第一进程池中存在空闲进程时,利用该空闲进程从所述第一工作队列中读取所述计算结果,并将所述计算结果反馈至所述客户端。
优选的,所述接收模块还包括:
当判断所述待处理数据不完整时,判断所述第一进程池中是否存在空闲进程,当判断所述第一进程池中不存在空闲进程时,将所述待处理数据存储至所述第一工作队列,当判断所述第一进程池中存在空闲进程时,利用该空闲进程接收所述待处理数据对应的不完整数据。
为实现上述目的,本发明还提供一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如如上所述数据处理方法中的任意步骤。
为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中包括数据处理程序,所述数据处理程序被处理器执行时,实现如上所述数据处理方法中的任意步骤。
本发明提出的数据处理方法、装置、电子设备及存储介质,将输入输出操作与计算操作分别存储至预先划分的进程池,进行异步化的处理,提供充分的并行处理能力,充分利用现代处理器的多核并行处理能力,消除进程池获取处理任务以及存储任务时由于并发需要引入的锁,减少由于锁的争抢引起的系统资源的消耗。
附图说明
图1为本发明实现数据处理方法的电子设备较佳实施例的示意图;
图2为本发明数据处理装置较佳实施例的模块示意图;
图3为本发明数据处理方法较佳实施例的流程图;
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参照图1所示,为本发明电子设备1较佳实施例的示意图。
该电子设备1包括但不限于:存储器11、处理器12、显示器13及网络接口14。所述电子设备1通过网络接口14连接网络,获取原始数据。其中,所述网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(Global System of Mobilecommunication,GSM)、宽带码分多址(Wideband Code Division Multiple Access,WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi、通话网络等无线或有线网络。
其中,存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器11可以是所述电子设备1的内部存储单元,例如该电子设备1的硬盘或内存。在另一些实施例中,所述存储器11也可以是所述电子设备1的外部存储设备,例如该电子设备1配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,所述存储器11还可以既包括所述电子设备1的内部存储单元也包括其外部存储设备。本实施例中,存储器11通常用于存储安装于所述电子设备1的操作系统和各类应用软件,例如数据处理程序10的程序代码等。此外,存储器11还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器12在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器12通常用于控制所述电子设备1的总体操作,例如执行数据交互或者通信相关的控制和处理等。本实施例中,所述处理器12用于运行所述存储器11中存储的程序代码或者处理数据,例如运行数据处理程序10的程序代码等。
显示器13可以称为显示屏或显示单元。在一些实施例中显示器13可以是LED显示器、液晶显示器、触控式液晶显示器以及有机发光二极管(Organic Light-EmittingDiode,OLED)触摸器等。显示器13用于显示在电子设备1中处理的信息以及用于显示可视化的工作界面,例如显示数据统计的结果。
网络接口14可选地可以包括标准的有线接口、无线接口(如WI-FI接口),该网络接口14通常用于在所述电子设备1与其它电子设备之间建立通信连接。
图1仅示出了具有组件11-14以及数据处理程序10的电子设备1,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
可选地,所述电子设备1还可以包括用户接口,用户接口可以包括显示器(Display)、输入单元比如键盘(Keyboard),可选的用户接口还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及有机发光二极管(Organic Light-Emitting Diode,OLED)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在电子设备1中处理的信息以及用于显示可视化的用户界面。
该电子设备1还可以包括射频(Radio Frequency,RF)电路、传感器和音频电路等等,在此不再赘述。
在上述实施例中,处理器12执行存储器11中存储的数据处理程序10时可以实现如下步骤:
创建步骤:将预设的进程池划分为输入输出操作的第一进程池及计算操作的第二进程池,分别创建所述第一进程池对应的第一工作队列,及所述第二进程池对应的第二工作队列;
接收步骤:接收客户端发出的数据处理的请求,获取所述请求中的待处理数据,基于预先配置的数据协议判断所述待处理数据是否完整,当所述待处理数据完整时,将所述待处理数据封装为计算任务,并将所述计算任务存储至所述第二工作队列;
处理步骤:判断所述第二进程池中是否存在空闲进程,当判断所述第二进程池中存在空闲进程时,利用该空闲进程从所述第二工作队列中读取所述计算任务,基于预设的处理规则对所述计算任务执行计算处理得到计算结果,并将所述计算结果存储至所述第一工作队列;及
反馈步骤:判断所述第一进程池中是否存在空闲进程,当判断所述第一进程池中存在空闲进程时,利用该空闲进程从所述第一工作队列中读取所述计算结果,并将所述计算结果反馈至所述客户端。
所述存储设备可以为电子设备1的存储器11,也可以为与电子设备1通讯连接的其它存储设备。
关于上述步骤的详细介绍,请参照下述图2关于数据处理装置100实施例的功能模块图以及图3关于数据处理方法实施例的流程图的说明。
参照图2所示,为本发明数据处理装置100的功能模块图。
本发明所述数据处理装置100可以安装于电子设备中。根据实现的功能,所述数据处理装置可以包括创建模块110、接收模块120、处理模块130及反馈模块140。本发所述模块也可以称之为单元,是指一种能够被电子设备处理器所执行,并且能够完成固定功能的一系列计算机程序段,其存储在电子设备的存储器中。
在本实施例中,关于各模块/单元的功能如下:
创建模块110,用于将预设的进程池划分为输入输出操作的第一进程池及计算操作的第二进程池,分别创建所述第一进程池对应的第一工作队列,及所述第二进程池对应的第二工作队列。
在本实施例中,将电子设备预先配置的进程池划分为输入输出操作的进程池及计算操作的进程池,创建输入输出操作进程池对应的第一工作队列,及计算操作的进程池对应的第二工作队列。将输入输出(InputOutput,IO)操作和计算操作,进行分离拆分后分别处理,可以提高并行处理能力,充分利用现代处理器的多核并行处理能力,划分的进程池中包括多个进程,进程是计算机中的程序关于数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在面向线程设计的计算机结构中,进程是线程的容器。
接收模块120,用于接收客户端发出的数据处理的请求,获取所述请求中的待处理数据,基于预先配置的数据协议判断所述待处理数据是否完整,当所述待处理数据完整时,将所述待处理数据封装为计算任务,并将所述计算任务存储至所述第二工作队列。
在本实施例中,接收客户端发出的数据处理请求,获取请求中待处理的数据,基于预先配置的数据协议判断待处理数据是否完整,当待处理的数据完整时,将待处理的数据封装成计算任务,并将计算任务存储至第二工作队列,当待处理的数据不完整时,则将不完整的数据存储至第一工作队列,等数据接收完整后,再将完整的待处理数据封装成计算任务。其中,判断待处理的数据是否完整是根据预先配置的数据协议判断的。若计算操作的进程池中没有空闲的进程,则可以将计算任务存储至计算操作的进程池对应的第二工作队列中,可以避免锁的消耗。
在一个实施例中,所述接收模块还用于:
当判断所述待处理数据不完整时,判断所述第一进程池中是否存在空闲进程,当判断所述第一进程池中不存在空闲进程时,将所述待处理数据存储至所述第一工作队列,当判断所述第一进程池中存在空闲进程时,利用该空闲进程接收所述待处理数据对应的不完整数据。
待处理数据未完整时,且当输入输出操作的进程池中不存在空闲进程时,将待处理数据存储至第一工作队列中,由输入输出的进程池中的空闲进程主动地,无锁地获取,使得输入输出处理的进程池中的进程资源的锁争抢减少至无锁状态,避免了由于锁的争抢导致的资源利用率低下的问题。
在一个实施例中,所述数据处理装置100还用于:
判断所述第一工作队列是否存储有待处理数据或待反馈的计算结果,当判断所述第一工作队列均未存储有待处理数据及待反馈的计算结果时,将所述第一进程池中的空闲进程设为预设状态。其中,预设状态包括休眠状态。
处理模块130,用于判断所述第二进程池中是否存在空闲进程,当判断所述第二进程池中存在空闲进程时,利用该空闲进程从所述第二工作队列中读取所述计算任务,基于预设的处理规则对所述计算任务执行计算处理得到计算结果,并将所述计算结果存储至所述第一工作队列。
在本实施例中,判断计算操作的进程池中是否存在空闲的进程,当计算操作的进程池中存在空闲的进程时,利用该空闲的进程从第二工作队列中读取计算任务,基于预设的处理规则对计算任务执行计算处理得到计算结果,并将得到的计算结果存储至第一工作队列中。
由于计算操作计算密集的特性,划分的计算操作的进程池在待计算数据完整的情况下,单独的进程可以使计算流水线不中断的连续处理,避免了由于计算流水线的暂停或者中断导致空闲的进程不能提供服务的情况,也避免了由于进程由于暂停或者中断引起的频繁的系统资源调度导致系统消耗的资源的问题,提高了系统资源的使用率,其中,系统资源包括:CPU资源、内存资源、网络资源等。
创建计算操作的进程对应的第二工作队列,将计算准备就绪的计算任务存储至第二工作队列中,由计算处理的进程主动地,无锁地获取计算任务,使得输入输出操作的进程池中的进程资源的锁争抢减少至无锁状态,减少由于锁的争抢导致的系统资源的非功能性消耗。需要说明的是,现有技术中多个工作进程在获取任务时,为防止重复处理,需要在任务获取的时候,对获取任务时进行一定的加锁处理,预防资源的不一致或者重复。
进一步的,所述基于预设的处理规则对所述计算任务执行计算处理得到计算结果包括:
获取所述计算任务的标识,基于所述标识从预先配置的映射关系表中查找所述计算任务对应的计算处理规则,基于所述计算处理规则对所述计算任务执行计算处理得到计算结果。
在一个实施例中,所述数据处理装置100还用于:
判断所述第二工作队列是否存储有待处理的计算任务,当判断所述第二工作队列未存储有待处理的计算任务时,将所述第二进程池中的空闲进程设为预设状态;
当判断所述第二工作队列存储有待处理的计算任务时,基于所述第二进程池中的空闲进程从所述第二工作队列中读取所述待处理的计算任务,并对该计算任务执行计算处理。其中,预设状态包括休眠状态。
反馈模块140,用于判断所述第一进程池中是否存在空闲进程,当判断所述第一进程池中存在空闲进程时,利用该空闲进程从所述第一工作队列中读取所述计算结果,并将所述计算结果反馈至所述客户端。
在本实施例中,判断输入输出操作的进程池中是否存在空闲的进程,若存在,利用该空闲进程从第一工作队列中读取计算结果,将计算结果反馈至所述客户端,可以消除进程池获取处理任务时由于并发需要引入的锁,减少由于锁的争抢导致的资源消耗。
由于输入输出操作具有的等待的特性,划分出的输入输出操作进程池可基于操作系统底层支持的异步IO机制支持的异步的输入输出实现的异步回调处理操作,解决由于输入输出等待导致的进程或者线程的消耗,减少大并发下由于进程或者线程的频繁创建、销毁或调度带来的系统资源的消耗,提高系统资源中用户对系统资源的使用率。需要说明的是,非异步IO在数据传送还未完成时,会无限等待或者使进程睡眠,等到数据接收完毕时,才继续进行后续的操作,这就使得当前IO使用的进程资源被占用。异步IO会在数据接收到后才使用进程或者线程资源。
在划分出来的输入输出操作的进程池上,设置对应的第一工作队列,将输入输出就绪的计算结果存储至对应的第一工作队列中,由输入输出的处理进程主动地,无锁地取,使得输入输出处理的进程池中的进程或者线程资源的锁争抢减少到至无锁状态,大大减少由于锁的争抢导致的资源利用率低下。
在一个实施例中,所述反馈模块还用于:
当判断所述第一进程池中不存在空闲进程时,将所述计算结果封装成传输任务,将所述传输任务存储至所述第一工作队列,直至所述第一进程池中存在空闲进程时对所述传输任务执行传输操作。
此外,本发明还提供一种数据处理方法。参照图3所示,为本发明数据处理方法的实施例的方法流程示意图。电子设备1的处理器12执行存储器11中存储的数据处理程序10时实现数据处理方法的如下步骤:
步骤S10:将预设的进程池划分为输入输出操作的第一进程池及计算操作的第二进程池,分别创建所述第一进程池对应的第一工作队列,及所述第二进程池对应的第二工作队列。
在本实施例中,将电子设备预先配置的进程池划分为输入输出操作的进程池及计算操作的进程池,创建输入输出操作进程池对应的第一工作队列,及计算操作的进程池对应的第二工作队列。将输入输出(Input Output,IO)操作和计算操作,进行分离拆分后分别处理,可以提高并行处理能力,充分利用现代处理器的多核并行处理能力,划分的进程池中包括多个进程,进程是计算机中的程序关于数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在面向线程设计的计算机结构中,进程是线程的容器。
步骤S20:接收客户端发出的数据处理的请求,获取所述请求中的待处理数据,基于预先配置的数据协议判断所述待处理数据是否完整,当所述待处理数据完整时,将所述待处理数据封装为计算任务,并将所述计算任务存储至所述第二工作队列。
在本实施例中,接收客户端发出的数据处理请求,获取请求中待处理的数据,基于预先配置的数据协议判断待处理数据是否完整,当待处理的数据完整时,将待处理的数据封装成计算任务,并将计算任务存储至第二工作队列,当待处理的数据不完整时,则将不完整的数据存储至第一工作队列,等数据接收完整后,再将完整的待处理数据封装成计算任务。其中,判断待处理的数据是否完整是根据预先配置的数据协议判断的。若计算操作的进程池中没有空闲的进程,则可以将计算任务存储至计算操作的进程池对应的第二工作队列中,可以避免锁的消耗。
在一个实施例中,步骤S20还包括:
当判断所述待处理数据不完整时,判断所述第一进程池中是否存在空闲进程,当判断所述第一进程池中不存在空闲进程时,将所述待处理数据存储至所述第一工作队列,当判断所述第一进程池中存在空闲进程时,利用该空闲进程接收所述待处理数据对应的不完整数据。
待处理数据未完整时,且当输入输出操作的进程池中不存在空闲进程时,将待处理数据存储至第一工作队列中,由输入输出的进程池中的空闲进程主动地,无锁地获取,使得输入输出处理的进程池中的进程资源的锁争抢减少至无锁状态,避免了由于锁的争抢导致的资源利用率低下的问题。
在一个实施例中,所述方法还包括:
判断所述第一工作队列是否存储有待处理数据或待反馈的计算结果,当判断所述第一工作队列均未存储有待处理数据及待反馈的计算结果时,将所述第一进程池中的空闲进程设为预设状态。其中,所述预设状态包括休眠状态。
步骤S30:判断所述第二进程池中是否存在空闲进程,当判断所述第二进程池中存在空闲进程时,利用该空闲进程从所述第二工作队列中读取所述计算任务,基于预设的处理规则对所述计算任务执行计算处理得到计算结果,并将所述计算结果存储至所述第一工作队列。
在本实施例中,判断计算操作的进程池中是否存在空闲的进程,当计算操作的进程池中存在空闲的进程时,利用该空闲的进程从第二工作队列中读取计算任务,基于预设的处理规则对计算任务执行计算处理得到计算结果,并将得到的计算结果存储至第一工作队列中。
由于计算操作计算密集的特性,划分的计算操作的进程池在待计算数据完整的情况下,单独的进程可以使计算流水线不中断的连续处理,避免了由于计算流水线的暂停或者中断导致空闲的进程不能提供服务的情况,也避免了由于进程由于暂停或者中断引起的频繁的系统资源调度导致系统消耗的资源的问题,提高了系统资源的使用率,其中,系统资源包括:CPU资源、内存资源、网络资源等。
创建计算操作的进程对应的第二工作队列,将计算准备就绪的计算任务存储至第二工作队列中,由计算处理的进程主动地,无锁地获取计算任务,使得输入输出操作的进程池中的进程资源的锁争抢减少至无锁状态,减少由于锁的争抢导致的系统资源的非功能性消耗。需要说明的是,现有技术中多个工作进程在获取任务时,为防止重复处理,需要在任务获取的时候,对获取任务时进行一定的加锁处理,预防资源的不一致或者重复。
进一步的,所述基于预设的处理规则对所述计算任务执行计算处理得到计算结果包括:
获取所述计算任务的标识,基于所述标识从预先配置的映射关系表中查找所述计算任务对应的计算处理规则,基于所述计算处理规则对所述计算任务执行计算处理得到计算结果。
在一个实施例中,在步骤S30之后,该方法还包括:
判断所述第二工作队列是否存储有待处理的计算任务,当判断所述第二工作队列未存储有待处理的计算任务时,将所述第二进程池中的空闲进程设为预设状态;
当判断所述第二工作队列存储有待处理的计算任务时,基于所述第二进程池中的空闲进程从所述第二工作队列中读取所述待处理的计算任务,并对该计算任务执行计算处理。其中,预设状态包括休眠状态。
步骤S40:判断所述第一进程池中是否存在空闲进程,当判断所述第一进程池中存在空闲进程时,利用该空闲进程从所述第一工作队列中读取所述计算结果,并将所述计算结果反馈至所述客户端。
在本实施例中,判断输入输出操作的进程池中是否存在空闲的进程,若存在,利用该空闲进程从第一工作队列中读取计算结果,将计算结果反馈至所述客户端,可以消除进程池获取处理任务时由于并发需要引入的锁,减少由于锁的争抢导致的资源消耗。
由于输入输出操作具有的等待的特性,划分出的输入输出操作进程池可基于操作系统底层支持的异步IO机制支持的异步的输入输出实现的异步回调处理操作,解决由于输入输出等待导致的进程或者线程的消耗,减少大并发下由于进程或者线程的频繁创建、销毁或调度带来的系统资源的消耗,提高系统资源中用户对系统资源的使用率。需要说明的是,非异步IO在数据传送还未完成时,会无限等待或者使进程睡眠,等到数据接收完毕时,才继续进行后续的操作,这就使得当前IO使用的进程资源被占用。异步IO会在数据接收到后才使用进程或者线程资源。
在划分出来的输入输出操作的进程池上,设置对应的第一工作队列,将输入输出就绪的计算结果存储至对应的第一工作队列中,由输入输出的处理进程主动地,无锁地取,使得输入输出处理的进程池中的进程或者线程资源的锁争抢减少到至无锁状态,大大减少由于锁的争抢导致的资源利用率低下。
在一个实施例中,步骤S40还包括:
当判断所述第一进程池中不存在空闲进程时,将所述计算结果封装成传输任务,将所述传输任务存储至所述第一工作队列,直至所述第一进程池中存在空闲进程时对所述传输任务执行传输操作。
此外,本发明实施例还提出一种计算机可读存储介质,该计算机可读存储介质可以是硬盘、多媒体卡、SD卡、闪存卡、SMC、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、USB存储器等等中的任意一种或者几种的任意组合。所述计算机可读存储介质中包括数据处理程序10,所述数据处理程序10被处理器执行时实现如下操作:
创建步骤:将预设的进程池划分为输入输出操作的第一进程池及计算操作的第二进程池,分别创建所述第一进程池对应的第一工作队列,及所述第二进程池对应的第二工作队列;
接收步骤:接收客户端发出的数据处理的请求,获取所述请求中的待处理数据,基于预先配置的数据协议判断所述待处理数据是否完整,当所述待处理数据完整时,将所述待处理数据封装为计算任务,并将所述计算任务存储至所述第二工作队列;
处理步骤:判断所述第二进程池中是否存在空闲进程,当判断所述第二进程池中存在空闲进程时,利用该空闲进程从所述第二工作队列中读取所述计算任务,基于预设的处理规则对所述计算任务执行计算处理得到计算结果,并将所述计算结果存储至所述第一工作队列;及
反馈步骤:判断所述第一进程池中是否存在空闲进程,当判断所述第一进程池中存在空闲进程时,利用该空闲进程从所述第一工作队列中读取所述计算结果,并将所述计算结果反馈至所述客户端。
本发明之计算机可读存储介质的具体实施方式与上述数据处理方法的具体实施方式大致相同,在此不再赘述。
需要说明的是,上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。并且本文中的术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,电子设备,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种数据处理方法,应用于电子设备,其特征在于,所述方法包括:
创建步骤:将预设的进程池划分为输入输出操作的第一进程池及计算操作的第二进程池,分别创建所述第一进程池对应的第一工作队列,及所述第二进程池对应的第二工作队列;
接收步骤:接收客户端发出的数据处理的请求,获取所述请求中的待处理数据,基于预先配置的数据协议判断所述待处理数据是否完整,当所述待处理数据完整时,将所述待处理数据封装为计算任务,并将所述计算任务存储至所述第二工作队列;
处理步骤:判断所述第二进程池中是否存在空闲进程,当判断所述第二进程池中存在空闲进程时,利用该空闲进程从所述第二工作队列中读取所述计算任务,基于预设的处理规则对所述计算任务执行计算处理得到计算结果,并将所述计算结果存储至所述第一工作队列;及
反馈步骤:判断所述第一进程池中是否存在空闲进程,当判断所述第一进程池中存在空闲进程时,利用该空闲进程从所述第一工作队列中读取所述计算结果,并将所述计算结果反馈至所述客户端。
2.如权利要求1所述的数据处理方法,其特征在于,所述接收步骤还包括:
当判断所述待处理数据不完整时,判断所述第一进程池中是否存在空闲进程,当判断所述第一进程池中不存在空闲进程时,将所述待处理数据存储至所述第一工作队列,当判断所述第一进程池中存在空闲进程时,利用该空闲进程接收所述待处理数据对应的不完整数据。
3.如权利要求2所述的数据处理方法,其特征在于,在所述反馈步骤之后,所述方法还包括:
判断所述第一工作队列是否存储有待处理数据或待反馈的计算结果,当判断所述第一工作队列均未存储有待处理数据及待反馈的计算结果时,将所述第一进程池中的空闲进程设为预设状态。
4.如权利要求1所述的数据处理方法,其特征在于,在所述处理步骤之后,所述方法还包括:
判断所述第二工作队列是否存储有待处理的计算任务,当判断所述第二工作队列未存储有待处理的计算任务时,将所述第二进程池中的空闲进程设为预设状态;
当判断所述第二工作队列存储有待处理的计算任务时,基于所述第二进程池中的空闲进程从所述第二工作队列中读取所述待处理的计算任务,并对该计算任务执行计算处理。
5.如权利要求1所述的数据处理方法,其特征在于,所述反馈步骤还包括:
当判断所述第一进程池中不存在空闲进程时,将所述计算结果封装成传输任务,将所述传输任务存储至所述第一工作队列,直至所述第一进程池中存在空闲进程时对所述传输任务执行传输操作。
6.如权利要求1至5任意一项所述的数据处理方法,其特征在于,所述基于预设的处理规则对所述计算任务执行计算处理得到计算结果包括:
获取所述计算任务的标识,基于所述标识从预先配置的映射关系表中查找所述计算任务对应的计算处理规则,基于所述计算处理规则对所述计算任务执行计算处理得到计算结果。
7.一种数据处理装置,其特征在于,所述装置包括:
创建模块:将预设的进程池划分为输入输出操作的第一进程池及计算操作的第二进程池,分别创建所述第一进程池对应的第一工作队列,及所述第二进程池对应的第二工作队列;
接收模块:接收客户端发出的数据处理的请求,获取所述请求中的待处理数据,基于预先配置的数据协议判断所述待处理数据是否完整,当所述待处理数据完整时,将所述待处理数据封装为计算任务,并将所述计算任务存储至所述第二工作队列;
处理模块:判断所述第二进程池中是否存在空闲进程,当判断所述第二进程池中存在空闲进程时,利用该空闲进程从所述第二工作队列中读取所述计算任务,基于预设的处理规则对所述计算任务执行计算处理得到计算结果,并将所述计算结果存储至所述第一工作队列;及
反馈模块:判断所述第一进程池中是否存在空闲进程,当判断所述第一进程池中存在空闲进程时,利用该空闲进程从所述第一工作队列中读取所述计算结果,并将所述计算结果反馈至所述客户端。
8.如权利要求7所述的数据处理装置,其特征在于,所述接收模块还包括:
当判断所述待处理数据不完整时,判断所述第一进程池中是否存在空闲进程,当判断所述第一进程池中不存在空闲进程时,将所述待处理数据存储至所述第一工作队列,当判断所述第一进程池中存在空闲进程时,利用该空闲进程接收所述待处理数据对应的不完整数据。
9.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至5中任一所述的数据处理方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中包括数据处理程序,所述数据处理程序被处理器执行时,实现如权利要求1至5中任一项所述数据处理方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011622579.7A CN112698962A (zh) | 2020-12-30 | 2020-12-30 | 数据处理方法、装置、电子设备及存储介质 |
PCT/CN2021/090293 WO2022142008A1 (zh) | 2020-12-30 | 2021-04-27 | 数据处理方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011622579.7A CN112698962A (zh) | 2020-12-30 | 2020-12-30 | 数据处理方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112698962A true CN112698962A (zh) | 2021-04-23 |
Family
ID=75511193
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011622579.7A Pending CN112698962A (zh) | 2020-12-30 | 2020-12-30 | 数据处理方法、装置、电子设备及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112698962A (zh) |
WO (1) | WO2022142008A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022142008A1 (zh) * | 2020-12-30 | 2022-07-07 | 平安科技(深圳)有限公司 | 数据处理方法、装置、电子设备及存储介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116011027A (zh) * | 2023-03-28 | 2023-04-25 | 翌飞锐特电子商务(北京)有限公司 | 业务数据流的数据转发共享方法、系统、设备及存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030056073A1 (en) * | 2001-09-18 | 2003-03-20 | Terachip, Inc. | Queue management method and system for a shared memory switch |
US9282151B2 (en) * | 2008-09-11 | 2016-03-08 | International Business Machines Corporation | Flow control in a distributed environment |
CN108923963B (zh) * | 2018-06-25 | 2021-05-25 | 哈尔滨工业大学 | 一种利用Looking Glass测量点实现自动化拓扑测量的方法 |
CN112698962A (zh) * | 2020-12-30 | 2021-04-23 | 平安科技(深圳)有限公司 | 数据处理方法、装置、电子设备及存储介质 |
-
2020
- 2020-12-30 CN CN202011622579.7A patent/CN112698962A/zh active Pending
-
2021
- 2021-04-27 WO PCT/CN2021/090293 patent/WO2022142008A1/zh active Application Filing
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022142008A1 (zh) * | 2020-12-30 | 2022-07-07 | 平安科技(深圳)有限公司 | 数据处理方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2022142008A1 (zh) | 2022-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108462760B (zh) | 电子装置、集群访问域名自动生成方法及存储介质 | |
CN111026797A (zh) | 业务数据处理方法、服务器及存储介质 | |
CN109309712B (zh) | 基于接口异步调用的数据传输方法、服务器及存储介质 | |
CN110633135A (zh) | 异步任务分配方法、装置、计算机设备及存储介质 | |
CN107656729B (zh) | 列表视图的更新装置、方法及计算机可读存储介质 | |
WO2019227715A1 (zh) | 数据处理方法、装置及计算机可读存储介质 | |
CN108415925B (zh) | 电子装置、数据调用日志生成及查询方法及存储介质 | |
CN112698962A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
WO2020015170A1 (zh) | 接口调用方法、装置及计算机可读存储介质 | |
CN107682391B (zh) | 电子装置、服务器分配控制方法和计算机可读存储介质 | |
CN109408286A (zh) | 数据处理方法、装置、系统、计算机可读存储介质 | |
CN112416458A (zh) | 基于ReactNative的预加载方法、装置、计算机设备及存储介质 | |
CN110020060B (zh) | 网页数据爬取方法、装置及存储介质 | |
CN107704253B (zh) | 控件的文字颜色变换方法、系统及电子装置 | |
CN111580948A (zh) | 任务调度方法、装置及计算机设备 | |
CN111124801A (zh) | 智能化系统资源监控方法、装置及计算机可读存储介质 | |
US10520929B2 (en) | Techniques for implementing universal commands in a welding or cutting system | |
CN112130936A (zh) | 基于轮询的数据调用方法、装置、设备及存储介质 | |
CN112083925A (zh) | 基于h5页面开发的数据获取方法、装置、设备及存储介质 | |
CN111988429A (zh) | 算法调度方法以及系统 | |
WO2018042349A1 (en) | Computer implemented method, welding system and apparatus for multiple application banks | |
CN108052521B (zh) | 协调数据显示方法、应用服务器及存储介质 | |
CA3033837A1 (en) | Techniques for event driven scheduling in a welding or cutting system | |
CN110266526B (zh) | 一种设备树的加载方法及设备 | |
CN112363768A (zh) | 基于android系统通过插入U盘实现应用换肤的方法 |
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 |