一种基于两级缓存的场外衍生品交易订单显示方法及系统与流程

摘要: 本发明涉及交易订单数据处理,具体涉及一种基于两级缓存的场外衍生品交易订单显示方法及系统。背景技术:1、随着我国场外衍生品市场的迅速发展,以收益互换、场外期权等品...
一种基于两级缓存的场外衍生品交易订单显示方法及系统与流程

本发明涉及交易订单数据处理,具体涉及一种基于两级缓存的场外衍生品交易订单显示方法及系统。

背景技术:

1、随着我国场外衍生品市场的迅速发展,以收益互换、场外期权等品类为代表的场外衍生品交易量持续提升,在前台应用系统中对场外衍生品交易订单(下文简称订单)进行展示、状态更新及界面操作,存在普遍的实际需求。

2、通常而言,交易订单存储于后台服务的缓存中间件或数据库中,前台应用系统从后台服务获取到订单数据后,由前台应用系统负责对订单数据进行处理和渲染后以订单视图形式展示给用户。在实际应用场景中,用户往往需要同时查看、处理数量较多的交易订单,通常会同时开启多个订单视图,并为每个订单视图设定独立的订单筛选条件,以便于快速定位订单位置和观察各筛选条件下的订单状态更新。

3、由于场外衍生品交易存在订单状态变更频繁的特点,前台应用系统需要在满足较低延时的条件下接收、解析后台服务推送的订单更新报文并显示至前台界面。然而由于多订单视图的存在,如何在保证界面交互流畅的前提下实现多订单视图的数据更新,并保证各订单视图下的订单数据同步,成为前台应用系统亟需解决的技术问题。

技术实现思路

1、为了解决上述技术问题,本发明提供一种基于两级缓存的场外衍生品交易订单显示方法及系统。

2、为实现上述目的,本发明采用如下技术方案:

3、本发明一方面提供一种基于两级缓存的场外衍生品交易订单显示方法,部署服务器和客户端,并在客户端部署订单数据管理器、动态刷新控制器、以及至少一个订单视图,按如下步骤s1至步骤s5实现基于两级缓存的订单数据显示与更新:

4、步骤s1,初始化订单数据管理器、动态刷新控制器、以及各订单视图,并通过订单数据管理器向服务器发送实时获取订单变更数据的请求;

5、步骤s2,响应于数据查询请求,由服务器将目标交易日的全量订单数据发送至订单数据管理器,并由订单数据管理器构建一级缓存,其中一级缓存包括订单标识、订单数据、以及各订单之间的父子关系映射;

6、步骤s3,分别针对每一订单视图,从一级缓存中筛选出满足该订单视图筛选条件的订单数据,并构建该订单视图对应的二级缓存,同时将二级缓存的标志位初始化为待更新状态,其中二级缓存包括订单视图标识、筛选条件、标志位、以及归属于该订单视图的订单标识集合;

7、步骤s4,响应于订单变更推送报文,由订单数据管理器解析订单变更推送报文,获得订单变更数据并更新一级缓存,进一步根据各订单视图的筛选条件,确定订单变更数据归属的二级缓存,并将订单变更数据归属的二级缓存的标志位设置为待更新状态;

8、步骤s5,由动态刷新控制器采集运行状态参数,并计算订单视图的刷新时间间隔;响应于达到刷新时间间隔时触发的刷新事件,分别针对每个订单视图,根据该订单视图二级缓存的标志位,判断是否更新该订单视图,是则基于订单标识集合,从一级缓存中获取相应的订单数据以及各订单之间的父子关系,并更新订单视图,进一步将该订单视图二级缓存的标志位设置为未更新;否则直接返回步骤s5。

9、进一步地,所述订单标识包括客户订单标识、内部订单标识、执行订单标识;所述订单标识集合包括客户订单标识数组、内部订单标识数组和执行订单标识数组,且各订单标识数组分别包括用于记录归属于每一订单视图的客户订单、内部订单、执行订单的标识。

10、进一步地,所述步骤s4中更新一级缓存的操作具体为:获取订单变更数据的订单变更标识,判断一级缓存中是否存在与订单变更标识相同的订单标识,是则更新该订单标识对应的订单数据;否则根据各订单之间的父子关系映射,从一级缓存中筛选出订单变更数据的父订单,并将订单变更数据及其变更标识添加至一级缓存中,同时构建父子关系映射。

11、进一步地,所述动态刷新控制器通过采集预设时间内订单变更量、待更新视图占比、终端cpu占用率、终端内存占用率、目标交易时段、以及用户策略,按如下公式计算出下一轮刷新时间间隔:

12、;

13、;

14、其中,为下一刷新时间间隔;为原始刷新时间间隔;为最小刷新时间间隔;为最大刷新时间间隔;为边界约束函数;为基准刷新时间间隔;为交易时段标识;为订单变更强度因子;为待更新视图占比因子;为cpu占用率因子;为内存占用率因子;为刷新压力因子;为用户策略因子;为订单变更强度权重系数;为待更新视图占比权重系数;为cpu占用率权重系数;为内存占用率权重系数;为刷新压力权重系数;为用户策略影响权重系数。

15、进一步地,所述步骤s5中更新订单视图的操作具体为:根据各订单之间的父子关系,构建各订单之间的层级结构,进一步在订单视图中以树型结构展示订单更新结果。

16、进一步地,所述步骤s5更新订单视图后还包括:判断客户端是否处于关闭状态,是则结束订单视图显示与更新,否则返回步骤s4。

17、进一步地,所述一级缓存采用读写锁机制进行保护;

18、具体的,响应于订单变更推送报文时,更新线程获取写锁以更新一级缓存;响应于定时触发事件时,订单视图的刷新线程获取读锁以读取一级缓存。

19、本发明另一方面提供一种基于两级缓存的场外衍生品交易订单显示系统,用于实现所述基于两级缓存的场外衍生品交易订单显示方法,包括:

20、订单数据管理模块,用于与服务器交互,接收订单变更推送报文,并管理缓存数据;

21、一级缓存模块,用于存储全量订单数据以及各订单之间的父子关系映射;

22、二级缓存模块,用于为每个订单视图构建对应的二级缓存,且二级缓存包括订单视图标识、筛选条件、标志位、以及各订单视图对应的订单标识集合;

23、动态刷新调度模块,用于根据运行状态参数,计算刷新时间间隔,从而触发各订单视图的刷新事件;

24、订单视图模块,用于响应于刷新事件,读取对应二级缓存的标志位,当标志位为待更新状态时,从一级缓存模块获相应的订单数据以及各订单之间的父子关系,并更新订单视图。

25、采用上述技术方案带来的有益效果:

26、(1)本发明通过一级缓存与二级缓存独立存储、整合使用的方式,实现了各订单视图的数据同步,有效解决了现有技术中在接收到订单变更推送时立刻刷新订单视图,在短时间内频繁触发订单视图刷新将导致界面卡顿的问题;

27、(2)本发明采用动态刷新事件的机制,综合考虑单位时间内订单变更推送量、待更新视图占比、终端cpu占用率、终端内存占用率、当前交易时段以及用户策略等因素,动态调整订单视图下一轮刷新事件所采用的刷新时间间隔;

28、(3)本发明订单视图在刷新事件中通过二级缓存的标志位,快速判断订单视图是否有数据更新,并能够将两次刷新事件之间的多次数据更新合并为一次视图刷新,避免了因短时间内频繁刷新订单视图导致的卡顿,保证客户端交互的流畅性。

1.一种基于两级缓存的场外衍生品交易订单显示方法,其特征在于,部署服务器和客户端,并在客户端部署订单数据管理器、动态刷新控制器、以及至少一个订单视图,按如下步骤s1至步骤s5实现基于两级缓存的订单数据显示与更新:

2.根据权利要求1所述基于两级缓存的场外衍生品交易订单显示方法,其特征在于,所述订单标识包括客户订单标识、内部订单标识、执行订单标识;所述订单标识集合包括客户订单标识数组、内部订单标识数组和执行订单标识数组,且各订单标识数组分别包括用于记录归属于每一订单视图的客户订单、内部订单、执行订单的标识。

3.根据权利要求1所述基于两级缓存的场外衍生品交易订单显示方法,其特征在于,所述步骤s4中更新一级缓存的操作具体为:获取订单变更数据的订单变更标识,判断一级缓存中是否存在与订单变更标识相同的订单标识,是则更新该订单标识对应的订单数据;否则根据各订单之间的父子关系映射,从一级缓存中筛选出订单变更数据的父订单,并将订单变更数据及其变更标识添加至一级缓存中,同时构建父子关系映射。

4.根据权利要求1所述基于两级缓存的场外衍生品交易订单显示方法,其特征在于,所述动态刷新控制器通过采集预设时间内订单变更量、待更新视图占比、终端cpu占用率、终端内存占用率、目标交易时段、以及用户策略,按如下公式计算出下一轮刷新时间间隔:

5.根据权利要求1所述基于两级缓存的场外衍生品交易订单显示方法,其特征在于,所述步骤s5中更新订单视图的操作具体为:根据各订单之间的父子关系,构建各订单之间的层级结构,进一步在订单视图中以树型结构展示订单更新结果。

6.根据权利要求1所述基于两级缓存的场外衍生品交易订单显示方法,其特征在于,所述步骤s5更新订单视图后还包括:判断客户端是否处于关闭状态,是则结束订单视图显示与更新,否则返回步骤s4。

7.根据权利要求1所述基于两级缓存的场外衍生品交易订单显示方法,其特征在于,所述一级缓存采用读写锁机制进行保护;

8.一种基于两级缓存的场外衍生品交易订单显示系统,用于实现权利要求1-7任一项所述基于两级缓存的场外衍生品交易订单显示方法,其特征在于,包括: