CN104850387B - 动态页面请求并发处理方法和系统 - Google Patents

动态页面请求并发处理方法和系统 Download PDF

Info

Publication number
CN104850387B
CN104850387B CN201410050726.6A CN201410050726A CN104850387B CN 104850387 B CN104850387 B CN 104850387B CN 201410050726 A CN201410050726 A CN 201410050726A CN 104850387 B CN104850387 B CN 104850387B
Authority
CN
China
Prior art keywords
dynamic page
request
page request
external interface
application program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201410050726.6A
Other languages
English (en)
Other versions
CN104850387A (zh
Inventor
曾岳锋
阮佳彬
蔡伟林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Tencent Computer Systems Co Ltd
Original Assignee
Shenzhen Tencent Computer Systems Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Tencent Computer Systems Co Ltd filed Critical Shenzhen Tencent Computer Systems Co Ltd
Priority to CN201410050726.6A priority Critical patent/CN104850387B/zh
Publication of CN104850387A publication Critical patent/CN104850387A/zh
Application granted granted Critical
Publication of CN104850387B publication Critical patent/CN104850387B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种动态页面请求并发处理方法,包括以下步骤:接收浏览器发送的动态页面请求;提取动态页面请求中的应用程序信息,根据应用程序信息执行对应的应用程序;当应用程序访问外部接口时,记录动态页面请求的处理状态,转而其它请求;在监听到外部接口已经返回数据之后,根据动态页面请求的处理状态继续执行应用程序。上述方法在应用程序访问外部接口时,记录对应动态页面请求的处理状态,转而处理浏览器发送的其它请求,而不是进入阻塞状态,并在监听到外部接口已经返回数据之后,根据动态页面请求的处理状态继续执行对应的应用程序,从而可实现由单独的服务器支持对动态页面请求的并发处理。此外,还提供一种动态页面请求并发处理系统。

Description

动态页面请求并发处理方法和系统
技术领域
本发明涉及网络技术领域,特别是涉及一种动态页面请求并发处理方法和系统。
背景技术
静态页面是已经存在的、无需经过服务器编译即可直接加载到浏览器上显示出来的页面。一个静态页面对应一个固定的页面内容,服务器只需要将静态页面传送给请求者,而不需要进行脚本计算或读取后台数据库。静态页面的网址形式通常以“.htm”或“.html”等为后缀。而动态页面实际上并不是独立存在于服务器上的页面文件,动态页面上的内容存在于数据库中,动态页面的形成需要服务器访问相关应用程序以及数据库,动态页面的内容也会随着若干参数的不同而不同,例如服务器根据不同用户或不同时间等对同一个动态页面的请求返回具有不同内容的动态页面。动态页面的网页形式通常包含“?”等符号。
用于获取静态页面的请求或称为静态页面请求,相应的,用于获取动态页面的请求可称为动态页面请求。虽然有些传统的网页服务器可并发支持的静态页面请求数量很高,但传统网页服务器对动态页面请求一般都采用串行处理的方式。
为了支持对动态页面请求的并发处理,目前通用的解决方法一般是扩充服务器数量。然而目前这种通用的解决方法所占用的服务器资源量大,且所支持的动态页面请求并发处理量严重受到服务器资源数量的限制。
发明内容
为了实现由单独的服务器支持动态页面请求的并发处理,本发明提供动态页面请求并发处理方法和系统。
一种动态页面请求并发处理方法,包括以下步骤:
接收浏览器发送的动态页面请求;
解析所述动态页面请求,执行所述动态页面请求对应的应用程序;
当所述应用程序访问外部接口时,记录所述动态页面请求的处理状态,转而处理浏览器发送的其它请求;
监听所述外部接口是否返回数据;
在监听到所述外部接口已经返回数据之后,根据所述动态页面请求的处理状态继续执行所述应用程序。
一种动态页面请求并发处理系统,包括:
请求接收模块,用于接收浏览器发送的动态页面请求;
请求执行模块,用于提取所述动态页面请求中的应用程序信息,根据所述应用程序信息执行对应的应用程序;
处理状态记录模块,用于当所述应用程序访问外部接口时,记录所述动态页面请求的处理状态,
所述请求执行模块还用于当所述应用程序访问外部接口时,转而处理浏览器发送的其它请求;
监听模块,用于监听所述外部接口是否返回数据;
所述请求执行模块还用于在监听到所述外部接口已经返回数据之后,根据所述动态页面请求的处理状态继续执行所述应用程序。
上述动态页面请求并发处理方法和系统,在执行动态页面请求对应的应用程序时,若应用程序访问外部接口,则记录动态页面请求的处理状态,转而处理浏览器发送的其它请求,而不是进入阻塞状态,直到外部接口返回数据为止,在处理其它请求的同时,监听外部接口是否返回数据,在监听到外部接口已经返回数据之后,可根据动态页面请求的处理状态继续执行动态页面请求对应的应用程序,从而可实现由单独的服务器支持对动态页面请求的并发处理,而不需要通过增加服务器数量来实现对动态页面请求的并发处理。
附图说明
图1为一个实施例中的动态页面请求并发处理方法的流程示意图;
图2为一个实施例中的动态页面并发处理方法对应的交互示意图;
图3为另一实施例中的动态页面请求并发处理方法的流程示意图;
图4为一个实施例中的动态页面请求并发处理系统的结构示意图;
图5为另一实施例中的动态页面请求并发处理系统的结构示意图;
图6为又一实施例中的动态页面请求并发处理系统的结构示意图;
图7为再一实施例中的动态页面请求并发处理系统的结构示意图;
图8为能实现本发明实施例的一个计算机系统1000的模块图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
除非上下文另有特定清楚的描述,本发明中的元件和组件,数量既可以单个的形式存在,也可以多个的形式存在,本发明并不对此进行限定。本发明中的步骤虽然用标号进行了排列,但并不用于限定步骤的先后次序,除非明确说明了步骤的次序或者某步骤的执行需要其他步骤作为基础,否则步骤的相对次序是可以调整的。可以理解,本文中所使用的术语“和/或”涉及且涵盖相关联的所列项目中的一者或一者以上的任何和所有可能的组合。
如图1所示,在一个实施例中,一种动态页面请求并发处理方法,包括以下步骤:
步骤S101,接收浏览器发送的动态页面请求。
步骤S102,提取动态页面请求中的应用程序信息,根据该应用程序信息执行对应的应用程序。
在一个实施例中,步骤S102在动态页面请求中提取的应用程序信息为CGI程序信息,相应的,所执行的应用程序为CGI程序。
CGI(Common Gateway Interface,通用网关接口)是CGI程序与Web服务器之间的接口标准,是CGI程序和Web服务器之间传递信息的规程。CGI程序即是按照CGI规范编写的Web服务器上的外部应用程序。Web服务器的许多应用功能通过执行CGI程序来实现。
一个动态页面请求对应一个CGI程序。动态页面请求携带的网址信息中包含CGI程序目录信息。服务器上的CGI程序在动态页面的网址信息中的目录名称、目录名称在网址信息中的位置以及CGI程序在服务器上的真实路径被预先配置在服务器上的配置文件中(例如,CREN格式服务器上的/etc/httpd.conf)。步骤S102可查找动态页面请求携带的网址信息中包含的CGI程序目录信息在配置文件中所匹配的目录名称及目录名称位置,并获取对应的真实路径,执行服务器上该真实路径下的CGI程序。
步骤S103,当上述应用程序访问外部接口时,记录上述动态页面请求的处理状态,转而处理浏览器发送的其它请求。
一条动态页面请求的处理状态记录可包含动态页面请求的标识、对应的应用程序正在访问的外部接口名称和对应的应用程序的当前执行位置等数据项信息。
步骤S104,监听上述外部接口是否返回数据。
步骤S105,在监听到上述外部接口已经返回数据之后,根据动态页面请求的处理状态继续执行上述应用程序。
可获取动态页面请求的处理状态中的对应的应用程序的当前执行位置,从该当前执行位置起继续往下执行对应的应用程序。
当动态页面请求对应的应用程序执行完毕后,可得到执行应用程序获得的动态页面,从而可将执行应用程序获得的动态页面返回给发送动态页面请求的浏览器。
在一个实施例中,上述动态页面请求并发处理方法还包括步骤:将上述动态页面请求对应的应用程序历史访问的数据导入内存。可通过数据导入工具从数据库中将对应的数据导入内存。
本实施例中,将动态页面请求对应的应用程序历史访问的数据导入内存,可加快数据访问的速度,缩短执行动态页面请求对应的应用程序的时间,提高对动态页面请求的响应速度,从而可增加并发处理动态页面请求的数量。
在一个实施例中,可将对应的应用程序预设近期内访问的数据中访问频率前预设位的数据导入内存。
在此之前,上述动态页面请求并发处理方法还包括步骤:记录web服务器上各应用程序的数据访问日志,统计预设近期内各应用程序访问的数据的访问频率。
本实施例中,将动态页面请求对应的应用程序预设近期内访问的数据中访问频率前预设位的数据导入内存,即将动态页面请求对应的应用程序最近经常访问的数据导入内存,既可提高对动态页面请求的响应速度,又可兼顾内存容量有限的问题。
上述动态页面并发处理方法中的步骤可由Web服务器执行,具体而言,可由Web服务器进程执行。图2为一个实施例中的动态页面并发处理方法对应的交互示意图。如图2所示:
(1)Web服务器接收浏览器发送的动态页面请求。
(2)Web服务器提取动态页面请求中的CGI程序信息,根据该CGI程序信息执行对应的CGI程序。
(3)Web服务器执行的CGI程序访问外部接口。当CGI程序访问外部接口时,Web服务器记录动态页面的处理状态,转而执行浏览器发送的其它请求,并监听外部接口是否返回数据。可由不同的Web服务器进程处理浏览器发送的请求和监听外部接口是否返回数据。
(4)Web服务器接收外部接口返回的数据。在监听到外部接口返回数据之后,Web服务器根据动态页面请求的处理状态继续执行其对应的CGI程序。
(5)通过数据导入工具将动态页面请求对应的CGI程序预设近期内访问的数据中访问频率前预设位的数据由数据库导入内存。
(6)当Web服务器执行的CGI程序需访问数据时,优先访问内存,若内存中不存在需访问的数据,再到数据库中查询该数据。
(7)Web服务器将执行CGI程序获得的动态页面返回给发送动态页面请求的浏览器。
在一个实施例中,上述动态页面请求并发处理方法还包括以下步骤:
每当接收到浏览器发送的动态页面请求之后,将接收到的动态页面请求的标识插入到待处理请求队列末尾,标记接收到的动态页面请求的处理状态为未处理;
在监听到某一外部接口已经返回数据之后,将该外部接口对应的动态页面请求的标识插入到待处理请求队列中;
按照从头至尾的顺序从上述待处理请求队列抽取动态页面请求的标识,并根据对应待处理请求的处理状态处理对应的待处理请求。
如图3所示,在一个具体实施例中,上述动态页面请求并发处理方法包括以下步骤:
步骤S301,接收浏览器发送的动态页面请求。
步骤S302,将动态页面请求的标识插入到待处理请求队列末尾,标记动态页面请求的处理状态为未处理。
在一个实施例中,可通过读写用于保存待处理请求队列数据的文件1在待处理请求队列中插入数据或抽取数据,并可通过读写用于保存动态页面请求的处理状态的文件2来记录或读取动态页面请求的处理状态。
步骤S302可生成一条动态页面请求的处理状态记录,处理状态记录可包括动态页面请求的标识、对应的CGI程序正在访问的外部接口名称和对应的CGI程序的当前执行位置等数据项信息。从浏览器新接收的等待处理的动态页面请求的处理状态记录中上述三项数据项信息的内容可分别设置为新接收的动态页面请求的标识、空值、空值。对应的CGI程序正在访问的外部接口名称这一数据项被设置为空值,可表示动态页面请求对应的CGI程序当前没有访问外部接口,而对应的CGI程序的当前执行位置这一数据项被设置为空值,可表示动态页面请求还未被处理。
进一步的,步骤S302可将生成的处理状态记录保存到如图所示的文件2中。
步骤S303,按照从头至尾的顺序从待处理请求队列抽取动态页面请求的标识。
步骤S304,判断对应待处理请求的处理状态是否为未处理,若是,则执行步骤S305,否则,执行步骤S306。
可根据从待处理请求队列头抽取的动态页面请求的标识在文件2中查找对应的处理状态记录,并判断对应的处理状态记录中对应的CGI程序的当前执行位置这一数据项的内容是否为空值,若是,则可判定从待处理请求队列头抽取的动态页面请求的标识对应动态页面请求的处理状态为未处理,否则,可判定处理状态不是为未处理。
步骤S305,提取对应动态页面请求中的CGI程序信息,根据CGI程序信息执行对应的CGI程序。
步骤S306,根据动态页面请求的处理状态继续执行对应的CGI程序。
可获取动态页面请求标识对应的处理状态记录中的对应的CGI程序的当前执行位置这一数据项的内容,并从对应的当前执行位置起继续往下执行对应的CGI程序。
步骤S307,判断对应的CGI程序是否访问外部接口并判断对应的CGI程序是否执行完毕。
步骤S308,当CGI程序访问外部接口时,记录动态页面请求的处理状态,并记录访问的外部接口信息。
可在文件2中查找动态页面请求的标识对应的处理状态记录,并设置其中的对应的CGI程序正在访问的外部接口名称和对应的CGI程序的当前执行位置这两个数据项的值为相应内容。
在一个实施例中,可通过读写用于保存外部接口信息的文件3来记录或读取动态页面请求对应的CGI程序访问的外部接口信息。外部接口信息可包括对应的动态页面请求的标识、对应的CGI程序标识以及外部接口名称等信息。
步骤S309,当CGI程序执行完毕时,向浏览器返回请求结果。
当动态页面请求对应的CGI程序执行完毕后,可得到执行CGI程序获得的动态页面,从而可将执行CGI程序获得的动态页面返回给发送动态页面请求的浏览器。
步骤S310,监听动态页面请求对应的CGI程序访问的外部接口是否返回数据。
在一个实施例中,可从用于保存外部接口信息的文件3获取CGI程序正在访问的外部接口信息,并监听相应的外部接口是否返回数据。
步骤S311,在监听到外部接口已经返回数据之后,将返回数据的外部接口对应的动态页面请求的标识插入待处理请求队列。
CGI程序访问的外部接口返回数据后,可从访问的外部接口位置继续往下执行CGI程序的处理流程,因此,可将对应的动态页面请求的标识插入待处理请求队列等待处理。
在一个实施例中,从浏览器新接收的动态页面请求和已经开始处理但由于对应的CGI程序访问外部接口而被停滞的动态页面请求可分别保存到两个不同的队列。可优先处理已经开始处理的动态页面请求,当新接收的动态页面请求的数量达到阈值时,可丢弃后接收的超过阈值部分的动态页面请求,从而提高并发处理动态页面请求的响应速度。
在一个实施例中,上述S301~S302、S303~S309、S310~S311可由不同的Web服务器进程执行,或由Web服务器进程启动的不同的线程执行,以提高动态页面请求的并发支持量以及对动态页面请求的响应性能。
如图4所示,在一个实施例中,一种动态页面请求并发处理系统,包括请求接收模块401、程序信息提取模块402、请求执行模块403、处理状态记录模块404和监听模块405,其中:
请求接收模块401用于接收浏览器发送的动态页面请求。
程序信息提取模块402用于提取动态页面请求中的应用程序信息。
请求执行模块403用于根据该应用程序信息执行对应的应用程序。
在一个实施例中,程序信息提取模块402在动态页面请求中提取的应用程序信息为CGI程序信息,相应的,请求执行模块403所执行的应用程序为CGI程序。
一个动态页面请求对应一个CGI程序。动态页面请求携带的网址信息中包含CGI程序目录信息。服务器上的CGI程序在动态页面的网址信息中的目录名称、目录名称在网址信息中的位置以及CGI程序在服务器上的真实路径被预先配置在服务器上的配置文件中(例如,CREN格式服务器上的/etc/httpd.conf)。程序信息提取模块402可查找动态页面请求携带的网址信息中包含的CGI程序目录信息在配置文件中所匹配的目录名称及目录名称位置,并获取对应的真实路径,请求执行模块403可执行服务器上该真实路径下的CGI程序。
处理状态记录模块404用于当上述应用程序访问外部接口时,记录上述动态页面请求的处理状态。请求执行模块403还用于当上述应用程序访问外部接口时,转而处理浏览器发送的其它请求。
一条动态页面请求的处理状态记录可包含动态页面请求的标识、对应的应用程序正在访问的外部接口名称和对应的应用程序的当前执行位置等数据项信息。
监听模块405用于监听上述外部接口是否返回数据。
请求执行模块403还用于在监听到上述外部接口已经返回数据之后,根据动态页面请求的处理状态继续执行上述应用程序。
请求执行模块403可获取动态页面请求的处理状态中的对应的应用程序的当前执行位置,从该当前执行位置起继续往下执行对应的应用程序。
如图5所示,在一个实施例中,上述动态页面请求并处处理系统还包括结果返回模块501,用于当动态页面请求对应的应用程序执行完毕后,将执行应用程序获得的动态页面返回给发送动态页面请求的浏览器。
如图6所示,在一个实施例中,上述动态页面请求并发处理系统还包括数据导入模块601,用于将上述动态页面请求对应的应用程序历史访问的数据导入内存。数据导入模块601可通过数据导入工具从数据库中将对应的数据导入内存。
本实施例中,将动态页面请求对应的应用程序历史访问的数据导入内存,可加快数据访问的速度,缩短执行动态页面请求对应的应用程序的时间,提高对动态页面请求的响应速度,从而可增加并发处理动态页面请求的数量。
在一个实施例中,数据导入模块601可将对应的应用程序预设近期内访问的数据中访问频率前预设位的数据导入内存。
本实施例中,上述动态页面请求并发处理系统还包括访问统计模块(图中未示出),用于记录web服务器上各应用程序的数据访问日志,统计预设近期内各应用程序访问的数据的访问频率。
本实施例中,将动态页面请求对应的应用程序预设近期内访问的数据中访问频率前预设位的数据导入内存,即将动态页面请求对应的应用程序最近经常访问的数据导入内存,既可提高对动态页面请求的响应速度,又可兼顾内存容量有限的问题。
在一个实施例中,上述动态页面请求并发处理系统还包括待处理请求记录模块(图中未示出),用于每当接收到浏览器发送的动态页面请求之后,将接收到的动态页面请求的标识插入到待处理请求队列末尾;处理状态记录模块404还用于标记接收到的动态页面请求的处理状态为未处理;
监听模块405还用于在监听到某一外部接口已经返回数据之后,将该外部接口对应的动态页面请求的标识插入到待处理请求队列中;
请求执行模块403用于按照从头至尾的顺序从上述待处理请求队列抽取动态页面请求的标识,并根据对应待处理请求的处理状态处理对应的待处理请求。
如图7所示,在一个具体实施例中,一种动态页面请求并发处理系统包括请求接收模块701、第一待处理请求记录模块702、第一处理状态记录模块703、待处理请求获取模块704、处理状态判断模块705、请求执行模块706、执行进度判断模块707、结果返回模块708、外部接口访问判断模块709、第二处理状态记录模块710、外部接口信息记录模块711、监听模块712、第二待处理请求记录模块713,其中:
请求接收模块701用于接收浏览器发送的动态页面请求。
第一待处理请求记录模块702用于将接收的动态页面请求的标识插入到待处理请求队列末尾。
第一处理状态记录模块703用于标记接收的动态页面请求的处理状态为未处理。
在一个实施例中,第一待处理请求记录模块702可通过读写用于保存待处理请求队列数据的文件在待处理请求队列中插入数据或抽取数据,第一处理状态记录模块703可通过读写用于保存动态页面请求的处理状态的文件来记录或读取动态页面请求的处理状态。
第一处理状态记录模块703可生成一条动态页面请求的处理状态记录,处理状态记录可包括动态页面请求的标识、对应的CGI程序正在访问的外部接口名称和对应的CGI程序的当前执行位置等数据项信息。从浏览器新接收的等待处理的动态页面请求的处理状态记录中上述三项数据项信息的内容可分别设置为新接收的动态页面请求的标识、空值、空值。对应的CGI程序正在访问的外部接口名称这一数据项被设置为空值,可表示动态页面请求对应的CGI程序当前没有访问外部接口,而对应的CGI程序的当前执行位置这一数据项被设置为空值,可表示动态页面请求还未被处理。
进一步的,第一处理状态记录模块703可将生成的处理状态记录保存到用于保存动态页面请求的处理状态的文件中。
待处理请求获取模块704用于按照从头至尾的顺序从待处理请求队列抽取动态页面请求的标识。
处理状态判断模块705用于判断对应待处理请求的处理状态是否为未处理,若是,则执行步骤S305,否则,执行步骤S306。
处理状态判断模块705可根据从待处理请求队列头抽取的动态页面请求的标识在保存动态页面请求的处理状态的文件中查找对应的处理状态记录,并判断对应的处理状态记录中对应的CGI程序的当前执行位置这一数据项的内容是否为空值,若是,则可判定从待处理请求队列头抽取的动态页面请求的标识对应动态页面请求的处理状态为未处理,否则,可判定处理状态不是为未处理。
请求执行模块706用于若待处理请求的处理状态为未处理,则提取对应动态页面请求中的CGI程序信息
请求执行模块706还用于若待处理请求的处理状态不为未处理,则根据CGI程序信息执行对应的CGI程序,否则根据动态页面请求的处理状态继续执行对应的CGI程序。请求执行模块706可获取动态页面请求标识对应的处理状态记录中的对应的CGI程序的当前执行位置这一数据项的内容,并从对应的当前执行位置起继续往下执行对应的CGI程序。
执行进度判断模块707用于判断对应的CGI程序是否执行完毕。
结果返回模块708用于当CGI程序执行完毕时,向浏览器返回请求结果。
结果返回模块708可将执行CGI程序获得的动态页面返回给发送动态页面请求的浏览器。
外部接口访问判断模块709用于判断对应的CGI程序是否访问外部接口。
第二处理状态记录模块710用于当CGI程序访问外部接口时,记录动态页面请求的处理状态。
第二处理状态记录模块710可在用于保存动态页面请求的处理状态的文件中查找动态页面请求的标识对应的处理状态记录,并设置其中的对应的CGI程序正在访问的外部接口名称和对应的CGI程序的当前执行位置这两个数据项的值为相应内容。
外部接口信息记录模块711用于当CGI程序访问外部接口时,记录访问的外部接口信息。
在一个实施例中,外部接口信息记录模块711可通过读写用于保存外部接口信息的文件来记录或读取动态页面请求对应的CGI程序访问的外部接口信息。外部接口信息可包括对应的动态页面请求的标识、对应的CGI程序标识以及外部接口名称等信息。
监听模块712用于监听动态页面请求对应的CGI程序访问的外部接口是否返回数据。
在一个实施例中,监听模块712可从用于保存外部接口信息的文件中获取CGI程序正在访问的外部接口信息,并监听相应的外部接口是否返回数据。
第二待处理请求记录模块713用于在监听到外部接口已经返回数据之后,将返回数据的外部接口对应的动态页面请求的标识插入待处理请求队列。
CGI程序访问的外部接口返回数据后,可从访问的外部接口位置继续往下执行CGI程序的处理流程,因此,第二待处理请求记录模块713可将对应的动态页面请求的标识插入待处理请求队列等待处理。
在一个实施例中,从浏览器新接收的动态页面请求和已经开始处理但由于对应的CGI程序访问外部接口而被停滞的动态页面请求可分别保存到两个不同的队列。请求执行模块706可优先处理已经开始处理的动态页面请求,当新接收的动态页面请求的数量达到阈值时,可丢弃后接收的超过阈值部分的动态页面请求,从而提高并发处理动态页面请求的响应速度。
在一个实施例中,上述701~702所标记的模块、704~711所标记的模块、712~713所标记的模块可由不同的Web服务器进程执行,或由Web服务器进程启动的不同的线程执行,以提高动态页面请求的并发支持量以及对动态页面请求的响应性能。
上述动态页面请求并发处理方法和系统,在执行动态页面请求对应的应用程序时,若应用程序访问外部接口,则记录动态页面请求的处理状态,转而处理浏览器发送的其它请求,而不是进入阻塞状态,直到外部接口返回数据为止,在处理其它请求的同时,监听外部接口是否返回数据,在监听到外部接口已经返回数据之后,可根据动态页面请求的处理状态继续执行动态页面请求对应的应用程序,从而可实现由单独的服务器支持对动态页面请求的并发处理,而不需要通过增加服务器数量来实现对动态页面请求的并发处理。
图8为能实现本发明实施例的一个计算机系统1000的模块图。该计算机系统1000只是一个适用于本发明的计算机环境的示例,不能认为是提出了对本发明的使用范围的任何限制。计算机系统1000也不能解释为需要依赖于或具有图示的示例性的计算机系统1000中的一个或多个部件的组合。
图8中示出的计算机系统1000是一个适合用于本发明的计算机系统的例子。具有不同子系统配置的其它架构也可以使用。例如有大众所熟知的台式机、笔记本、平板电脑等类似设备可以适用于本发明的一些实施例。但不限于以上所列举的设备。
如图8所示,计算机系统1000包括处理器1010、存储器1020和系统总线1022。包括存储器1020和处理器1010在内的各种系统组件连接到系统总线1022上。处理器1010是一个用来通过计算机系统中基本的算术和逻辑运算来执行计算机程序指令的硬件。存储器1020是一个用于临时或永久性存储计算程序或数据(例如,程序状态信息)的物理设备。系统总线1020可以为以下几种类型的总线结构中的任意一种,包括存储器总线或存储控制器、外设总线和局部总线。处理器1010和存储器1020可以通过系统总线1022进行数据通信。其中存储器1020包括只读存储器(ROM)或闪存(图中都未示出),以及随机存取存储器(RAM),RAM通常是指加载了操作系统和应用程序的主存储器。
计算机系统1000还包括显示接口1030(例如,图形处理单元)、显示设备1040(例如,液晶显示器)、音频接口1050(例如,声卡)以及音频设备1060(例如,扬声器)。显示设备1040和音频设备1060是用于体验多媒体内容的媒体设备。
计算机系统1000一般包括一个存储设备1070。存储设备1070可以从多种计算机可读介质中选择,计算机可读介质是指可以通过计算机系统1000访问的任何可利用的介质,包括移动的和固定的两种介质。例如,计算机可读介质包括但不限于,闪速存储器(微型SD卡),CD-ROM,数字通用光盘(DVD)或其它光盘存储、磁带盒、磁带、磁盘存储或其它磁存储设备,或者可用于存储所需信息并可由计算机系统1000访问的任何其它介质。
计算机系统1000还包括输入装置1080和输入接口1090(例如,IO控制器)。用户可以通过输入装置1080,如键盘、鼠标、显示装置1040上的触摸面板设备,输入指令和信息到计算机系统1000中。输入装置1080通常是通过输入接口1090连接到系统总线1022上的,但也可以通过其它接口或总线结构相连接,如通用串行总线(USB)。
计算机系统1000可在网络环境中与一个或者多个网络设备进行逻辑连接。网络设备可以是个人电脑、服务器、路由器、智能电话、平板电脑或者其它公共网络节点。计算机系统1000通过局域网(LAN)接口1100或者移动通信单元1110与网络设备相连接。局域网(LAN)是指在有限区域内,例如家庭、学校、计算机实验室、或者使用网络媒体的办公楼,互联组成的计算机网络。WiFi和双绞线布线以太网是最常用的构建局域网的两种技术。WiFi是一种能使计算机系统1000间交换数据或通过无线电波连接到无线网络的技术。移动通信单元1110能在一个广阔的地理区域内移动的同时通过无线电通信线路接听和拨打电话。除了通话以外,移动通信单元1110也支持在提供移动数据服务的2G,3G或4G蜂窝通信系统中进行互联网访问。
应当指出的是,其它包括比计算机系统1000更多或更少的子系统的计算机系统也能适用于发明。例如,计算机系统1000可以包括能在短距离内交换数据的蓝牙单元,用于照相的图像传感器,以及用于测量加速度的加速计。
如上面详细描述的,适用于本发明的计算机系统1000能执行动态页面请求并发处理方法的指定操作。计算机系统1000通过处理器1010运行在计算机可读介质中的软件指令的形式来执行这些操作。这些软件指令可以从存储设备1070或者通过局域网接口1100从另一设备读入到存储器1020中。存储在存储器1020中的软件指令使得处理器1010执行上述的动态页面请求并发处理方法。此外,通过硬件电路或者硬件电路结合软件指令也能同样实现本发明。因此,实现本发明并不限于任何特定硬件电路和软件的组合。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种动态页面请求并发处理方法,包括以下步骤:
接收浏览器发送的动态页面请求;
提取所述动态页面请求中的应用程序信息,根据所述应用程序信息执行对应的应用程序;
当所述应用程序访问外部接口时,记录所述动态页面请求的处理状态,转而处理浏览器发送的其它请求;
监听所述外部接口是否返回数据;
在监听到所述外部接口已经返回数据之后,根据所述动态页面请求的处理状态继续执行所述应用程序。
2.根据权利要求1所述的动态页面请求并发处理方法,其特征在于,提取的所述应用程序信息为CGI程序信息,执行的所述应用程序为CGI程序。
3.根据权利要求1所述的动态页面请求并发处理方法,其特征在于,所述方法还包括:
将所述应用程序历史访问的数据导入内存。
4.根据权利要求3所述的动态页面请求并发处理方法,其特征在于,所述将所述应用程序历史访问的数据导入内存的步骤包括:
将所述应用程序预设近期内访问的数据中访问频率前预设位的数据导入内存。
5.根据权利要求1所述的动态页面请求并发处理方法,其特征在于,
每当接收到浏览器发送的动态页面请求之后,将所述动态页面请求的标识插入到待处理请求队列末尾,标记所述动态页面请求的处理状态为未处理;
在监听到所述外部接口已经返回数据之后,将所述外部接口对应的动态页面请求的标识插入到待处理请求队列中;
按照从头至尾的顺序从所述待处理请求队列抽取动态页面请求的标识,并根据对应待处理请求的处理状态处理对应的待处理请求。
6.一种动态页面请求并发处理系统,其特征在于,包括:
请求接收模块,用于接收浏览器发送的动态页面请求;
请求执行模块,用于提取所述动态页面请求中的应用程序信息,根据所述应用程序信息执行对应的应用程序;
处理状态记录模块,用于当所述应用程序访问外部接口时,记录所述动态页面请求的处理状态,
所述请求执行模块还用于当所述应用程序访问外部接口时,转而处理浏览器发送的其它请求;
监听模块,用于监听所述外部接口是否返回数据;
所述请求执行模块还用于在监听到所述外部接口已经返回数据之后,根据所述动态页面请求的处理状态继续执行所述应用程序。
7.根据权利要求6所述的动态页面请求并发处理系统,其特征在于,所述请求执行模块提取的所述应用程序信息为CGI程序信息,所述请求执行模块执行的所述应用程序为CGI程序。
8.根据权利要求6所述的动态页面请求并发处理系统,其特征在于,所述系统还包括:
数据导入模块,用于将所述应用程序历史访问的数据导入内存。
9.根据权利要求8所述的动态页面请求并发处理系统,其特征在于,所述数据导入模块用于将所述应用程序预设近期内访问的数据中访问频率前预设位的数据导入内存。
10.根据权利要求6所述的动态页面请求并发处理系统,其特征在于,所述系统还包括:
排队模块,用于每当接收到浏览器发送的动态页面请求之后,将所述动态页面请求的标识插入到待处理请求队列末尾;
所述处理状态记录模块还用于每当接收到浏览器发送的动态页面请求之后,标记所述动态页面请求的处理状态为未处理;
所述排队模块还用于在监听到所述外部接口已经返回数据之后,将所述外部接口对应的动态页面请求的标识插入到待处理请求队列中;
所述请求执行模块用于按照从头至尾的顺序从所述待处理请求队列抽取动态页面请求的标识,并根据对应待处理请求的处理状态处理对应的待处理请求。
CN201410050726.6A 2014-02-13 2014-02-13 动态页面请求并发处理方法和系统 Active CN104850387B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410050726.6A CN104850387B (zh) 2014-02-13 2014-02-13 动态页面请求并发处理方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410050726.6A CN104850387B (zh) 2014-02-13 2014-02-13 动态页面请求并发处理方法和系统

Publications (2)

Publication Number Publication Date
CN104850387A CN104850387A (zh) 2015-08-19
CN104850387B true CN104850387B (zh) 2018-10-02

Family

ID=53850053

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410050726.6A Active CN104850387B (zh) 2014-02-13 2014-02-13 动态页面请求并发处理方法和系统

Country Status (1)

Country Link
CN (1) CN104850387B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105610934A (zh) * 2015-12-25 2016-05-25 北京奇虎科技有限公司 数据请求并发处理方法及装置
CN108536427B (zh) * 2017-03-06 2021-05-14 北京小米移动软件有限公司 应用程序的编译方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101300549A (zh) * 2005-11-29 2008-11-05 国际商业机器公司 服务器端动态页面的执行
CN103034655A (zh) * 2011-10-09 2013-04-10 中国移动通信集团公司 一种用户行为信息的收集方法、系统及相关设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8862932B2 (en) * 2008-08-15 2014-10-14 Apple Inc. Read XF instruction for processing vectors

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101300549A (zh) * 2005-11-29 2008-11-05 国际商业机器公司 服务器端动态页面的执行
CN103034655A (zh) * 2011-10-09 2013-04-10 中国移动通信集团公司 一种用户行为信息的收集方法、系统及相关设备

Also Published As

Publication number Publication date
CN104850387A (zh) 2015-08-19

Similar Documents

Publication Publication Date Title
CN102682080B (zh) cookie信息共享方法及系统
CN103314373B (zh) 移动设备上大数据集的有效处理
US10198410B2 (en) Method, device and mobile terminal for restoring page
US20140013256A1 (en) Method and system for dynamic modification of desktop layout and computer storage medium thereof
CN104657435A (zh) 一种应用数据的存储管理方法和网络管理系统
CN104703125A (zh) 基于即时通信的信息推荐方法、装置和终端
CN102857369A (zh) 一种网站日志保存系统及方法和装置
CN108769157B (zh) 消息弹窗的展示方法、装置、计算设备及计算机存储介质
JP2018194882A (ja) 制御プログラム、制御方法、制御装置、及びデータベースサーバ
US20170053023A1 (en) System to organize search and display unstructured data
CN103858121A (zh) 使Web应用获取数据库变化的方法和系统
CN108804295A (zh) 日志信息记录方法和装置
CN111400625A (zh) 页面处理方法、装置、电子设备及计算机可读存储介质
US20160080519A1 (en) Local caching and resolution of service calls
US20160164984A1 (en) Determining Browsing Activities
CN104850387B (zh) 动态页面请求并发处理方法和系统
CN104965692A (zh) 在桌面应用中跨进程显示数据的方法及系统
CN108011936A (zh) 用于推送信息的方法和装置
CN102750493A (zh) 访问权限控制方法、装置及系统
CN100553250C (zh) 标记网页的方法和设备
WO2017076027A1 (zh) 一种壁纸处理方法及装置
EP2981882A1 (en) Removable storage device identity and configuration information
CN104933066B (zh) 一种数据处理的方法和系统
JP5979307B2 (ja) 通信制御装置,通信制御方法,通信システム,プログラム,記録媒体
CN105589870B (zh) 网页广告的过滤方法和系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant