数据获取方法和装置制造方法及图纸

技术编号:16508628 阅读:38 留言:0更新日期:2017-11-07 08:39
本申请提供了数据获取方法和装置。其中,该方法包括:接收来自客户端的数据请求;确定用于处理所述数据请求的通用网关接口CGI,按照优先级从高至低的顺序依次对所述CGI的任务执行以下处理:预估任务当前的响应时间,检测预估的响应时间是否满足设定条件,如果是,由所述CGI执行该任务,如果否,更新预估的响应时间,依据更新后的响应时间确定是否由所述CGI执行该任务。采用本发明专利技术,能够实现CGI依据网络状况获取数据,避免由于CGI不可用而导致的页面响应速度慢和CGI500错误。

【技术实现步骤摘要】
数据获取方法和装置
本申请涉及互联网技术,特别涉及数据获取方法和装置。
技术介绍
在互联网应用中,当页面需要获取数据时,客户端会向Web服务器发起请求。Web服务器的公共网关接口(CGI:CommonGatewayInterface)会依据该请求获取对应的数据,并在将获取的数据返回给客户端时,以串行方式请求后台对该数据进行处理,之后返回处理后的数据给客户端。这里,所谓CGI,其在物理上,实质是一段应用程序,运行在Web服务器上,用于Web服务器与客户端进行通信的一种工具,提供同客户端进行通信的接口。在实际应用中,CGI获取数据会受到网络状况的影响,当由于网络状况导致CGI无法获取相应数据或者导致CGI超过设定时间仍然没有获取相应数据时,Web服务器会终止CGI继续获取数据,这会延缓页面响应速度,甚至会出现常见的CGI500错误。
技术实现思路
本申请提供了数据获取方法和装置,以实现CGI依据网络状况获取数据,避免由于CGI不可用而导致的页面响应速度慢和CGI500错误。本申请提供的技术方案包括:一种数据获取方法,该方法包括:一种数据获取方法,其特征在于,该方法包括:接收来自客户端的数据请求;确定用于处理所述数据请求的通用网关接口CGI,其中,所述CGI具有预先配置的至少一个任务,所述CGI的每一个任务,具有对应的数据类型,用于获取其对应的数据类型的数据,并且,所述CGI的每一任务被分配了优先级;按照优先级从高至低的顺序依次对所述CGI的任务执行以下处理:预估任务当前的响应时间,检测预估的响应时间是否满足设定条件,如果是,由所述CGI执行该任务,如果否,更新预估的响应时间,依据更新后的响应时间确定是否由所述CGI执行该任务;所述更新预估的响应时间包括:如果任务的优先级取值小于等于设定的优先级阈值,更新预估的响应时间为设定值;所述依据更新后的响应时间确定是否由所述CGI执行该任务包括:如果更新后的响应时间取值为设定值,则控制CGI放弃执行该任务。一种应用于Web服务器上的数据获取装置,该装置包括:接收单元,用于接收来自客户端的数据请求;确定单元,用于确定用于处理所述数据请求的通用网关接口CGI,其中,所述CGI具有预先配置的至少一个任务,所述CGI的每一个任务,具有对应的数据类型,用于获取其对应的数据类型的数据,并且,所述CGI的每一任务被分配了优先级;处理单元,用于按照优先级从高至低的顺序依次对所述CGI的任务执行以下处理:预估任务当前的响应时间,检测预估的响应时间是否满足设定条件,如果是,由所述CGI执行该任务,如果否,更新预估的响应时间,依据更新后的响应时间确定是否由所述CGI执行该任务;所述处理单元更新任务当前的响应时间包括:如果任务的优先级取值小于等于设定的优先级阈值,更新预估的响应时间为设定值;所述处理单元依据更新后的响应时间确定是否由CGI执行任务包括:如果更新后的响应时间取值为设定值,则控制CGI放弃执行该任务。由以上技术方案可以看出,本专利技术中,CGI是否执行任务依赖于针对该任务预估的响应时间,而该预估的响应时间反映了任务当前的网络状况,这实现了CGI依据任务网络状况执行任务获取数据,避免由于网络状况差而导致CGI不可用带来的问题比如页面响应速度慢和CGI500错误等;进一步地,本专利技术通过为CGI的任务分配优先级,并按照优先级从高至低的顺序依次对所述CGI的各个任务执行处理,这尽可能地保证优先级高的任务被执行,保证用户的网络访问。附图说明图1为本专利技术实施例提供的方法流程图;图2为本专利技术实施例提供的步骤104实现流程图;图3为本专利技术实施例提供的步骤105实现流程图;图4a为本专利技术实施例提供的应用实例示意图;图4b为现有CGI执行任务的应用实例示意图;图5为本专利技术实施例提供的装置结构图。具体实施方式为了使本专利技术的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本专利技术进行详细描述。参见图1,图1为本专利技术实施例提供的方法流程图。其中,本专利技术应用于Web服务器,如图1所示,本专利技术提供的方法可包括以下步骤:步骤101,接收来自客户端的数据请求。通常,当网页需要数据更新时其会触发客户端向Web服务器发送数据请求。而由于本专利技术应用于Web服务器,因此,其会接收到来自客户端的数据请求。步骤102,确定用于处理所述数据请求的CGI。在Web服务器上,其预先被编译了多个CGI,其中,不同的CGI具有不同的功能,因此,本步骤102中,当接收到来自客户端的数据请求后,可依据Web服务器被编译的CGI具有的功能确定当前是由哪一个CGI处理该数据请求。本专利技术中,CGI被预先配置至少一个任务,其中,在为CGI配置任务时可按照以下原则执行:将获取一种数据类型的数据作为CGI的一个任务,或者,将获取两种以上相关联的数据类型的数据作为CGI的一个任务。比如,CGI能获取以下四种数据类型的数据:类型1、类型2、类型3、类型4,基于将获取一种数据类型的数据作为CGI的一个任务的描述,则为CGI配置以下4个任务:任务1、任务2、任务3、任务4,其中,任务1用于获取类型1对应的数据,任务2用于获取类型2对应的数据,任务3用于获取类型3对应的数据,任务4用于获取类型4对应的数据。而基于基于将获取两种以上相关联数据类型的数据作为CGI的一个任务的描述,则则,若类型1与类型2至类型4无关,类型3与类型1、类型2、类型4无关,类型2和类型4相关联,比如,类型2为用户标识类型,类型4为用户基本信息类型,两者均通过用户标识相关联,则为CGI配置以下3个任务:任务1、任务2、任务3,其中,任务1用于获取类型1的数据,任务2用于获取类型2、类型4的数据,任务3用于获取类型3的数据。综上可以看出,本专利技术中,CGI被配置的每一个任务,具有对应的数据类型,用于获取其对应的数据类型的数据。另外,本专利技术中,还为CGI的每一任务分配了优先级。其中,为CGI的每一任务分配优先级可通过以下步骤实现:按照任务获取的数据的重要程度为每一任务分配优先级,其中,任务获取的数据重要程度越高,则该任务的优先级越高,任务获取的数据重要程度越低,则该任务的优先级越低。比如,CGI配置了以下3个任务:任务1、任务2、任务3,其中,根据产品需求发现任务1获取的数据重要程度最高,任务2获取的数据重要程度次之,任务3获取的数据重要程度最低,基于此,就为任务1分配最高的优先级,比如取值为4,为任务2分配次高的优先级,比如取值为3,为任务3分配最低的优先级,比如取值为2。步骤103,按照优先级从高至低的顺序依次对各个任务执行步骤104和步骤105。步骤104,预估任务当前的响应时间。之后执行步骤105。作为本专利技术的一个实施例,本步骤104中,预估任务的响应时间可通过图2所示流程实现,这里暂不赘述。步骤105,检测预估的响应时间是否满足设定条件,如果是,由所述CGI执行该任务,如果否,更新预估的响应时间,依据更新后的响应时间确定是否由所述CGI执行该任务。作为本专利技术的一个实施例,本步骤105可通过图3所示流程实现,这里暂不赘述。至此,完成图1所示流程。从图1所示流程可以看出,本专利技术中,CGI是否执行任务完全依赖于针对该任务预估的响应时间,该预估的响应时间反映了任务当前的网络状况本文档来自技高网...
数据获取方法和装置

【技术保护点】
一种数据获取方法,其特征在于,该方法包括:接收来自客户端的数据请求;确定用于处理所述数据请求的通用网关接口CGI,其中,所述CGI具有预先配置的至少一个任务,所述CGI的每一个任务,具有对应的数据类型,用于获取其对应的数据类型的数据,并且,所述CGI的每一任务被分配了优先级;按照优先级从高至低的顺序依次对所述CGI的任务执行以下处理:预估任务当前的响应时间,检测预估的响应时间是否满足设定条件,如果是,由所述CGI执行该任务,如果否,更新预估的响应时间,依据更新后的响应时间确定是否由所述CGI执行该任务;所述更新预估的响应时间包括:如果任务的优先级取值小于等于设定的优先级阈值,更新预估的响应时间为设定值;所述依据更新后的响应时间确定是否由所述CGI执行该任务包括:如果更新后的响应时间取值为设定值,则控制CGI放弃执行该任务。

【技术特征摘要】
1.一种数据获取方法,其特征在于,该方法包括:接收来自客户端的数据请求;确定用于处理所述数据请求的通用网关接口CGI,其中,所述CGI具有预先配置的至少一个任务,所述CGI的每一个任务,具有对应的数据类型,用于获取其对应的数据类型的数据,并且,所述CGI的每一任务被分配了优先级;按照优先级从高至低的顺序依次对所述CGI的任务执行以下处理:预估任务当前的响应时间,检测预估的响应时间是否满足设定条件,如果是,由所述CGI执行该任务,如果否,更新预估的响应时间,依据更新后的响应时间确定是否由所述CGI执行该任务;所述更新预估的响应时间包括:如果任务的优先级取值小于等于设定的优先级阈值,更新预估的响应时间为设定值;所述依据更新后的响应时间确定是否由所述CGI执行该任务包括:如果更新后的响应时间取值为设定值,则控制CGI放弃执行该任务。2.根据权利要求1所述的方法,其特征在于,所述CGI的每一任务通过以下步骤被分配优先级:按照任务获取的数据的重要程度为每一任务分配优先级,其中,任务获取的数据重要程度越高,则该任务的优先级越高,任务获取的数据重要程度越低,则该任务的优先级越低。3.根据权利要求1所述的方法,其特征在于,所述预估任务当前的响应时间包括:检测所述CGI截止到当前是否已执行过所述任务,如果否,将预先设定的Y0确定为所述任务的当前响应时间波动指数,利用当前响应时间波动指数预估所述任务当前的响应时间;如果是,计算所述任务在最近一次被CGI执行完后所述任务实际产生的响应时间,利用计算的响应时间和最近一次针对所述任务确定的响应时间波动指数确定所述任务的当前响应时间波动指数,利用当前响应时间波动指数预估所述任务当前的响应时间;其中,当前响应时间波动指数反映所述任务当前网络状况的波动。4.根据权利要求3所述的方法,其特征在于,所述利用计算的响应时间和最近一次确定的响应时间波动指数确定任务当前的响应时间波动指数包括:采用以下公式确定当前的响应时间波动指数:Yn+1=[2*Xn+1+(N-1)*Yn]/(N+1);其中,Yn+1表示当前的响应时间波动指数,Xn+1表示所述任务在最近一次被CGI执行完后所述任务实际产生的响应时间,Yn表示最近一次针对所述任务确定的响应时间波动指数,N为设定的采样因子。5.根据权利要求3所述的方法,其特征在于,所述利用当前响应时间波动指数预估所述任务当前的响应时间包括:采用以下公式预估任务当前的响应时间:Tdo=Thwm+p*(Tmax-Thwm),其中,Tdo表示预估的响应时间,Thwm为针对所述任务预先设定的最大响应时间,Tmax为预先设定的CGI最大响应时间,P通过以下公式表示:P=(Thwm-Yn+1)/(Thwm-Y0),Yn+1表示当前的响应时间波动指数。6.根据权利要求1所述的方法,其特征在于,所述检测预估的响应时间是否满足设定条件包括:检测预估的响应时间与CGI耗时时间Tcgi之和是否小于等于预先设定的CGI最大响应时间Tmax,如果是,确定预估的响应时间满足设定条件,否则,确定预估的响应时间不满足设定条件;所述Tcgi为:CGI从接收到所述数据请求开始至当前已耗费的时间。7.根据权利要求1所述的方法,其特征在于,所述更新预估的响应时间进一步包括:如果任务的优先级取值大于设定的优先级阈值,更新预估的响应时间为Tmax与Tcgi之差,所述Tmax为预先...

【专利技术属性】
技术研发人员:冯子木吴初潘林晓炜朱磊龙丁奋
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东,44

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

1