【技术实现步骤摘要】
数据获取方法和装置
本申请涉及互联网技术,特别涉及数据获取方法和装置。
技术介绍
在互联网应用中,当页面需要获取数据时,客户端会向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的每一个任务,具有对应的数据类型,用于获取其对应的数据类型的数据,并且,所述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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。