查询请求消息的处理方法及装置制造方法及图纸

技术编号:13893442 阅读:206 留言:0更新日期:2016-10-24 17:50
本发明专利技术公开了一种查询请求消息的处理方法及装置。其中,该方法包括:主线程接收来自于游戏逻辑服务器进程的查询请求消息;主线程根据查询请求消息的请求内容从多个查询线程中选取其中一个查询线程,其中,查询线程用于独立完成与查询请求消息对应的操作;主线程将查询请求消息发送至与选取的查询线程对应的第一预设存储区域。本发明专利技术解决了相关技术中所采用的多线程独立运行或者共享lua虚拟机的存储框架,抑或是采用的多进程独立运行lua虚拟机的存储框架,均无法实现既能够支持同步查询,同时还能够减少进程或线程之间的交互来确保数据操作的安全性的技术问题。

【技术实现步骤摘要】

本专利技术涉及计算机领域,具体而言,涉及一种查询请求消息的处理方法及装置
技术介绍
目前,现有的网络游戏数据存储应用程序框架设计因受制于数据库查询或文件读写等输入输出(IO)操作的速度限制,故而通常会被设计成多线程或者多进程结构,以提高查询、存储数据的效率。而对于一个基于lua语言开发的网络游戏项目而言,由于lua语言本身并不支持多线程结构,因此,常用的几种数据存储应用程序框架可以包括以下几种:1.只有主线程运行lua虚拟机,其他线程在进程的C语言运行环境中接收来自于主线程的异步查询请求,执行查询逻辑,并回调给主线程。通过这种方式实现的存储框架,其主要缺陷在于:对于应用程序开发而言,不够友好,因为其只能编写异步查询逻辑,且所有的查询结果必须等待异步线程回调给主线程。2.每个进程运行一个lua虚拟机,提供同步的数据查询接口。这种方式实现的存储框架,虽然对于应用程序开发较为友好,且能够提供同步查询;但是其缺陷在于:多进程的框架相比于多线程框架而言结构更为复杂,况且,由于通常还需要一个独立进程管理这些进程,因此,会增加管理多个进程的工作量,此外,多进程之间通信也没有多线程之间方便。3.本文档来自技高网...

【技术保护点】
一种查询请求消息的处理方法,其特征在于,包括:主线程接收来自于游戏逻辑服务器进程的查询请求消息;所述主线程根据所述查询请求消息的请求内容从多个查询线程中选取其中一个查询线程,其中,所述查询线程用于独立完成与所述查询请求消息对应的操作;所述主线程将所述查询请求消息发送至与选取的查询线程对应的第一预设存储区域。

【技术特征摘要】
1.一种查询请求消息的处理方法,其特征在于,包括:主线程接收来自于游戏逻辑服务器进程的查询请求消息;所述主线程根据所述查询请求消息的请求内容从多个查询线程中选取其中一个查询线程,其中,所述查询线程用于独立完成与所述查询请求消息对应的操作;所述主线程将所述查询请求消息发送至与选取的查询线程对应的第一预设存储区域。2.根据权利要求1所述的方法,其特征在于,所述主线程根据所述请求内容从所述多个查询线程中选取其中一个查询线程包括以下之一:如果所述主线程根据所述请求内容确定所述查询请求消息与先前接收到的查询请求消息存在时序关系,那么所述主线程从所述多个查询线程中选取执行与所述先前接收到的查询请求消息对应的查询操作的查询线程作为所述选取的查询线程;如果所述主线程根据所述请求内容确定所述查询请求消息与先前接收到的查询请求消息不存在时序关系,那么所述主线程从所述多个查询线程中随机选取任一个查询线程作为所述选取的查询线程。3.根据权利要求1所述的方法,其特征在于,在所述主线程将所述查询请求消息发送至所述第一预设存储区域之前,还包括:所述主线程开启线程锁;以及在所述主线程将所述查询请求消息发送至所述第一预设存储区域之后,还包括:所述主线程关闭所述线程锁。4.根据权利要求1所述的方法,其特征在于,在所述主线程将所述查询请求消息发送所述第一预设存储区域之后,还包括:所述主线程从与所述主线程对应的第二预设存储区域获取查询结果;所述主线程将所述查询结果返回至所述游戏逻辑服务器进程,并将所述查询结果从所述第二预设存储区域中删除。5.根据权利要求4所述的方法,其特征在于,在所述主线程从所述第二预设存储区域获取查询结果之前,还包括:所述主线程开启线程锁;以及在所述主线程将所述查询结果返回至所述游戏逻辑服务器进程,并将所述查询结果从所述第二预设存储区域中删除之后,还包括:所述主线程关闭线程锁。6.根据权利要求1所述的方法,其特征在于,在所述主线程将所述查询请求消息发送所述第一预设存储区域之后,还包括:所述主线程实时监控所述多个查询线程的工作状态;所述主线程在检测到所述多个查询线程中的部分或全部查询线程发生工作异常的情况下,对发生异常的查询线程执行重启操作。7.根据权利要求1所述的方法,其特征在于,在所述主线程将所述查询请求消息发送所述第一预设存储区域之后,还包括:所述主线程根据当前的负载情况在所述多个查询线程的基础上增加或减少一个或多个查询线程。8.根据权利要求1所述的方法,其特征在于,在所述主线程将所述查询请求消息发送所述第一预设存储区域之后,还包括:所述主线程在获取到退出信号的情况下,通知所述多个查询线程执行退出操作,其中,所述退出信号用于关闭查询服务;所述主线程在等待所述多个查询线程全部完成退出操作后,执行自身的退出操作。9.根据权利要求1所述的方法,其特征在于,在所述主线程接收来自于所述游戏逻辑服务器进程的所述查询请求消息之前,还包括:所述主线程建立自身与游戏逻辑服务器进程之间的网络连接;所述主线程创建所述多个查询线程,并分别采用不同的全局标识符对所述多个查询线程中的每个查询线程进行区分。10.一种查询请求消息的处理方法,其特征在于,包括:查询线程在自身创建的虚拟机的触发下从第一预设存储区域内获取查询请求
\t消息,其中,所述查询请求消息是由主线程从游戏逻辑服务器进程接收到并转发至所述第一预设存储区域的;所述查询线程执行与所述查询请求消息对应的操作,并将查询结果反馈至第二预设存储区域,其中,所述第二预设存储区域用于所述主线程获取所述查询结果。11.根据权利要求10所述的方法,其特征在于,在将所述查询结果反馈至所述第二预设存储区域之后,还包括:所述查询线程接收来自于所述主线程的退出信号,其中,所述退...

【专利技术属性】
技术研发人员:徐训盼
申请(专利权)人:网易杭州网络有限公司
类型:发明
国别省市:浙江;33

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

1