CN106547566B - 通讯服务进程池管理方法及系统 - Google Patents
通讯服务进程池管理方法及系统 Download PDFInfo
- Publication number
- CN106547566B CN106547566B CN201611049615.9A CN201611049615A CN106547566B CN 106547566 B CN106547566 B CN 106547566B CN 201611049615 A CN201611049615 A CN 201611049615A CN 106547566 B CN106547566 B CN 106547566B
- Authority
- CN
- China
- Prior art keywords
- request
- state
- client
- shared drive
- threshold
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4418—Suspend and resume; Hibernate and awake
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3051—Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请公开一种通讯服务进程池管理方法及系统。通讯服务进程池管理方法包括:进程池中处于监听队列的第一进程获取来自客户端的请求;判断所述进程池中第二进程的进程状态;如果有所述第二进程处于备用状态,则所述第一进程将监听句柄派发给所述第二进程,使所述第二进程进入监听队列;以及否则,所述第一进程处理所述客户端的请求,同时启动第三进程。本申请的通讯服务进程池管理方法,能够提升TCP通讯请求响应速度、处理效率,使得TCP通讯请求并发响应容量更高,通讯服务可用性、容错能力更好。
Description
技术领域
本发明涉及通信技术领域,具体而言,涉及一种通讯服务进程池管理方法及系统。
背景技术
现有的TCP通讯服务实现方法有以下几种:1)简单模式:预启动一个通讯监听进程J,监听进程J监听服务端口,当客户端连接请求到来时,监听进程J立即启动一个通讯处理进程C,通讯处理进程C处理该连接请求,当连接请求处理完毕后,通讯处理进程C结束。2)简化模式:预启动一个通讯监听进程J,预启动若干通讯处理进程C,当客户端连接请求到来时,监听进程J选中一个空闲的进程C,将连接请求派发给它,当连接请求处理完毕后,通讯处理进程C不结束,等待下一次监听进程J派发任务。3)改进模式:预启动一个通讯监听进程J,预启动若干通讯处理进程C,预启动一个通讯管理进程G,此模式中处理连接请求的过程与简化模式一样,区别在于进程C处理连接请求时,将自身状态发送给进程G,进程G根进程C的当前使用状况,决定是否启动更多的进程C,响应连接请求。
现有的TCP通讯服务实现方法,可能会由于频繁启动进程C浪费了大量CPU资源;也可能由于启动进程C造成的延迟会使TCP监听队列挤爆,造成连接请求失败。并且,当并发连接请求突然暴涨时,其响应速度不足,当监听进程J出现异常时,会造成通讯服务完全瘫痪。
因此,需要一种新的通讯服务进程池管理方法及系统。
在所述背景技术部分公开的上述信息仅用于加强对本发明的背景的理解,因此它可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
有鉴于此,本发明提供一种通讯服务进程池管理方法及系统,能够能够提升TCP通讯请求响应速度、处理效率,使得TCP通讯请求并发响应容量更高,通讯服务可用性、容错能力更好。
本发明的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本发明的实践而习得。
根据本发明的一方面,提出一种通讯服务进程池管理方法,该方法包括:进程池中处于监听队列的第一进程获取来自客户端的请求;判断进程池中第二进程的进程状态;如果有第二进程处于备用状态,则第一进程将监听句柄派发给第二进程;以及否则,第一进程处理客户端的请求,同时启动第三进程。
在本公开的一种示例性实施例中,还包括:接收客户端请求的第一进程、第二进程与第三进程,在接收到客户端请求时,将当前信息写入共享内存;以及处理客户端的请求的第一进程、第二进程与第三进程,在处理完客户端的请求后,将当前信息写入共享内存。
在本公开的一种示例性实施例中,当前信息,包括:进程识别信息、当前状态标注、正在处理的业务信息。
在本公开的一种示例性实施例中,第一进程与第二进程具有生命周期上限;和/或第三进程具有备用状态时间上限。
在本公开的一种示例性实施例中,进程状态,包括:监听状态、处理中状态以及备用状态。
在本公开的一种示例性实施例中,还包括:在第一进程的生命周期达到第一阈值时,启动与第一进程相同的另一第一进程;在第二进程的生命周期达到第一阈值时,启动与第二进程相同的另一第二进程;以及在第三进程的生命周期达到第一阈值时,启动与第三进程相同的另一第三进程。
在本公开的一种示例性实施例中,还包括:在第三进程的备用状态时间达到第二阈值时,结束第三进程。
在本公开的一种示例性实施例中,还包括:在所述第一进程、第二进程以及第三进程由外部命令结束时,按照预定策略进行处理。
在本公开的一种示例性实施例中,还包括:启动第一进程、第二进程与第三进程之前,检索共享内存中的空槽位,并将空槽位分配给待启动的第一进程、第二进程与第三进程;第一进程、第二进程与第三进程结束时,释放其占有的共享内存中的槽位。
在本公开的一种示例性实施例中,还包括:按照一预定的时间间隔检查第一进程、第二进程与第三进程是否挂起;以及如果第一进程、第二进程与第三进程挂起,则按照预定的策略进行处理。
在本公开的一种示例性实施例中,还包括:监控第一进程、第二进程与第三进程的数据,并将数据发送到用户界面。
在本公开的一种示例性实施例中,第一进程、第二进程与第三进程的数据,包括:第一进程、第二进程与第三进程的当前运行情况;共享内存中第一进程、第二进程与第三进程写入的信息;第一进程、第二进程与第三进程的状态;以及第一进程、第二进程与第三进程正在处理的业务信息。
根据本发明的一方面,提出一种通讯服务进程池管理装置,包括:接收模块,用于进程池中处于监听队列的第一进程获取来自客户端的请求;判断模块,用于判断进程池中第二进程的进程状态;派发模块,用于在第二进程处于备用状态时,第一进程将监听句柄派发给第二进程;以及启动模块,用于在第一进程处理客户端请求时,启动第三进程。
在本公开的一种示例性实施例中,还包括:共享内存模块,用于接收客户端请求的第一进程、第二进程与第三进程,在接收到客户端请求时,将当前信息写入共享内存;以及处理客户端的请求的第一进程、第二进程与第三进程,在处理完客户端的请求后,将当前信息写入共享内存。
在本公开的一种示例性实施例中,还包括:时间管理模块,用于在第一进程的生命周期达到第一阈值时,启动与第一进程相同的另一第一进程;在第二进程的生命周期达到第一阈值时,启动与第二进程相同的另一第二进程;在第三进程的生命周期达到第一阈值时,启动与第三进程相同的另一第三进程;以及在第三进程的备用状态时间达到第二阈值时,结束第三进程;以及分配模块,用于在启动第一进程、第二进程与第三进程之前,检索共享内存中的空槽位,并将空槽位分配给待启动的第一进程、第二进程与第三进程。
根据本发明的通讯服务进程池管理方法及系统,能够提升TCP通讯请求响应速度、处理效率,使得TCP通讯请求并发响应容量更高,通讯服务可用性、容错能力更好。
另外,根据一些实施例,本发明的通讯服务进程池管理方法,通过进程之间共享内存,记录进程的运行信息,能够实现对通信服务的实时监控以及挂起自动处理。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本发明。
附图说明
通过参照附图详细描述其示例实施例,本发明的上述和其它目标、特征及优点将变得更加显而易见。下面描述的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据一示例性实施例示出的一种通讯服务进程池管理方法的流程图。
图2是根据另一示例性实施例示出的一种通讯服务进程池管理方法的TCP通讯服务运行示意图。
图3是根据另一示例性实施例示出的一种通讯服务进程池管理方法的信息流示意图。
图4是根据一示例性实施例示出的一种通讯服务进程池管理系统的框图。
具体实施例
现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本发明更加全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本发明的实施例的充分理解。然而,本领域技术人员将意识到,省略本发明实施例特定细节中的一个或更多,或者采用其它的方法、组元、装置、步骤等,亦可以实践本发明的技术方案。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本发明的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
应理解,虽然本文中可能使用术语第一、第二、第三等来描述各种组件,但这些组件不应受这些术语限制。这些术语乃用以区分一组件与另一组件。因此,下文论述的第一组件可称为第二组件而不偏离本公开概念的教示。如本文中所使用,术语「及/或」包括相关联的列出项目中的任一个及一或多者的所有组合。
本领域技术人员可以理解,附图只是示例实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的,因此不能用于限制本发明的保护范围。
图1是根据一示例性实施例示出的一种通讯服务进程池管理方法的流程图。
如图1所示,在S102中,进程池中处于监听队列的第一进程获取来自客户端的请求。第一进程接收到客户端请求,第一进程可例如,处于TCP监听队列,第一进程处于监听状态,等待接收来自客户的请求。还可例如,在通信系统中建立一个管理程序,负责启动/停止指定的TCP通讯服务,初始化通讯服务运行环境,管理第一进程的活动。该管理程序启动后,可例如,常驻后台,成为一个通讯管理进程。在进程池中,第一进程可例如有多个,可例如,由多个第一进程中其中一个第一进程接收到了来自客户端的请求。
在S104中,判断进程池中第二进程的状态。在接收到来自客户端的请求的时候,判断此时进程池中第二进程的状态,进程池中的进程包括第一进程、第二进程。进程的状态包括:监听状态、处理中状态以及备用状态。可例如,在系统启动之后,第一进程处于监听状态,第二进程处于备用状态。还可例如,在进程处理来自客户的请求任务的时候,进程处于处理中状态。
在S106中,如果有第二进程处于备用状态,第一进程将监听句柄派发给第二进程。可例如,第二进程由备用状态进入监听状态。第二进程在系统启动之后,可例如,处于备用状态。在进程池中,可例如,第二进程有多个。
在S108中,如果没有第二进程处于备用状态,第一进程处理所述客户端的请求,同时启动第三进程。第三进程在启动之后,可例如,处于监听状态,负责接收来自客户端的请求。第三进程可例如,为临时启动的进程,在系统启动的初期,系统的进程池中没有第三进程,随着系统的运行,可例如,同时会有多个第三进程处于进程池中。
根据本发明实施例的通讯服务进程池管理方法,能够提升TCP通讯请求响应速度、处理效率,使得TCP通讯请求并发响应容量更高,通讯服务可用性、容错能力更好。
应清楚地理解,本发明描述了如何形成和使用特定示例,但本发明的原理不限于这些示例的任何细节。相反,基于本发明公开的内容的教导,这些原理能够应用于许多其它实施例。在本公开的一种示例性实施例中,还包括:接收客户端请求的第一进程,第二进程以及第三进程在接收到客户端请求时,将当前信息写入共享内存;以及处理客户端的请求的第一进程第一进程,第二进程以及第三进程,在处理完客户端的请求后,将当前信息写入共享内存。进程的当前信息,包括:进程识别信息、当前状态标注、正在处理的业务信息。
根据本发明实施例的通讯服务进程池管理方法,通过进程之间共享内存,记录进程的运行信息,能够实现对通信服务的实时监控以及挂起自动处理。
在本公开的一种示例性实施例中,第一进程与第二进程具有生命周期上限;和/或第三进程具有备用状态时间上限。可例如,第一、第二进程为常驻进程,第三进程为临时进程。
在本公开的一种示例性实施例中,还包括:在第一进程的生命周期达到第一阈值时,启动与第一进程相同的另一第一进程;在第二进程的生命周期达到第一阈值时,启动与第二进程相同的另一第二进程;以及在第三进程的生命周期达到第一阈值时,启动与第三进程相同的另一第三进程。在本发明的实施例中,所有进程都有生命周期上限(第一阈值),进程的生命周期到达第一阈值之后,可例如,进程主动退出,并发送一条“再启动一个与当前进程相同属性(常驻或临时)的备用状态进程”的通知发送给管理进程。
在本公开的一种示例性实施例中,还包括:在第三进程的备用状态时间达到第二阈值时,结束第三进程。在本发明的实施例中,对于第三进程,可例如第三进程为临时的进程,有最大空闲时间上限(第二阈值),临时进程的空闲时间到达第二阈值之后,可例如,临时进程立即中断并主动退出。还可例如,如果中断时临时进程正处于监听状态,则发送一条“再启动一个监听状态进程”的通知给管理进程。
在本公开的一种示例性实施例中,还包括:在第一进程、第二进程以及第三进程的由外部命令结束时,按照预定策略进行处理。预定策略可例如,处于监听或备用状态的在第一进程、第二进程以及第三进程由外部命令结束时,启动与第一进程、第二进程以及第三进程的进程状态相同的另一第一进程、第二进程以及第三进程;还可例如,处于处理中第一进程、第二进程以及第三进程由外部命令结束时,启动另一备用状态的第二进程、第三进程。在本公开的实施例中,如果进程在运行过程中被从外部杀死,可例如,系统触发回调函数,回调函数中会发送一条“再启动一个与当前进程相同属性(常驻或临时)、相同状态(监听或备用)进程”的通知给管理进程。还可例如,进程退出时,将共享内存对应槽位中的内容清空。
在本公开的一种示例性实施例中,还包括:启动第一进程、第二进程与第三进程之前,检索共享内存中的空槽位,并将空槽位分配给待启动的第一进程、第二进程与第三进程。
在本公开的一种示例性实施例中,还包括:按照一预定的时间间隔检查第一进程、第二进程与第三进程是否挂起;以及如果第一进程、第二进程与第三进程挂起,则按照预定的策略进行处理。按照预先设定的时间周期扫描共享内存中所有进程写入的信息,可例如,用进程号检查进程在系统中的活动状态。如果发现已经挂起的进程,可例如,调用系统接口程序获取其出错消息代码、消息类型等信息,再按照预先设定的策略(可例如,根据消息码或消息类型设置)进行处理。可以采取的处理措施包括:直接杀死、自动回答消息,或者人工应对,本发明不以此为限。
在本公开的一种示例性实施例中,还包括:监控第一进程、第二进程与第三进程的数据,并将数据发送到用户界面。进程的数据,包括:第一进程、第二进程与第三进程的当前运行情况;共享内存中第一进程、第二进程与第三进程写入的信息;第一进程、第二进程与第三进程的状态;以及第一进程、第二进程与第三进程正在处理的业务信息。
图2是根据另一示例性实施例示出的一种通讯服务进程池管理方法的TCP通讯服务运行示意图。
如图2所示,在本实施例中,包括通讯服务启动程序202,通讯接收程序208、挂起自动处理程序206、通讯管理程序204、通讯服务实时监控程序(图中未示出)、应用处理接口程序210。
其中,通讯管理程序204:该程序负责启动/停止指定的TCP通讯服务,初始化通讯服务运行环境,管理通讯接收进程R活动个数。该程序启动后常驻后台,成为一个通讯管理进程G。
通讯接收程序208负责接收客户端连接请求,调用应用处理接口程序210,向通讯管理进程G发送通知信息,并将当前信息记录到共享内存中。该程序被通讯管理进程G启动,启动后驻留后台,成为若干个通讯接收进程R。
挂起自动处理程序206按照预设定的时间周期,从共享内存中循环读取通信接收进程R相关信息,检查并处理掉处于挂起状态的通讯接收进程R。该程序被通讯管理进程G启动,启动后常驻后台,成为一个挂起自动处理进程K。
通信服务实时监控程序(图中未示出)从共享内存中读取通信接收进程R相关信息,将系统资源和进程R的统计信息,以及进程R正在处理的业务等详细信息,实时信息显示到用户界面上。
应用处理接口程序210用于实现具体的通信操作,其逻辑与通信服务所需处理的业务有关。
通讯服务启动程序202提交通讯管理程序204,启动指定通讯服务。
上文所述的TCP通讯服务启动过程的说明如下:
用户在命令行调用“通讯服务启动程序202”,传入参数指定TCP通信服务名称,程序用此名称从“参数配置文件”中取出TCP端口号、进程G的进程号等参数。然后用进程G的进程号检查其是否在为活动作业,从而确定指定的TCP通讯服务是否已经启动,如果服务尚未未启动,则将“通讯管理程序204”提交到后台,成为一个通讯管理进程G。
进程G启动后,用参数传入的“TCP通信服务名称”从“参数配置文件”中取出“TCP端口号”、“通讯接收进程R预启动个数”、“监听端口的进程R个数”、“进程R最大空闲等待时间”、“进程R上限个数”、“进程R生命周期”等参数。然后创建一个指定TCP通信服务名称相同的,可以自动扩展的共享内存,再提交“挂起自动处理程序206”到后台,成为一个挂起自动处理进程K,提交若干个“通讯接收程序208”到后台,成为n个通讯接收进程R。进程G为每个进程R在共享内存中分配一段固定长度的专属存储区域(槽位)。上述完成动作之后,进程G调用操作系统接口程序,绑定(bind)TCP服务端口并监听(listen)该端口,操作系统返回被绑定服务端口的句柄sdSvr,进程G将sdSvr派发给m个进程R(m<n)。这些被进程G初始启动的n个进程R是常驻的,它们没有最大空闲时间上限,只有生命周期上限(累计处理的客户端连接个数上限);之后在响应客户端连接请求过程中启动的进程R则是临时的,既有最大空闲时间上限,又有生命周期上限。
进程R启动后,首先将自身的进程信息(作业名、进程号、用户名、当前状态,等等)写入到共享内存对应槽位中,并调用系统接口程序,登记异常退出回调函数(当进程R被从外部杀死时,系统自动触发此回调函数)。然后等待接收到句柄sdSvr,收到句柄sdSvr之后,立即进入TCP监听队列(accept),等待客户端连接请求。本实现方案启动之后,有m个进程R处于监听状态,可以直接响应连接请求,另外n-m个进程R处于备用状态,作为响应并发连接的缓冲。
上文所述的TCP通讯服务运行过程如下:
当客户端连接请求到来时,某个处于TCP监听队列的进程R被操作系统唤醒。该进程R立即将句柄sdSvr派发给一个处于备用状态的进程R,并发送一条“再启动一个备用状态进程R”的通知给进程G;如果当前已经没有备用状态的进程R了,则发送一条“再启动一个监听状态进程R”的通知给进程G。然后,进程R调用“应用处理接口程序210”,处理接收到的客户端请求,客户端请求处理完成之后,进程R变为备用状态,等待下次接收句柄sdSvr。进程R在上述收到客户端连接请求之后,以及客户端连接请求处理完成之后,立即将当前信息(当前状态、正在处理的业务类型,等等)写入到共享内存对应槽位中。对于临时的进程R有最大空闲时间上限,到达此上限之后,进程R立即中断并主动退出,如果中断时此进程正处于监听状态,则发送一条“再启动一个监听状态进程R”的通知给进程G。所有进程R都有生命周期上限,到达此上限之后,进程R主动退出,并发送一条“再启动一个与当前进程R相同属性(常驻或临时)的备用状态进程R”的通知给进程G。如果进程R在运行过程中被从外部杀死,则系统触发回调函数,回调函数会发送一条“再启动一个与当前进程R相同属性、相同状态(监听或备用)进程R”的通知给进程G。无论何种情况下,进程R退出时,都将共享内存对应槽位中的内容清空。
进程G接收进程R发送过来的通知信息,根据通知信息的要求,启动相应属性(常驻或临时)、相应状态(监听或备用)的进程R,并限制进程R总个数不超过预设的最大上限。启动进程R之前,进程G检索共享内存中的空槽位,并将之分配给待启动的进程R。
通讯监控进程K按照预先设定的时间周期扫描共享内存中所有进程R写入的信息,用进程号检查进程R在系统中的活动状态。如果发现已经挂起的进程R,则调用系统接口程序获取其出错消息代码、消息类型等信息,再按照预先设定的策略(根据消息码或消息类型设置)进行处理(可以采取的处理措施包括:直接杀死、自动回答消息,或者人工应对)。
用户可以随时在命令行调用“通信服务实时监控程序(未示出)”,查看指定的TCP通信服务当前运行情况。该监控程序获取当前系统资源(CPU、内存、硬盘等)使用状况,扫描共享内存中进程R写入的信息,获取进程R在系统中的活动状态,以及进程R正在处理的业务,并将这些统计信息和进程R的详细信息显示到用户界面之上。
图3是根据另一示例性实施例示出的一种通讯服务进程池管理方法的信息流示意图。
如图3所示,图中数据及信息传输所用对象如下:
1)参数配置文件,以二维表的形式保存在硬盘中。用于存放需要预先设定的参数,包括:通讯服务名称、TCP端口号或别名、通讯接收进程R预启动个数、监听端口的进程R个数、进程R最大空闲等待时间、进程R上限个数、进程R生命周期、对挂起的进程R的处理策略,等等。其中,通信服务名称是唯一键。这些参数被通讯服务启动程序和通讯管理进程G读取出来,同时,进程G启动后,会将自身进程号等信息写入该文件。
2)启动信息队列,以数据队列的形式保存在系统内存中。用于通讯服务启动程序获取通讯管理进程G是否启动成功及其启动失败的原因。
3)状态信息队列,以数据队列的形式保存在系统内存中。进程R将控制通知信息放入该队列中,进程G从该队列中读取通知信息,并执行相应的处理动作。
4)空闲排队队列,以数据队列的形式保存在系统内存中。进程R进入备用状态时,将自身进程识别信息存入该队列中,排队等待下一次接收通信服务监听句柄sdSvr。。
5)应用信息数据块,以共享内存的形式保存在系统内存中,通讯服务名称即为该数据块引用标识。进程G在启动进程R之前,为每个进程R在该数据块中单独分配一段存储空间(槽位),进程R将自身的进程识别信息、状态标志、正在处理的业务等信息写入对应的槽位中。通信实时监控程序及挂起自动处理进程K,可以从该数据块中获取到通讯服务中所有进程R的运行时信息。
本领域技术人员可以理解实现上述实施例的全部或部分步骤被实现为由CPU执行的计算机程序。在该计算机程序被CPU执行时,执行本发明提供的上述方法所限定的上述功能。所述的程序可以存储于一种计算机可读存储介质中,该存储介质可以是只读存储器,磁盘或光盘等。
此外,需要注意的是,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
下述为本发明装置实施例,可以用于执行本发明方法实施例。对于本发明装置实施例中未披露的细节,请参照本发明方法实施例。
图4是根据一示例性实施例示出的一种通讯服务进程池管理系统的框图。该系统可例如利用如图1、2或3所示的通讯服务进程池管理方法来实现,但本发明不限于此
如图4所示,接收模块402用于进程池中处于监听队列的第一进程获取来自客户端的请求;
判断模块404用于判断进程池中第二进程的进程状态。
派发模块406用于在第二进程处于备用状态时,第一进程将监听句柄派发给第二进程。
启动模块408用于用于在所述第一进程处理所述客户端的请求时,启动第三进程。
共享内存模块410用于接收客户端请求的第一进程、第二进程以及第三进程,在接收到客户端请求时,将当前信息写入共享内存;以及处理客户端的请求的第一进程、第二进程以及第三进程,在处理完客户端的请求后,将当前信息写入共享内存。
时间管理模块412用于在第一进程的生命周期达到第一阈值时,启动与第一进程相同的另一第一进程;在第二进程的生命周期达到第一阈值时,启动与第二进程相同的另一第二进程;在第三进程的生命周期达到第一阈值时,启动与第三进程相同的另一第三进程;以及在第三进程的备用状态时间达到第二阈值时,结束第三进程。
分配模块414用于在启动第一进程、第二进程与第三进程之前,检索共享内存中的空槽位,并将空槽位分配给待启动的第一进程、第二进程与第三进程;以及第一进程、第二进程与第三进程结束时,释放其占有的共享内存中的槽位。
本领域技术人员可以理解上述各模块可以按照实施例的描述分布于装置中,也可以进行相应变化,分布于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施例的描述,本领域的技术人员易于理解,这里描述的示例实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本发明实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本发明实施例的方法。
通过以上的详细描述,本领域的技术人员易于理解,根据本发明实施例的通讯服务进程池管理方法及系统具有以下优点中的一个或多个。
根据本发明的通讯服务进程池管理方法及系统,能够提升TCP通讯请求响应速度、处理效率,使得TCP通讯请求并发响应容量更高,通讯服务可用性、容错能力更好。
另外,根据一些实施例,本发明的通讯服务进程池管理方法,通过进程之间共享内存,记录进程的运行信息,能够实现对通信服务的实时监控以及挂起自动处理。
以上具体地示出和描述了本发明的示例性实施例。应可理解的是,本发明不限于这里描述的详细结构、设置方式或实现方法;相反,本发明意图涵盖包含在所附权利要求的精神和范围内的各种修改和等效设置。
此外,本说明书说明书附图所示出的结构、比例、大小等,均仅用以配合说明书所公开的内容,以供本领域技术人员了解与阅读,并非用以限定本公开可实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本公开所能产生的技术效果及所能实现的目的下,均应仍落在本公开所公开的技术内容得能涵盖的范围内。同时,本说明书中所引用的如「上」、「第一」、「第二」及「一」等的用语,也仅为便于叙述的明了,而非用以限定本公开可实施的范围,其相对关系的改变或调整,在无实质变更技术内容下,当也视为本发明可实施的范畴。
Claims (15)
1.一种通讯服务进程池管理方法,其特征在于,包括:
进程池中处于监听队列的第一进程获取来自客户端的请求;
判断所述进程池中第二进程的进程状态;
如果有所述第二进程处于备用状态,则所述第一进程将监听句柄派发给所述第二进程;以及
否则,所述第一进程处理所述客户端的请求,同时启动第三进程。
2.如权利要求1所述的方法,其特征在于,还包括:
接收所述客户端请求的所述第一进程、所述第二进程以及所述第三进程,在接收到所述客户端请求时,将当前信息写入共享内存;以及
处理所述客户端请求的所述第一进程、所述第二进程以及所述第三进程,在处理完所述客户端的请求后,将所述当前信息写入所述共享内存。
3.如权利要求2所述的方法,其特征在于,所述当前信息,包括:进程识别信息、当前状态标注、正在处理的业务信息。
4.如权利要求1所述的方法,其特征在于,所述第一进程与所述第二进程具有生命周期上限;和/或所述第三进程具有备用状态时间上限。
5.如权利要求1所述的方法,其特征在于,所述进程状态,包括:监听状态、处理中状态以及备用状态。
6.如权利要求4所述的方法,其特征在于,还包括:
在所述第一进程的所述生命周期达到第一阈值时,启动与所述第一进程相同的另一第一进程;
在所述第二进程的所述生命周期达到所述第一阈值时,启动与所述第二进程相同的另一第二进程;以及
在所述第三进程的所述生命周期达到所述第一阈值时,启动与所述第三进程相同的另一第三进程。
7.如权利要求4所述的方法,其特征在于,还包括:
在所述第三进程的所述备用状态时间达到第二阈值时,结束所述第三进程。
8.如权利要求1所述的方法,其特征在于,还包括:
在所述第一进程、第二进程以及第三进程由外部命令结束时,按照预定策略进行处理。
9.如权利要求2所述的方法,其特征在于,还包括:
启动所述第一进程、所述第二进程与所述第三进程之前,检索所述共享内存中的空槽位,并将所述空槽位分配给待启动的所述第一进程、所述第二进程与所述第三进程;以及
所述第一进程、所述第二进程与所述第三进程结束时,释放其占有的所述共享内存中的槽位。
10.如权利要求1所述的方法,其特征在于,还包括:
按照一预定的时间间隔检查所述第一进程、所述第二进程与所述第三进程是否挂起;以及
如果所述第一进程、所述第二进程与所述第三进程挂起,则按照预定的策略进行处理。
11.如权利要求2所述的方法,其特征在于,还包括:
监控所述第一进程、所述第二进程与所述第三进程的数据,并将所述数据发送到用户界面。
12.如权利要求11所述的方法,其特征在于,所述第一进程、所述第二进程与所述第三进程的数据,包括:
所述第一进程、所述第二进程与所述第三进程的当前运行情况;
所述共享内存中所述第一进程、所述第二进程与所述第三进程写入的信息;
所述第一进程、所述第二进程与所述第三进程的状态;以及
所述第一进程、所述第二进程与所述第三进程正在处理的业务信息。
13.一种通讯服务进程池管理系统,其特征在于,包括:
接收模块,用于进程池中处于监听队列的第一进程获取来自客户端的请求;
判断模块,用于判断所述进程池中第二进程的进程状态;
派发模块,用于在所述第二进程处于备用状态时,所述第一进程将监听句柄派发给所述第二进程;以及
启动模块,用于在所述第一进程处理所述客户端的请求时,启动第三进程。
14.如权利要求13所述的系统,其特征在于,还包括:
共享内存模块,用于接收所述客户端请求的所述第一进程、所述第二进程与所述第三进程,在接收到所述客户端请求时,将当前信息写入共享内存;以及处理所述客户端的请求的所述第一进程、所述第二进程与所述第三进程,在处理完所述客户端的请求后,将所述当前信息写入共享内存。
15.如权利要求14所述的系统,其特征在于,还包括:
时间管理模块,用于在所述第一进程的生命周期达到第一阈值时,启动与所述第一进程相同的另一第一进程;在所述第二进程的所述生命周期达到所述第一阈值时,启动与所述第二进程相同的另一第二进程;在所述第三进程的所述生命周期达到所述第一阈值时,启动与所述第三进程相同的另一第三进程;以及在所述第三进程的所述备用状态时间达到第二阈值时,结束所述第三进程;以及
分配模块,用于在启动所述第一进程、所述第二进程与所述第三进程之前,检索所述共享内存中的空槽位,并将所述空槽位分配给待启动的所述第一进程、所述第二进程与所述第三进程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611049615.9A CN106547566B (zh) | 2016-11-24 | 2016-11-24 | 通讯服务进程池管理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611049615.9A CN106547566B (zh) | 2016-11-24 | 2016-11-24 | 通讯服务进程池管理方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106547566A CN106547566A (zh) | 2017-03-29 |
CN106547566B true CN106547566B (zh) | 2019-08-16 |
Family
ID=58394955
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611049615.9A Active CN106547566B (zh) | 2016-11-24 | 2016-11-24 | 通讯服务进程池管理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106547566B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109347894A (zh) * | 2018-08-10 | 2019-02-15 | 锐捷网络股份有限公司 | 管理FastCGI进程的方法、管理器、设备及介质 |
CN109976920A (zh) * | 2019-02-20 | 2019-07-05 | 深圳点猫科技有限公司 | 一种用于教育操作系统的并发式控制的实现方法及装置 |
CN111666120A (zh) * | 2019-03-07 | 2020-09-15 | 阿里巴巴集团控股有限公司 | 一种终端的控制方法和装置 |
CN110401697A (zh) * | 2019-06-26 | 2019-11-01 | 苏州浪潮智能科技有限公司 | 一种并发处理http请求的方法、系统及设备 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7181544B2 (en) * | 2002-09-03 | 2007-02-20 | Intel Corporation | Network protocol engine |
US7363369B2 (en) * | 2003-10-16 | 2008-04-22 | International Business Machines Corporation | Monitoring thread usage to dynamically control a thread pool |
CN102662732A (zh) * | 2012-02-07 | 2012-09-12 | 中山爱科数字科技股份有限公司 | 一种双驱方式的线程池模型 |
CN103366471B (zh) * | 2013-06-26 | 2015-08-12 | 福建联迪商用设备有限公司 | 一种联机业务并发处理方法、系统及服务器 |
CN105357266B (zh) * | 2015-09-30 | 2018-11-16 | 山东乾云启创信息科技股份有限公司 | 适合多种场景的socket通信与进程管理通用平台及方法 |
-
2016
- 2016-11-24 CN CN201611049615.9A patent/CN106547566B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN106547566A (zh) | 2017-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106547566B (zh) | 通讯服务进程池管理方法及系统 | |
US11500675B2 (en) | Task scheduling, execution and monitoring | |
US6477569B1 (en) | Method and apparatus for computer network management | |
CN105120005B (zh) | 一种游戏服务器热更新方法、服务器及系统 | |
US5946498A (en) | Delivery of client remote procedure calls to a server via a request queue utilizing priority and time-out | |
CN102591668B (zh) | 对弹性计算云系统升级的装置、方法及系统 | |
CN109766172B (zh) | 一种异步任务调度方法以及装置 | |
CN108055311B (zh) | Http异步请求方法、装置、服务器、终端和存储介质 | |
CN105516086B (zh) | 业务处理方法及装置 | |
CN109710416B (zh) | 资源调度方法及装置 | |
CN112799786A (zh) | 微服务实例的退出方法、装置、设备及存储介质 | |
TWI484346B (zh) | 最適化網路連接器並減少中斷 | |
CN111427751A (zh) | 基于异步处理机制对业务进行处理的方法及系统 | |
CN111858007A (zh) | 一种基于消息中间件的任务调度方法方法和装置 | |
CN102314382A (zh) | 一种紧急探查系统信息的方法及模块 | |
CN112181627A (zh) | 定时任务调度方法、装置及系统 | |
CN108733466A (zh) | 重启分布式系统中的应用系统实例的方法、装置及设备 | |
CN111835809B (zh) | 工单消息分配方法、装置、服务器及存储介质 | |
CN110413398B (zh) | 任务调度方法、装置、计算机设备和存储介质 | |
CN116521338A (zh) | 消息队列的管控方法、装置、计算机设备和存储介质 | |
CN109040491A (zh) | 挂机行为处理方法、装置、计算机设备及存储介质 | |
CN105975359A (zh) | 一种对服务器进行数据清理的方法、装置及服务器 | |
CN115412609A (zh) | 一种业务处理方法、装置、服务器及存储介质 | |
CN110489249B (zh) | 一种消息的处理方法及系统 | |
CN114443325A (zh) | 一种接口调用异常的异步重试方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |