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

行情数据缓存处理方法、装置、存储介质及电子设备

文献发布时间:2023-06-19 13:46:35


行情数据缓存处理方法、装置、存储介质及电子设备

技术领域

本发明实施例涉及数据处理技术领域,具体涉及一种行情数据缓存处理方法、装置、存储介质及电子设备。

背景技术

在行情数据解析中,存在需要恢复全量数据的情形,此时,硬件对增量行情报文的解析需要软件准备好正确的全量数据,因此在此之前,硬件需要对收到的增量行情报文缓存;通常在软件接收并解析完正确的全量数据后,由软件控制端触发开启对增量行情报文的解析。

因为网络上一直有报文输入,但是软件获取全量报文解析需要时间,这个时间包括等待全量报文到达软件,和解析过程,时间不确定,在不确定的时间里面,硬件不一定能够存的下这份时间内的所有报文,一般情况下由软件判定什么时间以前的报文都是没有用的,然后通知硬件复位删除,这样就存在和软件的耦合,软件需要通知硬件什么时候缓存,才能够尽可能的让硬件不需要从近乎无用数据开始缓存,这种软硬件重耦合设计方式不利于后续的产品拓展。

发明内容

本申请实施例提供一种行情数据缓存处理方法、装置、存储介质及电子设备,可以降低软硬件的耦合,有效提高开发项目成功率。

本申请实施例提供了一种行情数据缓存处理方法,包括:

响应于全量数据恢复,实时判断缓存队列的存储状态,其中所述缓存队列为FIFO队列,用于存储获取的增量行情报文,

若所述缓存队列中的闲置空间小于等于设定的阈值,则根据进入队列的先后顺序,依次释放最先进入所述缓存队列中的所述增量行情报文,

以确保所述缓存队列能够始终保存至少一个所述增量行情报文。

优选地,该方法还包括响应于软件收到并解析完所述全量数据,触发硬件解析所述缓存队列中的增量行情报文。

优选地,响应于所述依次释放最先进入所述缓存队列中的所述增量行情报文,暂停所述增量行情报文的解析。

优选地,所述全量数据需要恢复的情形具体为初始化全量数据、全量数据出错或软件复位。

优选地,所述获取的增量行情报文具体为通过数据包过滤以获取所述增量行情报文。

优选地,所述阈值具体为一个增量行情报文的长度上限。

优选地,所述依次释放最先进入所述缓存队列中的所述增量行情报文具体为,通过滑窗的形式依次读出最先进入所述缓存队列中的所述增量行情报文。

优选地,所述读出的最先进入所述缓存队列中的所述增量行情报文存储到指定位置或直接丢弃。

本申请实施例还提供一种行情数据缓存处理装置,包括:

判断单元,用于响应于全量数据恢复,实时判断缓存队列的存储状态,其中所述缓存队列为FIFO队列,用于存储获取的增量行情报文,

释放单元,用于若所述缓存队列中的闲置空间小于等于设定的阈值,则根据进入队列的先后顺序,依次释放最先进入所述缓存队列中的所述增量行情报文,

以确保所述缓存队列能够始终保存至少一个所述增量行情报文。

优选地,触发单元,用于响应于软件收到并解析完所述全量数据,触发硬件解析所述缓存队列中的增量行情报文。

优选地,暂停单元,响应于所述依次释放最先进入所述缓存队列中的所述增量行情报文,暂停所述增量行情报文的解析。

本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序适于处理器进行加载,以执行如上任一实施例所述的行情数据缓存处理方法中的步骤。

本申请实施例还提供一种电子设备,所述电子设备包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器通过调用所述存储器中存储的所述计算机程序,执行如上任一实施例所述的行情数据缓存处理方法中的步骤。

本申请实施例提供的行情数据缓存处理方法、装置、计算机可读存储介质及电子设备,

通过设计对缓存队列中增量行情报文的释放机制,由硬件自动删除旧历史报文,这样保存的待解增量报文就是最新的,不需要软件干预就可以了,软件只需要通知全量配置结束,启动解析即可。在开发时,设定FIFO缓冲时不需要再考虑和软件的耦合,任务分工更加明确,可以有效提高开发项目成功率。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例提供的行情数据缓存处理方法的一种流程示意图。

图2为本申请实施例提供的行情数据缓存处理方法的另一种流程示意图。

图3为本申请实施例提供的行情数据缓存处理装置的一种结构示意图。

图4为本申请实施例提供的执行行情数据缓存处理方法的一种硬件结构示意图。

图5为本申请实施例提供的行情数据缓存处理装置的另一种结构示意图。

图6本申请实施例提供的电子设备的一种结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了上述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。

本申请实施例提供一种行情数据缓存处理方法、装置、计算机可读存储介质及电子设备。具体地,本申请实施例的行情数据缓存处理方法可以由电子设备执行,其中,该电子设备可以为终端或者服务器等设备。该终端可以为笔记本电脑、个人计算机(PC,Personal Computer)等终端设备。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群,还可以是提供云服务、云数据库等基础云计算服务的云服务器。

以下将分别对本申请实施例提供的一种行情数据缓存处理方法、装置、计算机可读存储介质及电子设备进行详细说明。需说明的是,以下实施例的序号不作为对实施例优选顺序的限定。

图1是本申请一个实施例提供的行情数据缓存处理方法的一种流程示意图,请参考图1,该行情数据缓存处理方法包括如下步骤:

步骤101,响应于全量数据恢复。

行情信息通常通过行情快照和增量行情的形式提供给客户,行情快照即全量数据反映了某个时刻(某个行情切片时刻)的市场状态,包括了某时刻的报单、成交、合约和市场统计等所有行情信息。

增量行情反映了行情快照的变化,包含了新旧行情快照在相应两个切片时刻内的累积变化,新行情快照可以根据原行情快照及对应的增量行情得到,增量行情服务提供增量行情推送功能,按照主题的刷新频率,向广播组内所有行情用户广播推送增量行情。

行情快照服务定期推送行情快照,如果行情快照一切正常,推送到客户端的行情快照则被丢弃,如果行情快照出错或行情快照需要初始化、软件复位,则需要对行情快照进行恢复。

步骤102,实时判断缓存队列的存储状态,其中所述缓存队列为FIFO队列,用于存储获取的增量行情报文。

在行情数据解析中,当需要恢复全量数据时,硬件对增量行情报文的解析需要软件准备正确的全量数据,因此在此之前,硬件需要对收到的增量行情报文缓存,在本实施例中硬件可以是专用芯片(ASIC)、FPGA (Field Programmable Gate Array)硬件可重构的体系结构,在本实施例中缓存队列采用FIFO的方式存储增量行情报文。

步骤103,判断所述缓存队列中的闲置空间是否小于等于设定的阈值。

如前所述在进行全量数据恢复期间,硬件是需要对网络上不断传输的报文进行存储,不过缓存队列的深度是有限的,在全量数据恢复情形下,硬件只需解析最新正确的全量数据之后的增量行情数据即可,如果对缓冲队列的存储不加控制,则有可能导致缓存队列中存储的大部分数据是所述最新正确的全量数据之前的增量行情数据。在本实施例中,响应于恢复全量数据,首先判断所述缓存队列中的闲置空间是否小于等于设定的阈值。当所述缓存队列中的闲置空间大于设定的阈值时,继续判断。

步骤104,当所述缓存队列中的闲置空间小于等于设定的阈值时,则根据进入所述缓存队列的先后顺序,依次释放最先进入所述缓存队列中的所述增量行情报文,以确保所述缓存队列能够始终保存至少一个所述增量行情报文。

判断得出所述缓存队列中的闲置空间小于等于设定的阈值时,则根据进入所述缓存队列的先后顺序,依次释放最先进入所述缓存队列中的所述增量行情报文,这样一方面可以实现缓存队列空间的自动释放,不再需要软件通知缓存队列何时开始存储新的增量行情数据;另一方面,按照进入缓存队列的先后顺序进行释放,可以确保释放的均是所述最新正确的全量数据之前的增量行情数据,不影响后续硬件对增量行情数据的解析。

增量行情报文的总长度通常由交易发布系统确定,例如上海期货交易所第二代行情发布平台,提供增量行情报文的总长度上限为1232字节,MIRP(即增量行情报文)报文的报文头长度和报文头中的报文体长度加起来不能大于1232字节。在恢复全量数据期间,确保所述缓存队列能够始终保存至少一个所述增量行情报文,既可保证即不漏掉最新正确的全量数据之后的增量行情数据,又能调高缓存的利用效率。

图2是本申请另一实施例提供的行情数据缓存处理方法的一种流程示意图,请参考图2,与前述实施例相同的步骤内容,本实施例不再赘述。相比前述实施例,本实施例还包括:

步骤105,响应于所述依次释放最先进入所述缓存队列中的所述增量行情报文,暂停所述增量行情报文的解析。

在释放缓存队列中的数据期间,可以暂停增量行情报文的解析并等到释放操作完成,以及响应软件触发硬件解析,再继续后续的增量报文解析。

在一个实施例中,所述依次释放最先进入所述缓存队列中的所述增量行情报文具体为,通过滑窗的形式依次读出最先进入所述缓存队列中的所述增量行情报文,

如果在滑窗扔包期间,端口被占用,可以虚拟成对后级单元的判断是暂时没有任何报文可以解析,待扔包完成后,可以恢复FIFO状态,所述后级单元可以是业务合约增量解析单元。

步骤106,响应于软件收到并解析完所述全量数据,触发硬件解析所述缓存队列中的增量行情报文。

软件获取并解析完最新的全量数据后,会通知硬件继续进行增量报文的解析。

在实际应用中,需要说明的是,从行情发布系统接收的全量数据和增量行情数据经过过滤,使得进入硬件缓存的全是增量行情数据,全量行情数据经过判断后,要么丢弃,要么由软件进行解析。

在一个实施例中,上述实施例中的阈值,具体为一个增量行情报文的长度上限,例如上海期货交易所发布的增量行情报文的长度上限为1232字节。

在一个实施例中,所述通过滑窗的形式依次读出的最先进入所述缓存队列中的所述增量行情报文存储到指定位置或直接丢弃。通过滑窗形式读出的报文可以存储到指定位置,进行冗余备份。

请参阅图3,基于上述实施例公开的一种行情数据缓存处理方法,本实施例对应公开了一种行情数据缓存处理装置,该装置具体可以包括:

第一响应单元301,用于响应于全量数据恢复,

判断单元302,实时判断缓存队列的存储状态,其中所述缓存队列为FIFO队列,用于存储获取的增量行情报文,

释放单元303,用于若所述缓存队列中的闲置空间小于等于设定的阈值,则根据进入队列的先后顺序,依次释放最先进入所述缓存队列中的所述增量行情报文,以确保所述缓存队列能够始终保存至少一个所述增量行情报文。

在实际应用中,具体的硬件架构可以参考图4所示,行情发布系统推送的行情数据经解析过滤后(其中过滤单元未示出),传输至FIFO缓存队列中,响应于全量数据恢复,判断单元(未示出)判断FIFO队列的存储状态,当队列中的空闲空间小于等于一个增量行情报文大小时,释放单元将队列中的旧报文释放,合约增量行情解析单元暂停解析,等待软件通知后,继续增量行情报文的解析。

请参阅图5,本申请另一实施例提供的行情数据缓存处理装置,除上述实施例的装置中的单元之外,该装置具体还包括:

暂停单元304,响应于所述依次释放最先进入所述缓存队列中的所述增量行情报文,暂停所述增量行情报文的解析。

以及,触发单元305,用于响应于软件收到并解析完所述全量数据,触发硬件解析所述缓存队列中的增量行情报文。

相应的,本申请实施例还提供一种电子设备,该电子设备可以为终端或者服务器。如图6所示,图6为本申请实施例提供的电子设备的结构示意图。该电子设备400包括有一个或者一个以上处理核心的处理器401、有一个或一个以上计算机可读存储介质的存储器402及存储在存储器402上并可在处理器上运行的计算机程序。其中,处理器401与存储器402电性连接。本领域技术人员可以理解,图中示出的电子设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

处理器401是电子设备400的控制中心,利用各种接口和线路连接整个电子设备400的各个部分,通过运行或加载存储在存储器402内的软件程序(计算机程序)和/或单元,以及调用存储在存储器402内的数据,执行电子设备400的各种功能和处理数据,从而对电子设备400进行整体监控。

在本申请实施例中,电子设备400中的处理器401会按照如下的步骤,将一个或一个以上的应用程序的进程对应的指令加载到存储器402中,并由处理器401来运行存储在存储器402中的应用程序,从而实现各种功能:

响应于全量数据恢复,实时判断缓存队列的存储状态,其中所述缓存队列为FIFO队列,用于存储获取的增量行情报文,

若所述缓存队列中的闲置空间小于等于设定的阈值,则根据进入所述缓存队列的先后顺序,依次释放最先进入所述缓存队列中的所述增量行情报文,

以确保所述缓存队列能够始终保存至少一个所述增量行情报文。

以上各个操作的具体实施可参见前面的实施例,在此不再赘述。

可选的,如图6所示,电子设备400还包括:硬件解析电路403、通讯模块404、输入单元405以及电源406。其中,处理器401分别与硬件解析电路403、通讯模块404、输入单元405以及电源406电性连接。本领域技术人员可以理解,图6中示出的电子设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

硬件解析电路403可用于解析从行情发布系统接收的UDP/TCP数据包。

通信模块404可用于与行情发布系统和/或用户客户端通信。

输入单元405可用于接收输入的数字、字符信息或用户特征信息(例如指纹、虹膜、面部信息等),以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。

电源406用于给电子设备400的各个部件供电。可选的,电源406可以通过电源管理系统与处理器401逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源406还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。

为此,本申请实施例提供一种计算机可读存储介质,其中存储有多条计算机程序,该计算机程序能够被处理器进行加载,以执行本申请实施例所提供的任一种行情数据缓存处理方法中的步骤。例如,该计算机程序可以执行如下步骤:

响应于全量数据恢复,实时判断缓存队列的存储状态,其中所述缓存队列为FIFO队列,用于存储获取的增量行情报文,

若所述缓存队列中的闲置空间小于等于设定的阈值,则根据进入所述缓存队列的先后顺序,依次释放最先进入所述缓存队列中的所述增量行情报文,

以确保所述缓存队列能够始终保存至少一个所述增量行情报文。

以上各个操作的具体实施可参见前面的实施例,在此不再赘述。

其中,该计算机可读存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。

由于该存储介质中所存储的计算机程序,可以执行本申请实施例所提供的任一种行情数据缓存处理方法中的步骤,因此,可以实现本申请实施例所提供的任一种行情数据缓存处理方法所能实现的有益效果,详见前面的实施例,在此不再赘述。

以上对本申请实施例所提供的一种行情数据缓存处理方法、装置、计算机可读存储介质及电子设备进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

相关技术
  • 行情数据缓存处理方法、装置、存储介质及电子设备
  • 数据缓存处理方法、装置、电子设备及可读存储介质
技术分类

06120113804788