一种多进程管理方法、装置、设备及存储介质与流程

文档序号:20773369发布日期:2020-05-19 20:30阅读:135来源:国知局
一种多进程管理方法、装置、设备及存储介质与流程

本发明涉及计算机管理技术领域,具体涉及一种多进程管理方法、装置、设备及存储介质。



背景技术:

node服务是利用node.js编写的运行在web服务器上的程序。主要作用是接收浏览器中发出的请求,返回内容给浏览器,显示图片,文字及数据等内容。javascript简称js,是一种高级编程语言,通过解释执行,是一门动态类型,面向对象(基于原型)的解释型语言,主要运行于浏览器端和node.js环境中。nodejs作为一个基于chromev8引擎的javascript运行环境,其以优秀的执行速度、轻量、简单的语法,被越来越多的开发者青睐,越来越多的服务端程序选择使用nodejs。但nodejs的javascript运行在单个进程的单个线程上,一个javascript执行进程只能利用一个cpu核心。

而如今大多数cpu均为多核cpu,为了增强node服务健壮性和提高服务响应速度,充分利用cpu资源,提高服务处理大量并发请求的能力,node提供了child_process模块和cluster模块来实现多进程以及进程管理。使用node.js中cluster模块,创建出若干工作进程,将node服务复制到这些工作进程中独立运行。例如多个进程全部执行“监听同一个端口”的任务,当node服务收到大量请求后,cluster将请求循环分发给所有工作进程,提高并发请求的处理速度。

但是把node服务复制多份分别到子进程,导致所有进程具备node服务的全部逻辑,比如某些特定工作,比如定期归档日志,也都会复制到全部进程中,这样,日志归档的任务会定期执行n次。一来是浪费资源,更重要的是可能会导致多进程间资源访问冲突。所以,基于现有技术,例如定期归档日志这样的任务就不适合放在工作进程中执行,如果有多个这种类型的任务,只能放于主进程中顺序执行。

而对于复杂的服务端应用程序,启动多个子进程的目的可能不仅仅是多份一样内容的拷贝来分担大量请求,可能需要启动多个执行不同逻辑的子进程,目前,该问题并没有很好的得到解决。



技术实现要素:

本发明提出了一种多进程管理方法、装置、设备及存储介质,在多进程管理过程中,能够实现进程执行任务的差异化,避免多进程间资源访问冲突等异常情况发生。本发明具体是以如下技术方案实现的:

一方面,本发明提供了一种多进程管理方法,包括:

接收目标任务请求,所述目标任务请求包括待执行目标任务的进程的目标进程类型信息;

从目标父进程的多个子进程中确定与所述目标进程类型信息相匹配的子进程,其中,所述多个子进程为利用所述目标父进程创建的与进程类型信息对应的多个子进程;

基于所述相匹配的子进程执行所述目标任务请求所请求的任务。

另一方面,本发明提供了一种多进程管理装置,包括:

接收模块,用于接收目标任务请求,所述目标任务请求包括待执行目标任务的进程的目标进程类型信息;

确定模块,用于从目标父进程的多个子进程中确定与所述目标进程类型信息相匹配的子进程,其中,所述多个子进程为利用所述目标父进程创建的与进程类型信息对应的多个子进程;

执行模块,用于基于所述相匹配的子进程执行所述目标任务请求所请求的任务。

在一些实施例中,所述确定模块包括:

第一确定子模块,用于确定所述目标父进程的多个进程类型信息;

创建子模块,用于利用所述目标父进程创建所述多个子进程,所述多个子进程设置有进程类型标志;

分配子模块,用于将所述多个进程类型信息分别分配给所述多个子进程类型标志。

在一些实施例中,所述确定模块还包括:

第二确定子模块,用于从目标父进程的多个子进程中确定与所述第一进程类型信息相匹配的第一子进程;

第三确定子模块,用于从目标父进程的多个子进程中确定与所述第二进程类型信息相匹配的第二子进程。

在一些实施例中,所述执行模块包括:

第一执行子模块,用于利用所述第一子进程执行第一定时循环任务;

进一步的,所述第一执行子模块包括:

第一控制单元,用于当所述第一子进程执行初始化逻辑时,控制所述第一子进程定时向所述目标父进程发送初始化未完成的任务执行状态信息;

第二控制单元,用于当所述第一子进程执行完编译代码逻辑时,控制所述第一子进程向所述目标父进程发送任务已完成的任务执行状态信息;

第三控制单元,用于当监测到所述目标父进程接收到所述第一子进程的任务执行状态信息为已完成时,控制所述第一子进程停止向所述父进程发送所述第一子进程的任务执行状态信息。

在一些实施例中,所述执行模块还包括:

第二执行子模块,用于利用所述第二子进程执行第二定时循环任务;

进一步的,所述第二执行子模块包括:

第四控制单元,用于当所述第二子进程执行初始化逻辑时,控制所述第二子进程定时向所述目标父进程发送所述第一子进程的任务执行状态的询问信息;

第一发送单元,用于利用所述目标父进程将所述询问信息发送给所述第一子进程;

第五控制单元,用于控制所述第一子进程向所述目标父进程发送所述第一子进程任务的任务执行状态信息;

第二发送单元,用于利用所述目标父进程将所述第一子进程的任务执行状态信息发送给所述第二子进程;

第六控制单元,用于当监测到所述第二子进程接收到所述第一子进程的任务执行状态信息为已完成时,控制所述第二子进程停止向所述目标父进程发送所述第一子进程的任务执行状态的询问信息。

在一些实施例中,所述执行模块还包括:

第七控制单元,用于当监测到所述第二子进程接收到所述第一子进程的任务执行状态信息为已完成时,控制所述第二子进程继续执行剩余逻辑。

在一些实施例中,所述确定模块还包括:

第四确定子模块,用于从目标父进程的多个子进程中确定与所述目标进程类型信息相匹配的多个子进程,其中,所述相匹配的多个子进程为与同一进程类型信息相匹配的多个子进程;

相应的,所述执行模块还包括:

第三执行子模块,用于基于所述与同一进程类型信息相匹配的多个子进程执行所述目标任务请求所请求的任务。

在一些实施例中,所述执行模块还包括:

第五执行子模块,用于基于所述相匹配的第一子进程执行基于所述目标任务请求将开发代码编译成浏览器可执行的代码的任务;

第六执行子模块,用于基于所述相匹配的第二子进程执行基于所述目标任务请求将访问请求在浏览器上进行展示的任务。

另一方面,本发明提供了一种多进程管理设备,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现所述多进程管理方法。

另一方面,本发明提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如前所述多进程管理方法。

本发明提供了一种多进程管理方法、装置、设备及计算机可读介质,根据目标任务请求中待执行目标任务的进程的目标进程类型信息,从目标父进程的多个子进程中确定与目标进程类型信息相匹配的子进程,再由匹配到的子进程执行目标任务请求所请求的任务。本发明在父进程建立多个子进程时,对每个子进程所执行的任务的进程类型进行了区分,因此可以根据目标任务请求中携带的待执行目标任务的进程的目标进程类型信息匹配出可以执行目标任务的子进程,从而对多个子进程所执行的任务逻辑进行了区分,解决了现有技术中多个子进程只能执行同一任务逻辑的任务,而导致资源访问冲突等异常情况发生的问题。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案和优点,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。

图1是本发明实施例提供的一种多进程管理方法的应用环境示意图;

图2是本发明实施例提供的一种多进程管理方法的流程示意图;

图3是本发明实施例提供的一种父进程创建多个子进程的方法的流程示意图;

图4是本发明实施例提供的一种利用第一子进程执行第一定时循环任务的方法的流程示意图;

图5是本发明实施例提供的一种利用第二子进程执行第二定时循环任务的方法的流程示意图;

图6是本发明实施例提供的另一种多进程管理方法的流程示意图;

图7是本发明实施例提供的一种多进程管理的应用架构示意图;

图8是本发明实施例提供的另一种多进程管理的应用架构示意图;

图9是本发明实施例提供的一种多进程管理的业务调用架构示意图;

图10是本发明实施例提供的一种多进程管理的业务调用流程示意图;

图11是本发明实施例提供的另一种多进程管理的业务调用流程示意图;

图12是本发明实施例提供的一种多进程管理装置的结构示意图;

图13是本发明实施例提供的一种用于实现本发明实施例所提供的方法的设备的硬件结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

以下介绍本发明多进程管理方法,本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的系统或服务器产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。

图1是本说明书实施例提供的多进程管理方法的应用环境示意图。如图1所示,其也是一种多进程管理系统,该系统包括:终端01和服务器02。

具体的,用户通过在所述终端01上操作或发出请求,从而触发所述服务器02响应或执行所述操作或请求。

具体的,所述终端01为可以连接无线网络的设备,可以包括:智能手机、平板电脑、笔记本电脑、数字助理、智能可穿戴设备、车载终端等类型的实体设备,也可以包括运行于实体设备中的软体,例如应用程序等。所述终端01可以是移动用户的移动终端。

所述服务器02可以是分布式服务器,或者由多个服务器组成的服务器集群。实际应用中,所述服务器02可以与所述终端01独立存在,也可以集成到所述终端01上,本说明书在此不做限定。

图2是本发明实施例提供的一种多进程管理方法的流程示意图,如图2所示,所述方法具体包括:

s201:接收目标任务请求,所述目标任务请求包括待执行目标任务的进程的目标进程类型信息。

实际应用中,所述目标进程类型信息可以是直接包括在目标任务请求中,也可以是用户根据待执行的目标任务的进程需求对目标任务进行分析得到所述目标进程类型信息。

s203:从目标父进程的多个子进程中确定与所述目标进程类型信息相匹配的子进程,其中,所述多个子进程为利用所述目标父进程创建的与进程类型信息对应的多个子进程。

具体的,所述目标进程类型信息包括第一进程类型信息和第二进程类型信息,相应的,所述从目标父进程的多个子进程中确定与所述目标进程类型信息相匹配的子进程包括:从目标父进程的多个子进程中确定与所述第一进程类型信息相匹配的第一子进程;从目标父进程的多个子进程中确定与所述第二进程类型信息相匹配的第二子进程。

在一些实施例中,所述多个子进程包括第一子进程和第二子进程,相应的,所述基于所述相匹配的子进程执行所述目标任务请求所请求的任务包括:基于所述相匹配的第一子进程执行基于所述目标任务请求将开发代码编译成浏览器可执行的代码的任务;基于所述相匹配的第二子进程执行基于所述目标任务请求将访问请求在浏览器上进行展示的任务。

s205:基于所述相匹配的子进程执行所述目标任务请求所请求的任务。

在本说明书实施例中,对目标父进程创建的多个子进程进行了进程类型区分,从而可以让不同的子进程执行不同的任务,克服了现有技术中多个子进程只能执行相同逻辑的问题,实现了进程执行任务的差异化。

图3是本发明实施例提供的一种父进程创建多个子进程的方法的流程示意图,如图3所示,具体包括:

s301:确定所述目标父进程的多个进程类型信息。

可以理解的,目标任务可能需要由一个或多个子进程执行,而且可能需要多个子进程分别执行不同任务,因此,需要先确定执行目标任务具体需要哪些进程类型进行配合。

s303:利用所述目标父进程创建所述多个子进程,所述多个子进程设置有进程类型标志。

具体的,可以具体设置子进程为获取第三方数据类型或编译代码类型等,还可以直接设置少部分子进程为特殊子进程,专用于执行不需要所有进程同时执行的任务,剩余大部分子进程为普通进程,用于执行父进程拷贝过来的需要同时执行多次的任务,以充分利用多核cpu来减少处理大量请求时的响应时间。

s305:将所述多个进程类型信息分别分配给所述多个子进程类型标志。

根据上述步骤,将多个进行类型信息分配多个子进程的类型标志,具体实现了子程序执行任务的差异化。

在具体应用中,对于父进程下的多个子进程之间需要按指定运行顺序才能正常工作的情况,由于nodejs的子进程之间并不能直接进行通信,因此现有技术对于该问题目前还没有很好的得到解决。

图4是本发明实施例提供的一种利用第一子进程执行第一定时循环任务的方法的流程示意图,如图4所示,具体包括:

s401:当所述第一子进程执行初始化逻辑时,控制所述第一子进程定时向所述目标父进程发送初始化未完成的任务执行状态信息。

定时向父进程汇报第一子进程当前初始化未完成的任务执行状态信息,使得父进程处可以获得第一子进程当前任务执行状态信息,从而,若第二子进程需要等待第一子进程执行的某一执行结果才能执行时,第二子进程可以向父进程发送询问信息来获得第一子进程当前任务执行状态信息。

其中,定时可以是根据任务执行时间具体设置。

s403:当所述第一子进程执行完编译代码逻辑时,控制所述第一子进程向所述目标父进程发送任务已完成的任务执行状态信息。

当父进程获知第一子进程任务已执行完成的状态信息时,第一定时循环任务执行结束。

s405:当监测到所述目标父进程接收到所述第一子进程的任务执行状态信息为已完成时,控制所述第一子进程停止向所述父进程发送所述第一子进程的任务执行状态信息。

图5是本发明实施例提供的一种利用第二子进程执行第二定时循环任务的方法的流程示意图,如图5所示,具体包括:

s501:当所述第二子进程执行初始化逻辑时,控制所述第二子进程定时向所述目标父进程发送所述第一子进程的任务执行状态的询问信息。

其中,定时可以是根据任务执行时间具体设置。

s503:利用所述目标父进程将所述询问信息发送给所述第一子进程。

通过父进程的转发,将询问信息由第二子进程发送到第一子进程。

若所述目标父进程收到所述询问信息时,发现所述目标父进程已收到步骤s401或步骤s403的关于第一子进程的任务执行状态信息,则直接将其信息发送给第二子进程。具体应用中,可以根据询问信息和第一子进程的任务执行状态信息的时间戳结合判断任务执行状态信息是否是最新的。具体可以结合任务执行时间和询问信息发送的频率设置合适的时间阈值进行判断。

s505:控制所述第一子进程向所述目标父进程发送所述第一子进程任务的任务执行状态信息。

s507:利用所述目标父进程将所述第一子进程的任务执行状态信息发送给所述第二子进程。

s509:当监测到所述第二子进程接收到所述第一子进程的任务执行状态信息为已完成时,控制所述第二子进程停止向所述目标父进程发送所述第一子进程的任务执行状态的询问信息。

当第二子进程获知第一子进程任务已执行完成的状态信息时,第二定时循环任务执行结束。

s511:当监测到所述第二子进程接收到所述第一子进程的任务执行状态信息为已完成时,控制所述第二子进程继续执行剩余逻辑。

其中,步骤s509和s511不限定先后顺序,可以同时执行,也可以步骤s511在s509之前执行。

本说明书实施例,对于相互间有依赖关系的多个任务,利用进程间通信机制,实现任务的正确调用顺序,从而达到充分利用web服务器性能,节约服务器资源,减少程序运行时间的目的。

如图6所示,所述步骤209具体还可以包括:

s601:从目标父进程的多个子进程中确定与所述目标进程类型信息相匹配的多个子进程,其中,所述相匹配的多个子进程为与同一进程类型信息相匹配的多个子进程。

s603:基于所述与同一进程类型信息相匹配的多个子进程执行所述目标任务请求所请求的任务。

本说明书实施例,通过设置多个特殊子进程用于执行同一任务,将与目标进程类型信息相匹配的多个子进程互相作为备份子进程,从而,当其中一个子进程任务执行失败时,其他一个或多个子进程仍然可以继续执行该任务,保证了任务可以成功执行。

下面以nodejs工具为例,具体说明本申请提供的多进程管理方法。首先,对相关关键术语进行说明。

进程:是并发执行的程序在执行过程中分配和管理资源的基本单位,是一个动态概念,竟争计算机系统资源的基本单位。每一个进程都有一个自己的地址空间,即进程空间或(虚空间)。进程空间的大小只与处理机的位数有关,一个16位长处理机的进程空间大小为216,而32位处理机的进程空间大小为232。进程至少有5种基本状态,它们是:初始态,执行态,等待状态,就绪状态,终止状态。

node多进程:使用node.js实现的多进程运行方式。进程是程序在计算机上的一次执行活动。当运行一个程序,就启动了一个进程。node.js实现多进程的方式是:执行文件为主进程,主进程复制多份到其他独立的进程中(数量取决于运行程序的服务器cpu核数),复制出的进程叫做worker(工作进程),主进程和所有工作进程同时执行同样的任务。例如,多个进程同时监听同一个端口,使得到来的请求可以分配给多个进程执行。增加程序响应速度。

cluster:集群,node.js中的一个基础模块。它可以通过一个父进程管理多个由自己创建的子进程的方式来实现多进程的功能。

主进程:程序运行的起始进程,在主进程中需要创建出工作进程。

worker:工作进程,又叫子进程,node.js中的一个基础模块,由cluster模块创建,包含了关于工作进程的所有公共信息和方法。

工作进程间通信:cluster模块创建工作进程时,建立了和工作进程之间的消息通道。父进程和子进程都可以接受和发送消息。工作进程之间不能进程通信,但可以给父进程发送消息,由父进程传递消息给指定工作进程。

本发明可以应用于实现一个可以监听代码修改,实时编译代码,提高开发效率的开发工具,开发阶段需要实时查看代码逻辑及展示效果,所以需要构建运行在开发者本地的web服务,实现实时编译代码及能够接收请求的web服务。

如图7所示,本说明书提供了一种多进程管理的应用架构示意图,利用node.jscluster模块,创建了两种类型的工作进程,optimizer和server:用于打包优化逻辑代码的代码优化进程和实现接收请求功能的web服务进程,每个工作进程只完成特定的任务。

如图8所示,两个进程需要先后执行才能正常工作,类型为server的进程需要在类型为optimizer的进程完成任务后才能启动。所以,当类型为optimizer的进程完成任务后,会通过父进程和类型为server的进程进行通信,然后server进程完成server的启动和监听端口等功能,由此运行起一个web服务,开发者可通过访问对应ip和端口向web服务发起请求。

图9是本说明书实施例提供的一种多进程管理的业务调用架构示意图。父进程cluster借助child_process模块的fork()方法来创建子进程,通过fork方式创建的子进程与父进程之间建立了ipc(inter-processcommunication进程间通信)通道,支持双向通信。cluster可以充分利用服务器多核资源,能够很好的提升服务稳定性和响应速度。父进程可以创建子进程,还可以和子进程通信,存在多个子进程时,父进程还可以充当起桥梁,使多个子进程之间可以相互通信。

工作进程worker,由父进程创建,本身是父进程的一份拷贝。本说明书实施例中,父进程在创建子进程时,给每个子进程分配标识位type,指定工作任务。每个子进程通过判断type的值,执行不同的逻辑分支。从而达到不同进程完成不同任务的目的。

图10是本说明书实施例提供的另一种多进程管理的业务调用流程示意图,具体涉及父子进程创建,及消息通知及接收方法实现。

1.创建父进程clustermanager,并且用父进程创建两个子进程,并实现消息传递方法。分为以下两个步骤:

a)使用node.jscluster模块创建工作进程,在创建时,传入type,以区分工作进程类型。javascript实现为:

varworker=cluster.fork(type)//分别传入optimize,server。

b)使用cluster本身和工作进程间可以进行消息通信的机制,实现cluster的消息接收方法。需要实现的具体功能如下:

i.消息接收:cluster模块收到消息,得到消息来源(消息来自哪个工作进程),消息体

ii.消息传递:将消息传递给除消息来源以外的其他进程

2.子进程执行初始化逻辑,根据传入的type判断,执行相对应的逻辑分支:optimizer子进程,执行代码优化相关的初始化工作。server子进程,执行监听端口,设置接收请求路径等创建web服务所需要的逻辑代码。

图11是本说明书实施例提供的另一种多进程管理的业务调用流程示意图,具体涉及子进程间消息传递,及按特定顺序执行相关逻辑。

两个子进程必须按照一定的顺序执行。需要用到子进程间消息传递,具体步骤如下:

a)optimize子进程开始执行基本的初始化逻辑,例如,变量设置等。基本逻辑执行完后,开始执行编译代码相关逻辑之前,执行一个定时循环任务:向父进程发送消息汇报当前状态(还未完成初始化),当执行完编译代码等关键逻辑后,将进程状态改为done,定时循环任务执行时,发现状态为done时,该次任务执行完后,会结束循环。

b)server子进程执行基础初始化逻辑,在执行服务启动相关逻辑之前(此逻辑必须在代码打包完成才能执行,也就是optimize子进程执行完成后),开始执行一个定时循环任务:向cluster发送消息,定时询问当前optimize工作进程的执行状态。cluster收到消息后,会去向optimize进程发出消息,询问该进程执行状态,收到回复后,再回复给server子进程。当收到来自父进程cluster的消息,得到optimize子进程状态为done时,该定时循环任务结束循环。

c)optimize子进程执行完代码编译等关键逻辑后,将自己进程状态修改为done,定时循环任务执行时,将此状态发送给父进程cluster,父进程负责传递给另一个子进程:server,

d)server子进程收到来自父进程的回复,这个回复可能是由optimize进程发送给父进程cluster的,父进程传递给server的,也可能是由server子进程发到cluster进程,cluster父进程向optimize子进程传递,optimze子进程将状态,通过cluster父进程,传递给server子进程。路径如下:

i:optimize—cluster—server

ii:server—cluster—optimize—cluster--serverserver子进程根据得到的消息,决定如何执行剩余逻辑:如果optimize进程的状态为未完成,则等待;如果optimize子进程状态为已完成,则继续向下执行剩余逻辑。

本发明实施例还提供了一种多进程管理装置,如图12所示,所述装置包括:

接收模块1201,用于接收目标任务请求,所述目标任务请求包括待执行目标任务的进程的目标进程类型信息;

确定模块1203,用于从目标父进程的多个子进程中确定与所述目标进程类型信息相匹配的子进程,其中,所述多个子进程为利用所述目标父进程创建的与进程类型信息对应的多个子进程;

执行模块1205,用于基于所述相匹配的子进程执行所述目标任务请求所请求的任务。

在一些实施例中,所述确定模块包括:

第一确定子模块,用于确定所述目标父进程的多个进程类型信息;

创建子模块,用于利用所述目标父进程创建所述多个子进程,所述多个子进程设置有进程类型标志;

分配子模块,用于将所述多个进程类型信息分别分配给所述多个子进程类型标志。

在一些实施例中,所述确定模块还包括:

第二确定子模块,用于从目标父进程的多个子进程中确定与所述第一进程类型信息相匹配的第一子进程;

第三确定子模块,用于从目标父进程的多个子进程中确定与所述第二进程类型信息相匹配的第二子进程。

在一些实施例中,所述执行模块包括:

第一执行子模块,用于利用所述第一子进程执行第一定时循环任务;

进一步的,所述第一执行子模块包括:

第一控制单元,用于当所述第一子进程执行初始化逻辑时,控制所述第一子进程定时向所述目标父进程发送初始化未完成的任务执行状态信息;

第二控制单元,用于当所述第一子进程执行完编译代码逻辑时,控制所述第一子进程向所述目标父进程发送任务已完成的任务执行状态信息;

第三控制单元,用于当监测到所述目标父进程接收到所述第一子进程的任务执行状态信息为已完成时,控制所述第一子进程停止向所述父进程发送所述第一子进程的任务执行状态信息。

在一些实施例中,所述执行模块还包括:

第二执行子模块,用于利用所述第二子进程执行第二定时循环任务;

进一步的,所述第二执行子模块包括:

第四控制单元,用于当所述第二子进程执行初始化逻辑时,控制所述第二子进程定时向所述目标父进程发送所述第一子进程的任务执行状态的询问信息;

第一发送单元,用于利用所述目标父进程将所述询问信息发送给所述第一子进程;

第五控制单元,用于控制所述第一子进程向所述目标父进程发送所述第一子进程任务的任务执行状态信息;

第二发送单元,用于利用所述目标父进程将所述第一子进程的任务执行状态信息发送给所述第二子进程;

第六控制单元,用于当监测到所述第二子进程接收到所述第一子进程的任务执行状态信息为已完成时,控制所述第二子进程停止向所述目标父进程发送所述第一子进程的任务执行状态的询问信息。

在一些实施例中,所述执行模块还包括:

第七控制单元,用于当监测到所述第二子进程接收到所述第一子进程的任务执行状态信息为已完成时,控制所述第二子进程继续执行剩余逻辑。

在一些实施例中,所述确定模块还包括:

第四确定子模块,用于从目标父进程的多个子进程中确定与所述目标进程类型信息相匹配的多个子进程,其中,所述相匹配的多个子进程为与同一进程类型信息相匹配的多个子进程;

相应的,所述执行模块还包括:

第三执行子模块,用于基于所述与同一进程类型信息相匹配的多个子进程执行所述目标任务请求所请求的任务。

在一些实施例中,所述执行模块还包括:

第五执行子模块,用于基于所述相匹配的第一子进程执行基于所述目标任务请求将开发代码编译成浏览器可执行的代码的任务;

第六执行子模块,用于基于所述相匹配的第二子进程执行基于所述目标任务请求将访问请求在浏览器上进行展示的任务。

所述的装置实施例中的装置与方法实施例基于同样的发明构思。

进一步地,图13示出了一种用于实现本发明实施例所提供的方法的设备的硬件结构示意图,所述设备可以参与构成或包含本发明实施例所提供的装置。如图13所示,设备10可以包括一个或多个(图中采用102a、102b,……,102n来示出)处理器102(处理器102可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输装置106。除此以外,还可以包括:显示器、输入/输出接口(i/o接口)、通用串行总线(usb)端口(可以作为i/o接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图13所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,设备10还可包括比图13中所示更多或者更少的组件,或者具有与图13所示不同的配置。

应当注意到的是上述一个或多个处理器102和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到设备10(或移动设备)中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。

存储器104可用于存储应用软件的软件程序以及模块,如本发明实施例中所述的方法对应的程序指令/数据存储装置,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的一种基于角色的权限管控方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至设备10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括设备10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(networkinterfacecontroller,nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(radiofrequency,rf)模块,其用于通过无线方式与互联网进行通讯。

显示器可以例如触摸屏式的液晶显示器(lcd),该液晶显示器可使得用户能够与设备10(或移动设备)的用户界面进行交互。

本发明还提供了一种多进程管理设备,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如前述的多进程管理方法。

本说明书实施例中,所述存储器可用于存储软件程序以及模块,处理器通过运行存储在存储器的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、功能所需的应用程序等;存储数据区可存储根据所述设备的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器还可以包括存储器控制器,以提供处理器对存储器的访问。

本发明还提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如前所述多进程管理方法。

由上述本发明提供的多进程管理方法、装置及设备的实施例可见,本发明提供了一种多进程管理方法、装置/设备及计算机可读介质,根据目标任务请求中待执行目标任务的进程的目标进程类型信息,从目标父进程的多个子进程中确定与目标进程类型信息相匹配的子进程,再由匹配到的子进程执行目标任务请求所请求的任务。本发明在父进程建立多个子进程时,对每个子进程所执行的任务的进程类型进行了区分,因此可以根据目标任务请求中携带的待执行目标任务的进程的目标进程类型信息匹配出可以执行目标任务的子进程,从而对多个子进程所执行的任务逻辑进行了区分,解决了现有技术中多个子进程只能执行同一任务逻辑的任务,而导致资源访问冲突等异常情况发生的问题。

本申请可以应用于一些系统平台的开发阶段,解决了本地开发调试需要手动运行编译不能实时看到效果,开发效率较低的问题。同时本说明书中关于指定工作进程完成特定任务的思路还可以用于其他方面,比如在正式的生产环境,可以将一些连接数据库,定期处理日志等不需要所有进程都参与执行的任务,使用本说明书来处理。用来节约服务器资源,提高服务性能。

需要说明的是:上述本说明书实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、系统和服务器实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅为本说明书的较佳实施例,并不用以限制本说明书,凡在本说明书的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本说明书的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1