基于行情数据的查询及回放方法、装置、设备及介质制造方法及图纸

技术编号:35432196 阅读:13 留言:0更新日期:2022-11-03 11:37
本发明专利技术涉及大数据技术领域,提供一种基于行情数据的查询及回放方法、装置、设备及介质,其方法包括:确定向服务端发起的针对行情数据的每个请求的类型;将每个请求中的查询请求写入发送队列;获取每个请求中的回放请求的请求代码数目;根据所述请求代码数目对所述回放请求进行拆分,得到多个子请求并写入发送队列;将发送队列中的每个子请求异步发送至服务端;当接收到服务端根据每个请求返回的请求结果时,从中提取回放请求对应的目标结果;根据行情时间对目标结果进行触发式反馈。本发明专利技术能够通过对查询与回放请求的拆分,使得服务端无差别化处理查询和回放请求,实现资源的有效利用,同时实现高效且高并发的行情数据查询及回放。放。放。

【技术实现步骤摘要】
基于行情数据的查询及回放方法、装置、设备及介质


[0001]本专利技术涉及大数据
,尤其涉及一种基于行情数据的查询及回放方法、装置、设备及介质。

技术介绍

[0002]现有的证券行业中,在查询和回放历史数据场景下,采用的方案主要是将一部分历史行情数据存文件,一部分历史行情数据存数据库,但是,由于文件和数据库的各类资源有限,难以实现高效、高并发的查询及回放。
[0003]另外,查询任务粒度通常比较小,且查询是请求应答式,一个请求获取一个响应结果,而回放任务粒度通常比较大,一次可能回放上十G的数据量,并且,当客户端发送一个异步回放的请求后,服务端会将请求的历史行情源源不断地推送给客户端。因此,为了不影响查询请求的时效性,现有技术中通常会限制一个回放任务的最大查询数据量以及每个客户端最多能回放的任务数量,给查询请求留有相应的资源,同时避免对资源的过渡使用。但是,当所有客户端都只有回放请求没有查询请求,或者在只有一个客户端有请求而其他客户端没有并发请求的情况下,由于仍然为每个客户端保留了查询请求的资源,因此会造成这部分保留资源的浪费,无法充分利用服务端资源。

技术实现思路

[0004]鉴于以上内容,有必要提供一种基于行情数据的查询及回放方法、装置、设备及介质,能够充分利用资源,并实现高效且高并发的行情数据查询及回放。
[0005]一种基于行情数据的查询及回放方法,所述基于行情数据的查询及回放方法包括:对于向服务端发起的针对行情数据的每个请求,确定每个请求的类型;对于每个请求中的查询请求,将所述查询请求写入所述客户端的发送队列;对于每个请求中的回放请求,获取所述回放请求的请求代码数目;根据所述请求代码数目对所述回放请求进行拆分,得到多个子请求,并将所述多个子请求写入所述发送队列;将所述发送队列中的每个子请求异步发送至所述服务端;当接收到所述服务端根据每个请求返回的请求结果时,从所述请求结果中提取所述回放请求对应的请求结果作为目标结果;根据行情时间,对所述目标结果进行触发式反馈。
[0006]根据本专利技术优选实施例,所述确定每个请求的类型包括:确定发起每个请求的接口;通过发起每个请求的接口获取每个请求的协议包;从每个请求的协议包中提取每个请求的类型字段标识;根据每个请求的类型字段标识确定每个请求的类型。
[0007]根据本专利技术优选实施例,在将所述发送队列中的每个子请求异步发送至所述服务端前,所述方法还包括:创建相互独立执行的请求发送线程及结果处理线程;其中,所述请求发送线程用于不断发送向所述服务端发起的每个请求,所述结果处理线程用于不断处理所述服务端返回的请求结果。
[0008]根据本专利技术优选实施例,所述根据所述请求代码数目对所述回放请求进行拆分,得到多个子请求,并将所述多个子请求写入所述发送队列包括:对于每个回放请求,当所述请求代码数目大于或者等于1且小于或者等于5时,根据时间区间范围240分钟拆分所述回放请求为第一子请求,并将所述第一子请求的权重配置为1;当所述请求代码数目大于或者等于6且小于或者等于10时,根据时间区间范围96分钟拆分所述回放请求为第二子请求,并将所述第二子请求的权重配置为2;当所述请求代码数目大于或者等于11且小于或者等于50时,根据时间区间范围48分钟拆分所述回放请求为第三子请求,并将所述第三子请求的权重配置为3;当所述请求代码数目大于或者等于51时,根据时间区间范围16分钟拆分所述回放请求为第四子请求,并将所述第四子请求的权重配置为5;将每个回放请求对应的拆分后的每个子请求存入一个map表,其中,在每个map表中,将每个子请求的ID确定为key,将每个子请求的序号确定为value;将所述map表对应的每个子请求写入队列,得到所述发送队列。
[0009]根据本专利技术优选实施例,所述将所述发送队列中的每个子请求异步发送至所述服务端包括:获取所述客户端的最大发送请求数,所述服务端的最大查询请求数,及所述客户端对所述服务端返回的请求结果的最大接收数;获取所述客户端已发送且未被所述服务端接收结果的请求数作为当前发送请求数,所述服务端的当前查询请求数,及所述客户端对所述服务端返回的处于已接收且未被所述客户端处理的状态的请求结果数作为当前接收数;当所述当前发送请求数小于或者等于所述最大发送请求数,所述当前查询请求数小于或者等于所述最大查询请求数,所述当前接收数小于或者等于所述最大接收数时,将所述发送队列中的每个子请求异步发送至所述服务端;当所述当前发送请求数大于所述最大发送请求数时,阻塞从所述发送队列中获取请求,直至接收到所述服务端返回的请求结果且所述当前发送请求数递减至小于所述最大发送请求数时,将所述发送队列中的每个子请求异步发送至所述服务端;当所述当前查询请求数大于所述最大查询请求数时,限制所述客户端的发送速度,直至达到预设时长,再次尝试将所述发送队列中的每个子请求异步发送至所述服务端;当所述当前接收数大于所述最大接收数时,限制所述客户端的发送速度,直至所述客户端对所述服务端返回的处于已接收且未被所述客户端处理的状态的请求结果数小于或者等于所述最大接收数,继续将所述发送队列中的每个子请求异步发送至所述服务端。
[0010]根据本专利技术优选实施例,所述方法还包括:
从所述请求结果中提取所述查询请求对应的请求结果;直接反馈所述查询请求对应的请求结果。
[0011]根据本专利技术优选实施例,所述根据行情时间,对所述目标结果进行触发式反馈包括:按照所述行情时间由早到晚的顺序处理所述目标结果中的每个子结果;其中,对于任务指针指向的当前子结果,获取按照所述行情时间确定的实际待处理子结果;当所述当前子结果为所述实际待处理子结果时,将所述子结果的状态标记为已就绪状态,并按照所述行情时间依次获取所述当前子结果后连续的处于所述已就绪状态的其他子结果,直至检测到有子结果处于未就绪状态,停止获取所述其他子结果,并反馈所述当前子结果及所述其他子结果,将所述任务指针指向处于所述未就绪状态的子结果;当所述当前子结果不为所述实际待处理子结果时,将所述子结果的状态标记为已就绪状态。
[0012]一种基于行情数据的查询及回放装置,运行于客户端,所述基于行情数据的查询及回放装置包括:确定单元,用于对于向服务端发起的针对行情数据的每个请求,确定每个请求的类型;发送单元,用于对于每个请求中的查询请求,将所述查询请求写入所述客户端的发送队列;获取单元,用于对于每个请求中的回放请求,获取所述回放请求的请求代码数目;拆分单元,用于根据所述请求代码数目对所述回放请求进行拆分,得到多个子请求,并将所述多个子请求写入所述发送队列;所述发送单元,还用于将所述发送队列中的每个子请求异步发送至所述服务端;提取单元,用于当接收到所述服务端根据每个请求返回的请求结果时,从所述请求结果中提取所述回放请求对应的请求结果作为目标结果;反馈单元,用于根据行情时间,对所述目标结果进行触发式反馈。
[0013]一种计算机设备,所述计算机设备包括:存储器,存储至少一个指令;及处理器,执行所述存储器中存储的指令以实现所述基于行本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于行情数据的查询及回放方法,应用于客户端,其特征在于,所述基于行情数据的查询及回放方法包括:对于向服务端发起的针对行情数据的每个请求,确定每个请求的类型;对于每个请求中的查询请求,将所述查询请求写入所述客户端的发送队列;对于每个请求中的回放请求,获取所述回放请求的请求代码数目;根据所述请求代码数目对所述回放请求进行拆分,得到多个子请求,并将所述多个子请求写入所述发送队列;将所述发送队列中的每个子请求异步发送至所述服务端;当接收到所述服务端根据每个请求返回的请求结果时,从所述请求结果中提取所述回放请求对应的请求结果作为目标结果;根据行情时间,对所述目标结果进行触发式反馈。2.如权利要求1所述的基于行情数据的查询及回放方法,其特征在于,所述确定每个请求的类型包括:确定发起每个请求的接口;通过发起每个请求的接口获取每个请求的协议包;从每个请求的协议包中提取每个请求的类型字段标识;根据每个请求的类型字段标识确定每个请求的类型。3.如权利要求1所述的基于行情数据的查询及回放方法,其特征在于,在将所述发送队列中的每个子请求异步发送至所述服务端前,所述方法还包括:创建相互独立执行的请求发送线程及结果处理线程;其中,所述请求发送线程用于不断发送向所述服务端发起的每个请求,所述结果处理线程用于不断处理所述服务端返回的请求结果。4.如权利要求1所述的基于行情数据的查询及回放方法,其特征在于,所述根据所述请求代码数目对所述回放请求进行拆分,得到多个子请求,并将所述多个子请求写入所述发送队列包括:对于每个回放请求,当所述请求代码数目大于或者等于1且小于或者等于5时,根据时间区间范围240分钟拆分所述回放请求为第一子请求,并将所述第一子请求的权重配置为1;当所述请求代码数目大于或者等于6且小于或者等于10时,根据时间区间范围96分钟拆分所述回放请求为第二子请求,并将所述第二子请求的权重配置为2;当所述请求代码数目大于或者等于11且小于或者等于50时,根据时间区间范围48分钟拆分所述回放请求为第三子请求,并将所述第三子请求的权重配置为3;当所述请求代码数目大于或者等于51时,根据时间区间范围16分钟拆分所述回放请求为第四子请求,并将所述第四子请求的权重配置为5;将每个回放请求对应的拆分后的每个子请求存入一个map表,其中,在每个map表中,将每个子请求的ID确定为key,将每个子请求的序号确定为value;将所述map表对应的每个子请求写入队列,得到所述发送队列。5.如权利要求1所述的基于行情数据的查询及回放方法,其特征在于,所述将所述发送队列中的每个子请求异步发送至所述服务端包括:
获取所述客户端的最大发送请求数,所述服务端的最大查询请求数,及所述客户端对所述服务端返回的请求结果的最大接收数;获取所述客户端已发送且未被所述服务端接收结果的请求数作为当前发送请求数,所述服务端的当前查询请求数,及所述客户端对所述服务端返回的处于已接收且未被所述客户端处理的状态的请求结果数作为当前接收数;当所述当前发送请求数小于或者等于所述最大发送请求数,所述当前查询请求数小于或者...

【专利技术属性】
技术研发人员:阳小鲜李秋军刘振民张文成周立红苏苗强
申请(专利权)人:华锐分布式北京技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1