数据处理方法、存储介质及计算机设备与流程

文档序号:16324664发布日期:2018-12-19 05:51阅读:191来源:国知局
数据处理方法、存储介质及计算机设备与流程

本申请涉及计算机技术领域,特别是涉及一种数据处理方法、存储介质及计算机设备。

背景技术

现有cors(continuouslyoperatingreferencestations:连续运行参考站)基站数据转发算法多采用内部缓存存储收到的数据,然后再转发缓存数据,数据放在同一段缓存中,在缓存的读写过程中,会存在读写同一段缓存的问题,现有的做法是通过数据加锁的方式避免数据读写冲突问题。这种方式,当客户端数据增加时,容易出现死锁的情况。



技术实现要素:

基于此,有必要针对现有技术中数据处理的方法容易出现死锁的问题,提供一种数据处理方法、存储介质及计算机设备。

一种数据处理方法,包括:获得接收的数据以及与该数据关联的时间信息;

基于所述时间信息,在预设存储结构中确定与该时间信息对应的子存储单元;

将所述数据存入所述子存储单元,所述预设存储结构中的子存储单元数目为预设数目。

在其中一个实施例中,所述预设存储结构的每一子存储单元均设置有状态标识;

将所述数据存入所述子存储单元后,将该子存储单元的状态标识设置为第一状态标识,将该子存储单元的下一子存储单元的状态标识设置为第二状态标识。

在其中一个实施例中,还包括步骤:在检测到与数据接收服务器连接时,根据各子存储单元的状态标识将所述预设存储结构中的数据转发至所述数据接收服务器。

在其中一个实施例中,根据所述状态标识将接收到的数据发送至所述数据接收服务器包括:当一子存储单元的状态标识为已准备好时,将该子存储单元中的数据转发至所述数据接收服务器。

在其中一个实施例中,各子存储单元的状态标识存储在布尔类型一维数组中,所述布尔类型一维数组的长度值与所述预设数目值相同。

在其中一个实施例中,所述预设存储结构为预设二维数组,所述预设二维数组的第一维长度值与预设数目值相同。

在其中一个实施例中,所述与该数据关联的时间信息包括:该数据的发送时间或接收时间。

在其中一个实施例中,所述预设数目的数值为60。

一个实施例中,还提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述的方法的步骤。

一个实施例中,还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法的步骤。

上述数据处理方法、存储介质及计算机设备,首先获得接收的数据和与该数据关联的时间信息,根据时间信息从预设存储结构中确定对应的子存储单元,将数据存入对应的子存储单元。由于一个数据对应存储在预设存储结构中的一个子存储单元中,因此,在数据处理过程中数据的接收和转发过程不会发生冲突,从而避免死锁情况的发生,提高数据处理效率和系统稳定性。

附图说明

图1为一个实施例中数据处理方法的步骤流程示意图;

图2为另一个实施例中数据处理方法的步骤流程示意图;

图3为一个实施例中cors基站的数据转发场景示意图;

图4为一个实施例中计算机设备的内部结构图。

具体实施方式

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

本申请提供一种数据处理方法,实现在数据转发过程中数据转发服务器上,一个实施例中,如图1所示,包括步骤s110至步骤s130。

步骤s110,获得接收的数据以及该数据关联的时间信息。

其中,数据转发服务器接收数据,并将数据转发至数据接收服务器。在本申请的实施例中,对于接收的数据,有一个与该数据关联的时间信息。一个实施例中,可以是该数据的发送时间,另一个实施例中,也可以是该数据的接收时间。

步骤s120,基于所述时间信息,在预设存储结构中确定与该时间信息对应的子存储单元。

其中,数据的存储结构是指数据的逻辑结构在计算机中的表示。数据元素之间的关系有两种不同的表示方法:顺序映象和非顺序映象,并由此得到两种不同的存储结构:顺序存储结构和链式存储结构。本实施例中,预设存储结构为在数据转发服务器中预先设置的、子存储单元数目为预设数目的存储结构。

本实施例中,根据与数据关联的时间信息在预设存储结构中确定一个与其唯一对应的子存储单元。一个实施例中,与数据关联的时间信息可以是采用该数据的发送时间或者是数据的接收时间来表征。其中,数据的发送时间是与数据发送的时刻对应的时间,一个实施例中,发送的数据中携带发送时间;接收时间是与接收的时刻对应的时间。

一个实施例中,预设存储结构为在数据转发服务器中预先设置的、用于存储接收到的数据的存储结构。一个实施例中,将预设存储结构设置为二维数组,其中二维数组的第一维长度值设置为预设数目值。

步骤s130,将所述数据存入所述子存储单元,所述预设存储结构中的子存储单元数目为预设数目。

预设存储结构中包含预设数目个子存储单元,在本实施例的步骤s120中已经确定数据对应的子存储单元,因此在步骤s130中只需将该数据存入对应的子存储单元即可。

一个实施例中,预设存储结构为预设二维数组,所述预设二维数组的第一维长度值与预设数目值相同。

其中,二维数组本质上是以数组作为数组元素的数组,即“数组的数组”,表示方法可以是:类型说明符数组名[常量表达式][常量表达式]。二维数组又称为矩阵,行列数相等的矩阵称为方阵。

本实施例中,将接收的数据存入二维数组中,将二维数组的第一维长度设置为预设数目值,表示该二维数组可以存储预设数目个数据。一个实施例中,还将该二维数组的第二维长度设置为不固定长度,因此可以在接收到数据的时候,根据所接收的数据的大小确定该子存储单元的第二维长度。一个具体实施例中,所述预设数目的数值为60;因此,本实施例中的预设二维数组可以表示为:data[60][长度不固定]。

一个实施例中,所述预设存储结构的每一子存储单元均设置有状态标识。

其中,状态标识用于表明该子存储单元中的数据是否准备就绪。通过对每个子存储单元设置状态标识,从而可以根据状态标识确定是否可以转发该子存储单元中的数据。

上述数据处理方法,首先获得接收的数据和与该数据关联的时间信息,根据时间信息从预设存储结构中确定对应的子存储单元,将数据存入对应的子存储单元。由于一个数据对应存储在预设存储结构中的一个子存储单元中,因此,在数据处理过程中数据的接收和转发过程不会发生冲突,从而避免死锁情况的发生,提高数据处理效率和系统稳定性。

本实施例中,如图2所示,将所述数据存入所述子存储单元后,还包括步骤s210。

步骤s210,将该子存储单元的状态标识设置为第一状态标识,将该子存储单元的下一子存储单元的状态标识设置为第二状态标识。

其中,一子存储单元的状态标识为第一状态标识,表示该子存储单元中的数据已经准备好;而如果一子存储单元的状态标识为第二状态标识则表示该子存储单元中的数据未准备好。

本实施例中,在一个子存储单元中存入数据后,将该子存储单元的状态标识设置为第一状态标识,并且将该子存储单元的下一子存储单元的状态标识设置为第二状态标识。从而,可以根据子存储单元的状态标识确定该子存储单元中的数据当前是否就绪。

另一个实施例中,将所述数据存入所述子存储单元后,也可以是将该子存储单元的状态标识设置为第一状态标识,将除了该子存储单元以外的其他子存储单元的状态标识设置为第二状态标识。

一个实施例中,如图2所示,上述方法还包括步骤s220。

步骤s220,在检测到与数据接收服务器连接时,根据各子存储单元的状态标识将所述预设存储结构中的数据转发至所述数据接收服务器。

进一步地,根据所述状态标识将接收到的数据发送至所述数据接收服务器包括:当一子存储单元的状态标识为第一状态标识时,将该子存储单元中的数据转发至所述数据接收服务器。

其中,根据各子存储单元的状态标识转发数据,表示根据状态标识可以确定一个子存储单元中的数据是否已经就绪,本实施例中,将数据已经准备就绪的子存储单元中的数据转发至与数据转发服务器连接的数据接收服务器。

一个实施例中,各子存储单元的状态标识存储在布尔类型一维数组中,所述布尔类型一维数组的长度值与所述预设数目相同。

其中,布尔类型数组表示数据元素为布尔类型的数组,布尔数组中存放的是布尔值(元素),布尔值只有true和false两种结果,其中,常量false可以理解为和int常量0等价,常量true可以理解为int常量1等价,在计算机中,实际上非0的int值都认为是true。在本实施例中,采用布尔类型的一维数组来存放各子存储单元的状态标识,即各子存储单元的状态标识通过布尔类型来表示。进一步地,本申请的第一状态标识对应true,第二状态标识对应false。即,当一子存储单元接收到数据时,将该子存储单元对应的布尔类型设置为true,将该子存储单元的下一子单元的布尔类型设置为false。

一个实施例中,本申请中的数据处理方法对转发的数据具有实时性要求。例如,cors数据转发中,转发的数据为最新接收的一个数据。一个实施例中,如图3所示,为一个实施例中,cors基站的数据转发场景示意图,本实施例中,cors数据转发服务器接收来自cors基站的数据,将数据转发至cors数据接收服务器。

在本实施例中,当有cors数据接收服务器与cors数据转发服务器连接时,cors数据转发服务器根据布尔类型一维数组的状态判断当前子存储单元的数据是否准备好,如果是则将该子存储单元中的数据转发给cors数据接收服务器。

一个实施例中,以本申请的方法应用于cors数据转发为例,cors基站每秒上传一个cors数据,每个cors数据携带发送时间,理论上,每相邻两个cors数据发送时间之间的间隔应当为1秒,而现实情况中,可能出现某一秒的数据未发送成功的情况,因此在本实施例中,根据数据的发送时间或者接收时间来确定子存储单元。

一个具体实施例中,预设存储结构为一个二维数组,记为data[60][长度不固定],其中,二维数组的第一维长度固定为60,第二维长度不固定。本实施例中,以一分钟记为一个循环,一分钟之内接收的每一个数据元素存入二维数组data[60][长度不固定]中对应的子存储单元。其中对应的子存储单元根据与数据关联的时间信息确定。例如,第1分钟中:第1秒接收的数据存入data[0],第2秒接收的数据存入data[1],……,第60秒接收的数据存入data[59];而进入第2分钟时,第1秒接收的数据存入data[0],覆盖第1分钟第1秒的数据,以此类推。由于cors数据有实时性要求,因此数据一旦延迟,即可视为过期数据,也因此第2分钟的数据覆盖第1分钟存入二维数组的数据的操作,不会破坏数据的完整性。

而在本实施例中的各子存储单元的状态标识通过引入一个原子布尔类型一维数组state[60]来表示。第1秒数据接收到后,state[0]设置为true,state[1]设置为false;第2秒的数据接收到后,state[1]设置为true,state[2]设置为false,……第60秒的数据接收到后,将state[59]设置为true,state[0]设置为false。

另一个实施例中,也可以在接收到数据时,将该秒对应的子存储单元的状态标识设置为true,同时将其他各子存储单元的状态标识设置为false。

上述数据处理方法,通过原子操作及数据分割技术,把对同一段数据缓存的读写冲突问题,转换成原子操作,从而避免了数据接收和转发过程中的死锁问题,提高了数据处理效率和系统稳定性。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图4所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据处理方法。

在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述数据处理方法的步骤。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述数据处理方法的步骤。

上述计算机设备、计算机可读存储介质,首先获得接收的数据和与该数据关联的时间信息,根据时间信息从预设存储结构中确定对应的子存储单元,将数据存入对应的子存储单元。由于一个数据对应存储在预设存储结构中的一个子存储单元中,因此,在数据处理过程中数据得而接收和转发过程不会发生冲突,从而避免死锁情况的发生,提高数据处理效率和系统稳定性。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

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

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

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1