The invention discloses an event processing method and device. The method includes: obtaining a first request, in which the first request is used to request the execution of the first target event, the first target event is the event executed in the remote procedure call, and obtaining the use of the first target event in the proxy server when the first request meets the first preset condition. Multi-process, in which the number of multi-process processes is pre-configured by the proxy server, and the number of multi-process processes corresponds to the first target event; the first target event is processed by the corresponding multi-threads of each process in the multi-process, in which the number of multi-threaded threads is pre-configured by the proxy server and multi-threaded. The number of threads corresponds to the first target event. The invention solves the technical problems of low efficiency of event handling in remote procedure calls of related technologies.
【技术实现步骤摘要】
事件处理方法和装置
本专利技术涉及互联网领域,具体而言,涉及一种事件处理方法和装置。
技术介绍
目前,在互联网的事件处理中,在面对大量的服务开发需求时,在不同的场景下,难以构建一个高性能、高并发、易上手、健壮性强的后台远程过程调用框架。特别是在计算任务密集、网络IO密集等场景下,对远程过程调用(RemoteProcedureCall,简称为RPC)框架又有不同的要求。通常所采用的方法为采用单进程模式下的单进程服务。图1是根据相关技术中的一种单进程模式下的事件处理的示意图。如图1所示,在单进程模式下,客户端根据需要服务器执行的目标事件发送用户请求,该用户请求可以为多个用户请求,IO线程专门处理网络IO,通过该IO线程接收用户请求。在通过IO线程接收到用户请求之后,通过任务队列中的多个任务(task),将用户请求通过线程池中的多个子进程进行处理,进而完成对用户请求对应的目标事件进行处理。对于上述技术方案,单进程模式下的事件处理存在以下问题:(1)在单进程模式下,容易产生崩溃(crash)现象,并且在崩溃之后再重新启动也需要一定时间,从而造成服务在一定时间内大量不可用的 ...
【技术保护点】
1.一种事件处理方法,其特征在于,包括:获取第一请求,其中,所述第一请求用于请求执行第一目标事件,所述第一目标事件为在远程过程调用中执行的事件;在所述第一请求符合第一预设条件的情况下,获取在代理服务器中对所述第一目标事件进行处理所使用的多进程,其中,所述多进程的进程数量由所述代理服务器预先配置,且所述多进程的进程数量与所述第一目标事件相对应;通过所述多进程中每个进程分别对应的多线程处理所述第一目标事件,其中,所述多线程的线程数量由所述代理服务器预先配置,且所述多线程的线程数量与所述第一目标事件相对应。
【技术特征摘要】
1.一种事件处理方法,其特征在于,包括:获取第一请求,其中,所述第一请求用于请求执行第一目标事件,所述第一目标事件为在远程过程调用中执行的事件;在所述第一请求符合第一预设条件的情况下,获取在代理服务器中对所述第一目标事件进行处理所使用的多进程,其中,所述多进程的进程数量由所述代理服务器预先配置,且所述多进程的进程数量与所述第一目标事件相对应;通过所述多进程中每个进程分别对应的多线程处理所述第一目标事件,其中,所述多线程的线程数量由所述代理服务器预先配置,且所述多线程的线程数量与所述第一目标事件相对应。2.根据权利要求1所述的方法,其特征在于,在获取在所述代理服务器中对所述第一目标事件进行处理所使用的多进程之后,所述方法还包括:当至少一个每个进程分别对应的预设队列中当前记录的请求的数量超过预设数量时,向客户端发送用于指示所述请求的数量超过所述预设数量的提示信息,其中,所述请求包括所述第一请求,其中,通过所述多进程中每个进程分别对应的多线程处理所述第一目标事件包括:当所述预设队列中当前记录的所述请求的数量均未超过所述预设数量时,通过所述多进程中每个进程分别对应的多线程处理所述第一目标事件。3.根据权利要求1所述的方法,其特征在于,获取在所述代理服务器中对所述第一目标事件进行处理所使用的多进程包括:根据预设进程模型确定所述多进程中的父进程;通过所述父进程对配置文件进行初始化,其中,所述配置文件用于配置在处理所述第一目标事件的过程中所需要的执行参数;根据初始化后的所述配置文件确定所述多进程中的多个子进程,其中,所述多个子进程用于对所述第一请求进行处理。4.根据权利要求3所述的方法,其特征在于,在根据初始化后的所述配置文件确定所述多进程中的多个子进程之后,所述方法还包括:在所述第一目标事件报错的情况下,通过所述多个子进程接收第二请求,其中,所述第二请求用于请求执行第二目标事件,所述第二目标事件为对报错的所述第一目标事件进行恢复后的事件;根据所述第二请求处理所述第二目标事件。5.根据权利要求3所述的方法,其特征在于,在根据初始化后的所述配置文件确定所述多进程中的多个子进程之后,所述方法还包括:接收用于指示对所述代理服务器进行升级的升级指令;根据所述升级指令对所述代理服务器进行升级。6.根据权利要求1所述的方法,其特征在于,通过所述多进程中每个进程分别对应的多线程处理所述第一目标事件包括:通过所述多线程获取并执行所述第一目标事件中符合第二预设条件的多个任务事件;在执行完所述多个任务事件之后,获取第三请求,并向客户端发送用于指示执行完所述多个任务事件的第一响应结果,其中,所述第三请求用于请求执行第三目标事件,所述第三目标事件为在远程过程调用中执行的事件。7.根据权利要求1至6中任意一项所述的方法,其特征在于,在获取在所述代理服务器中对所述第一目标事件进行处理所使用的多进程之前,所述方法还包括:加载用于执行所述第一目标事件的动态链接库,其中,所述动态链接库封装有所述多进程中用于执行所述第一目标事件的操作。8.根据权利要求7所述的方法,其特征在于,...
【专利技术属性】
技术研发人员:邓长友,赵亚峰,谭国富,黄飞跃,吴永坚,
申请(专利权)人:腾讯科技上海有限公司,
类型:发明
国别省市:上海,31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。