CN107145372A - 信息生成方法和装置 - Google Patents
信息生成方法和装置 Download PDFInfo
- Publication number
- CN107145372A CN107145372A CN201710320044.6A CN201710320044A CN107145372A CN 107145372 A CN107145372 A CN 107145372A CN 201710320044 A CN201710320044 A CN 201710320044A CN 107145372 A CN107145372 A CN 107145372A
- Authority
- CN
- China
- Prior art keywords
- subprocess
- component
- information
- host process
- module information
- 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.)
- Pending
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/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了信息生成方法和装置。该方法的一具体实施方式包括:接收信息生成指令,其中,信息生成指令包括用于生成信息的至少一个组件的组件信息,至少一个组件中的每个组件是存储该组件的服务器通过对与该组件相对应的数据和函数进行封装而生成的;创建出主进程和至少一个子进程,其中,至少一个子进程用于加载和执行至少一个组件,主进程用于控制至少一个子进程;基于至少一个组件的组件信息,通过主进程控制至少一个子进程加载至少一个组件;通过至少一个子进程执行至少一个组件,生成信息。该实施方式提高了生成信息的成功率。
Description
技术领域
本申请涉及计算机技术领域,具体涉及互联网技术领域,尤其涉及信息生成方法和装置。
背景技术
随着企业业务的快速发展,用于生成与企业业务相关的信息的***也越来越复杂。通常情况下,该***会包括多个服务器,各个服务器用于存储不同的计算部分的数据和函数,这些服务器之间主要采用消息机制或者远程方法调用等手段来进行交互,以实现对各个服务器存储的数据和函数进行计算,生成信息。
然而,采用消息机制或者远程方法调用机制对存储在服务器上的数据和函数直接进行计算的过程中会使数据和函数产生多个版本,这样就会出现版本冲突的问题,导致生成信息的成功率较低。
发明内容
本申请的目的在于提出一种改进的信息生成方法和装置,来解决以上背景技术部分提到的技术问题。
第一方面,本申请实施例提供了一种信息生成方法,该方法包括:接收信息生成指令,其中,信息生成指令包括用于生成信息的至少一个组件的组件信息,至少一个组件中的每个组件是存储该组件的服务器通过对与该组件相对应的数据和函数进行封装而生成的;创建出主进程和至少一个子进程,其中,至少一个子进程用于加载和执行至少一个组件,主进程用于控制至少一个子进程;基于至少一个组件的组件信息,通过主进程控制至少一个子进程加载至少一个组件;通过至少一个子进程执行至少一个组件,生成信息。
在一些实施例中,至少一个子进程的数量与至少一个组件的数量相同;以及基于至少一个组件的组件信息,通过主进程控制至少一个子进程加载至少一个组件,包括:通过主进程将至少一个组件的组件信息中的每个组件信息与至少一个子进程中的每个子进程一一配对,并将每个组件信息发送至配对的子进程;对于至少一个子进程中的每个子进程,基于与该子进程配对的组件信息,通过该子进程加载与该子进程配对的组件信息所指示的组件。
在一些实施例中,该方法还包括:对于至少一个子进程中的每个子进程,通过该子进程获取与该子进程配对的组件信息所指示的组件的状态,其中,组件的状态包括以下任意一项:加载中、加载完成、加载失败、执行中、执行成功、执行失败。
在一些实施例中,该方法还包括:若与该子进程配对的组件信息所指示的组件的状态是加载失败,则通过该子进程重新加载与该子进程配对的组件信息所指示的组件。
在一些实施例中,该方法还包括:若与该子进程配对的组件信息所指示的组件的状态是执行失败,则通过该子进程重新执行与该子进程配对的组件信息所指示的组件。
在一些实施例中,该方法还包括:若与该子进程配对的组件信息所指示的组件的状态是执行完成,则通过主进程控制该子进程退出。
在一些实施例中,该方法还包括:对于至少一个子进程中的每个子进程,若该子进程被创建时间与当前时间之间的时间段大于预设时间段,则通过主进程控制该子进程退出。
在一些实施例中,该方法还包括:对于至少一个子进程中的每个子进程,响应于接收到用于指示该子进程退出的指令,则通过主进程控制该子进程退出。
在一些实施例中,主进程与至少一个子进程之间通过以下任意一种方式进行交互:共享内存、管道、套接字。
第二方面,本申请实施例提供了一种信息生成装置,该装置包括:接收单元,配置用于接收信息生成指令,其中,信息生成指令包括用于生成信息的至少一个组件的组件信息,至少一个组件中的每个组件是存储该组件的服务器通过对与该组件相对应的数据和函数进行封装而生成的;创建单元,配置用于创建出主进程和至少一个子进程,其中,至少一个子进程用于加载和执行至少一个组件,主进程用于控制至少一个子进程;加载单元,配置用于基于至少一个组件的组件信息,通过主进程控制至少一个子进程加载至少一个组件;执行单元,配置用于通过至少一个子进程执行至少一个组件,生成信息。
在一些实施例中,至少一个子进程的数量与至少一个组件的数量相同;以及加载单元,包括:配对子单元,配置用于通过主进程将至少一个组件的组件信息中的每个组件信息与至少一个子进程中的每个子进程一一配对,并将每个组件信息发送至配对的子进程;加载子单元,配置用于对于至少一个子进程中的每个子进程,基于与该子进程配对的组件信息,通过该子进程加载与该子进程配对的组件信息所指示的组件。
在一些实施例中,该装置还包括:获取单元,配置用于对于至少一个子进程中的每个子进程,通过该子进程获取与该子进程配对的组件信息所指示的组件的状态,其中,组件的状态包括以下任意一项:加载中、加载完成、加载失败、执行中、执行成功、执行失败。
在一些实施例中,该装置还包括:重新加载单元,配置用于若与该子进程配对的组件信息所指示的组件的状态是加载失败,则通过该子进程重新加载与该子进程配对的组件信息所指示的组件。
在一些实施例中,该装置还包括:重新执行单元,配置用于若与该子进程配对的组件信息所指示的组件的状态是执行失败,则通过该子进程重新执行与该子进程配对的组件信息所指示的组件。
在一些实施例中,该装置还包括:第一退出单元,配置用于若与该子进程配对的组件信息所指示的组件的状态是执行完成,则通过主进程控制该子进程退出。
在一些实施例中,该装置还包括:第二退出单元,配置用于对于至少一个子进程中的每个子进程,若该子进程被创建时间与当前时间之间的时间段大于预设时间段,则通过主进程控制该子进程退出。
在一些实施例中,该装置还包括:第三退出单元,配置用于对于至少一个子进程中的每个子进程,响应于接收到用于指示该子进程退出的指令,则通过主进程控制该子进程退出。
在一些实施例中,主进程与至少一个子进程之间通过以下任意一种方式进行交互:共享内存、管道、套接字。
第三方面,本申请实施例提供了一种电子设备,该电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序;当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如第一方面中任一实现方式描述的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面中任一实现方式描述的方法。
本申请实施例提供的信息生成方法和装置,在接收到信息生成指令之后,首先创建出主进程和至少一个子进程;然后基于信息生成指令中的至少一个组件的组件信息,通过主进程控制至少一个子进程加载至少一个组件;最后通过至少一个子进程执行至少一个组件,生成信息。通过将数据和函数封装成组件,并通过主进程控制子进程来加载和执行组件,以生成信息。避免了版本冲突问题的出现,从而提高了生成信息的成功率。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是本申请实施例可以应用于其中的示例性***架构图;
图2是根据本申请的信息生成方法的一个实施例的流程图;
图3是根据本申请的信息生成方法的又一个实施例的流程图;
图4是根据本申请的信息生成装置的一个实施例的结构示意图;
图5是适于用来实现本申请实施例的电子设备的计算机***的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了可以应用本申请的信息生成方法或信息生成装置的实施例的示例性***架构100。
如图1所示,***架构100可以包括服务器101、102、103,信息生成服务器104,终端设备105和网络106、107。网络106用以在服务器101、102、103和信息生成服务器104之间提供通信链路的介质。网络107用以在终端设备105和信息生成服务器104之间提供通信链路的介质。网络106、107可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备105通过网络107与信息生成服务器104交互,以接收或发送消息等。终端设备105可以是各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
信息生成服务器104可以是提供各种服务的服务器,例如信息生成服务器在接收到终端设备105发送的信息生成指令之后,可以首先创建出主进程和至少一个子进程;之后通过主进程控制至少一个子进程加载至少一个组件;然后通过至少一个子进程执行至少一个组件,生成信息;最后对生成的信息进行存储或反馈给终端设备105。
服务器101、102、103可以是分别存储不同组件的服务器。其中,服务器101、102、103可以通过对与组件相对应的数据和函数进行封装以生成组件。
需要说明的是,本申请实施例所提供的信息生成方法一般由信息生成服务器104执行,相应地,信息生成装置一般设置于信息生成服务器104中。信息生成服务器104可以是物理上存在的服务器,也可以是虚拟的服务器(即虚拟机),本实施对此不进行具体的限定。
应该理解,图1中的服务器、信息生成服务器、终端设备和网络的数目仅仅是示意性的。根据实现需要,可以具有任意数目的服务器、信息生成服务器、终端设备和网络。
继续参考图2,其示出了根据本申请的信息生成方法的一个实施例的流程200。信息生成方法,包括以下步骤:
步骤201,接收信息生成指令。
在本实施例中,信息生成方法运行于其上的电子设备(例如图1所示的信息生成服务器104)可以通过有线连接方式或者无线连接方式从客户端(例如图1所示的终端设备105)获取信息生成指令。其中,信息生成指令可以包括用于生成信息的至少一个组件的组件信息。组件信息可以包括组件的入口类和入口方法等信息。
在本实施例中,用于生成信息的各个组件可以被存储在不同的服务器(例如图1所示的服务器101、102、103)中,是存储组件的服务器通过对与组件相对应的数据和函数进行封装而生成的。这里,封装,即隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别;将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成“类”。其中,数据和函数都是类的成员。
步骤202,创建出主进程和至少一个子进程。
在本实施例中,在接收到信息生成指令之后,电子设备可以创建出主进程和至少一个子进程。其中,至少一个子进程可以用于加载和执行至少一个组件,主进程可以用于控制至少一个子进程。
在本实施例中,电子设备可以通过多种方式创建主进程和至少一个子进程。作为示例,电子设备可以通过fock函数创建出主进程和至少一个子进程。其中,fork函数可以通过***调用创建一个与原来进程几乎完全相同的进程。一个进程调用fork函数后,***先给新的进程分配资源,例如存储数据和代码的空间;然后把原来的进程的所有值都复制到新的新进程中,只有少数值与原来的进程的值不同。
步骤203,基于至少一个组件的组件信息,通过主进程控制至少一个子进程加载至少一个组件。
在本实施例中,基于信息生成指令中的至少一个组件的组件信息,电子设备可以通过主进程控制至少一个子进程加载至少一个组件。这里,加载就是把存储组件的服务器中的组件调到电子设备的内存中。通常情况下,子进程可以通过java(一门面向对象编程语言)反射机制来完成组件的加载。
java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。java反射机制主要提供了以下功能:在运行时判断任意一个对象所属的类;在运行时构造任意一个类的对象;在运行时判断任意一个类所具有的成员变量和方法;在运行时调用任意一个对象的方法;生成动态代理。
在本实施例中,主进程可以首先基于用于生成信息的组件的数量,确定出子进程的启动数量;然后控制一定数量的子进程启动,并将用于生成信息的组件的组件信息发送至已启动的子进程。已启动的子进程可以首先根据用于生成信息的组件的组件信息,查找到存储用于生成信息的组件的各个服务器;然后从存储用于生成信息的组件的各个服务器中加载用于生成信息的组件。
在本实施例中,主进程可以通过多种方式启动子进程。作为示例,主进程可以通过Runtime(即Runtime类,封装了运行时的环境。每个Java应用程序都有一个Runtime类实例,使应用程序能够与其运行的环境相连接)中的exec函数或者ProcessBuilder(J2SE(java2标准版)1.5在java.lang中新添加的一个新类,此类用于创建操作***进程,提供一种启动和管理进程的方法)中的start函数启动子进程,并在子进程启动过程中,将用于生成信息的组件的入口类和入口方法等信息传递至已启动的子进程。
步骤204,通过至少一个子进程执行至少一个组件,生成信息。
在本实施例中,电子设备可以通过至少一个子进程执行至少一个组件,生成信息,并对信息进行存储或者发送至客户端。作为示例,子进程可以首先通过java反射机制来完成组件的执行,以生成信息;然后将信息转换成JSON(JavaScript Object Notation,是一种轻量级的数据交换格式)格式来进行存储。
在本实施例的一些可选的实现方式中,信息生成方法还可以包括:对于至少一个子进程中的每个子进程,通过该子进程获取与该子进程配对的组件信息所指示的组件的状态,其中,组件的状态包括以下任意一项:加载中、加载完成、加载失败、执行中、执行成功、执行失败。这里,子进程可以周期性地获取与该子进程配对的组件信息所指示的组件的状态,并根据不同的状态触发不同的后续处理方法。作为示例,若与该子进程配对的组件信息所指示的组件的状态是加载中或执行中,则不进行特殊处理,子进程继续周期性地获取与该子进程配对的组件信息所指示的组件的状态即可。
在本实施例的一些可选的实现方式中,信息生成方法还可以包括:若与该子进程配对的组件信息所指示的组件的状态是加载失败,则通过该子进程重新加载与该子进程配对的组件信息所指示的组件。从而能够及时发现加载失败的组件,并对加载失败的组件进行重新加载,进一步提高了生成信息的成功率。
在本实施例的一些可选的实现方式中,信息生成方法还可以包括:若与该子进程配对的组件信息所指示的组件的状态是执行失败,则通过该子进程重新执行与该子进程配对的组件信息所指示的组件。从而能够及时发现执行失败的组件,并对执行失败的组件进行重新执行,进一步提高了生成信息的成功率。
在本实施例的一些可选的实现方式中,信息生成方法还可以包括:若与该子进程配对的组件信息所指示的组件的状态是执行完成,则通过主进程控制该子进程退出。在组件执行完成之后,能够及时控制子进程退出,从而实现了对电子设备的内存的及时回收,避免了电子设备的内存溢出情况的发生。
本实施例拥有完善的组件退出机制,除了通过周期性地获取组件的状态,并在组件执行完成之后控制子进程退出之外,主进程还可以通过多种其他的方式控制子进程退出,以实现对电子设备的内存的及时回收,避免电子设备的内存溢出情况的发生。
在本实施例的一些可选的实现方式中,信息生成方法还可以包括:对于至少一个子进程中的每个子进程,若该子进程被创建时间与当前时间之间的时间段大于预设时间段,则通过主进程控制该子进程退出。作为示例,若预设时间段是2个小时,子进程被创建时间为2017/4/18:30:00,当前时间为2017/4/1 11:00:00,则该子进程被创建时间与当前时间之间的时间段为2.5个小时,其大于预设时间段,电子设备可以通过主进程控制该子进程退出。
在本实施例的一些可选的实现方式中,信息生成方法还可以包括:对于至少一个子进程中的每个子进程,响应于接收到用于指示该子进程退出的指令,则通过主进程控制该子进程退出。作为示例,用户可以通过客户端向电子设备发送用于指示子进程退出的指令,电子设备接收到用于指示子进程退出的指令之后,可以通过主进程控制子进程退出。
在本实施例的一些可选的实现方式中,主进程与至少一个子进程之间通过以下任意一种方式进行交互:共享内存、管道、套接字。其中,共享内存就是映射一段能被其他进程所访问的内存,这段共享内存由一个进程创建,但多个进程都可以访问,是针对其他进程间通信方式运行效率低而专门设计的。其往往与其他通信机制配合使用,来实现进程间的同步和通信。管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。套接字(socket)是一种进程间通信机制,与其他通信机制不同的是,它可用于不同及其间的进程通信。
本申请的实施例提供的信息生成方法,在接收到信息生成指令之后,首先创建出主进程和至少一个子进程;然后基于信息生成指令中的至少一个组件的组件信息,通过主进程控制至少一个子进程加载至少一个组件;最后通过至少一个子进程执行至少一个组件,生成信息。通过将数据和函数封装成组件,并通过主进程控制子进程来加载和执行组件,以生成信息。避免了版本冲突问题的出现,从而提高了生成信息的成功率。
进一步参考图3,其示出了信息生成方法的又一个实施例的流程300。该信息生成方法的流程300,包括以下步骤:
步骤301,接收信息生成指令。
在本实施例中,信息生成方法运行于其上的电子设备(例如图1所示的信息生成服务器104)可以通过有线连接方式或者无线连接方式从客户端(例如图1所示的终端设备105)获取信息生成指令。其中,信息生成指令可以包括用于生成信息的至少一个组件的组件信息。组件信息可以包括组件的入口类和入口方法等信息。用于生成信息的各个组件可以被存储在不同的服务器(例如图1所示的服务器101、102、103)中,是存储组件的服务器通过对与组件相对应的数据和函数进行封装而生成的。
步骤302,创建出主进程和至少一个子进程。
在本实施例中,在接收到信息生成指令之后,电子设备可以创建出主进程和至少一个子进程。其中,至少一个子进程可以用于加载和执行至少一个组件,主进程可以用于控制至少一个子进程。这里,电子设备创建出的子进程的数量可以与用于生成信息的组件的数量相同。
步骤303,通过主进程将至少一个组件的组件信息中的每个组件信息与至少一个子进程中的每个子进程一一配对,并将每个组件信息发送至配对的子进程。
在本实施例中,主进程可以首先将用于生成信息的组件的组件信息与子进程进行一一配对,然后将各个组件信息分别发送至与其配对的子进程中,从而实现了将一个子进程与一个组件信息对应。
在本实施例中,主进程可以首先启动全部子进程;然后通过随机分配的方式,为各个子进程分别分配一个不同的组件信息。作为示例,若组件信息包括组件信息A、组件信息B、组件信息C,若子进程包括子进程1、子进程2、子进程3,则主进程可以将组件信息A与子进程1配对、组件信息B与子进程2配对、组件信息C与子进程3配对,或者将组件信息C与子进程1配对、组件信息B与子进程2配对、组件信息A与子进程3配对。
步骤304,对于至少一个子进程中的每个子进程,基于与该子进程配对的组件信息,通过该子进程加载与该子进程配对的组件信息所指示的组件。
在本实施例中,对于至少一个子进程中的每个子进程,该子进程可以基于与该子进程配对的组件信息,加载与该子进程配对的组件信息所指示的组件,从而实现了一个子进程加载一个组件。作为示例,若组件信息包括组件信息A、组件信息B、组件信息C,若子进程包括子进程1、子进程2、子进程3,组件信息A与子进程1配对、组件信息B与子进程2配对、组件信息C与子进程3配对,则子进程1加载组件信息A所指示的组件,子进程2加载组件信息B所指示的组件,子进程3加载组件信息C所指示的组件。
步骤305,通过至少一个子进程执行至少一个组件,生成信息。
在本实施例中,电子设备可以通过至少一个子进程执行至少一个组件,生成信息,并对信息进行存储或者发送至客户端。
从图3中可以看出,与图2对应的实施例相比,本实施例中的信息生成方法的流程300突出了步骤303和步骤304。由此,本实施例描述的方案中一个子进程加载和执行一个组件,从而避免了类的隔离性的问题的出现,更进一步地提高了生成信息的成功率。
进一步参考图4,作为对上述各图所示方法的实现,本申请提供了一种信息生成装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图4所示,本实施例所示的信息生成装置400可以包括:接收单元401、创建单元402、加载单元403和执行单元404。其中,接收单元401,配置用于接收信息生成指令,其中,信息生成指令包括用于生成信息的至少一个组件的组件信息,至少一个组件中的每个组件是存储该组件的服务器通过对与该组件相对应的数据和函数进行封装而生成的;创建单元402,配置用于创建出主进程和至少一个子进程,其中,至少一个子进程用于加载和执行至少一个组件,主进程用于控制至少一个子进程;加载单元403,配置用于基于至少一个组件的组件信息,通过主进程控制至少一个子进程加载至少一个组件;执行单元404,配置用于通过至少一个子进程执行至少一个组件,生成信息。
在本实施例中,信息生成装置400中:接收单元401、创建单元402、加载单元403和执行单元404的具体处理及其所带来的技术效果可分别参考图2对应实施例中的步骤201、步骤202、步骤203和步骤204的相关说明,在此不再赘述。
在本实施例的一些可选的实现方式中,至少一个子进程的数量与至少一个组件的数量相同;以及加载单元403可以包括:配对子单元(图中未示出),配置用于通过主进程将至少一个组件的组件信息中的每个组件信息与至少一个子进程中的每个子进程一一配对,并将每个组件信息发送至配对的子进程;加载子单元(图中未示出),配置用于对于至少一个子进程中的每个子进程,基于与该子进程配对的组件信息,通过该子进程加载与该子进程配对的组件信息所指示的组件。
在本实施例的一些可选的实现方式中,信息生成装置400还可以包括:获取单元(图中未示出),配置用于对于至少一个子进程中的每个子进程,通过该子进程获取与该子进程配对的组件信息所指示的组件的状态,其中,组件的状态包括以下任意一项:加载中、加载完成、加载失败、执行中、执行成功、执行失败。
在本实施例的一些可选的实现方式中,信息生成装置400还可以包括:重新加载单元(图中未示出),配置用于若与该子进程配对的组件信息所指示的组件的状态是加载失败,则通过该子进程重新加载与该子进程配对的组件信息所指示的组件。
在本实施例的一些可选的实现方式中,信息生成装置400还可以包括:重新执行单元(图中未示出),配置用于若与该子进程配对的组件信息所指示的组件的状态是执行失败,则通过该子进程重新执行与该子进程配对的组件信息所指示的组件。
在本实施例的一些可选的实现方式中,信息生成装置400还可以包括:第一退出单元(图中未示出),配置用于若与该子进程配对的组件信息所指示的组件的状态是执行完成,则通过主进程控制该子进程退出。
在本实施例的一些可选的实现方式中,信息生成装置400还可以包括:第二退出单元(图中未示出),配置用于对于至少一个子进程中的每个子进程,若该子进程被创建时间与当前时间之间的时间段大于预设时间段,则通过主进程控制该子进程退出。
在本实施例的一些可选的实现方式中,信息生成装置400还可以包括:第三退出单元(图中未示出),配置用于对于至少一个子进程中的每个子进程,响应于接收到用于指示该子进程退出的指令,则通过主进程控制该子进程退出。
在本实施例的一些可选的实现方式中,主进程与至少一个子进程之间通过以下任意一种方式进行交互:共享内存、管道、套接字。
下面参考图5,其示出了适于用来实现本申请实施例的电子设备的计算机***500的结构示意图。图5示出的电子设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图5所示,计算机***500包括中央处理单元(CPU)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储部分508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM 503中,还存储有***500操作所需的各种程序和数据。CPU 501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
以下部件连接至I/O接口505:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。在该计算机程序被中央处理单元(CPU)501执行时,执行本申请的方法中限定的上述功能。
需要说明的是,本申请上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括接收单元、创建单元、加载单元和执行单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,接收单元还可以被描述为“接收信息生成指令的单元”。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:接收信息生成指令,其中,信息生成指令包括用于生成信息的至少一个组件的组件信息,至少一个组件中的每个组件是存储该组件的服务器通过对与该组件相对应的数据和函数进行封装而生成的;创建出主进程和至少一个子进程,其中,至少一个子进程用于加载和执行至少一个组件,主进程用于控制至少一个子进程;基于至少一个组件的组件信息,通过主进程控制至少一个子进程加载至少一个组件;通过至少一个子进程执行至少一个组件,生成信息。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (12)
1.一种信息生成方法,其特征在于,所述方法包括:
接收信息生成指令,其中,所述信息生成指令包括用于生成信息的至少一个组件的组件信息,所述至少一个组件中的每个组件是存储该组件的服务器通过对与该组件相对应的数据和函数进行封装而生成的;
创建出主进程和至少一个子进程,其中,所述至少一个子进程用于加载和执行所述至少一个组件,所述主进程用于控制所述至少一个子进程;
基于所述至少一个组件的组件信息,通过所述主进程控制所述至少一个子进程加载所述至少一个组件;
通过所述至少一个子进程执行所述至少一个组件,生成信息。
2.根据权利要求1所述的方法,其特征在于,所述至少一个子进程的数量与所述至少一个组件的数量相同;以及
所述基于所述至少一个组件的组件信息,通过所述主进程控制所述至少一个子进程加载所述至少一个组件,包括:
通过所述主进程将所述至少一个组件的组件信息中的每个组件信息与所述至少一个子进程中的每个子进程一一配对,并将每个组件信息发送至配对的子进程;
对于所述至少一个子进程中的每个子进程,基于与该子进程配对的组件信息,通过该子进程加载与该子进程配对的组件信息所指示的组件。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
对于所述至少一个子进程中的每个子进程,通过该子进程获取与该子进程配对的组件信息所指示的组件的状态,其中,组件的状态包括以下任意一项:加载中、加载完成、加载失败、执行中、执行成功、执行失败。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
若与该子进程配对的组件信息所指示的组件的状态是加载失败,则通过该子进程重新加载与该子进程配对的组件信息所指示的组件。
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
若与该子进程配对的组件信息所指示的组件的状态是执行失败,则通过该子进程重新执行与该子进程配对的组件信息所指示的组件。
6.根据权利要求3所述的方法,其特征在于,所述方法还包括:
若与该子进程配对的组件信息所指示的组件的状态是执行完成,则通过所述主进程控制该子进程退出。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
对于所述至少一个子进程中的每个子进程,若该子进程被创建时间与当前时间之间的时间段大于预设时间段,则通过所述主进程控制该子进程退出。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
对于所述至少一个子进程中的每个子进程,响应于接收到用于指示该子进程退出的指令,则通过所述主进程控制该子进程退出。
9.根据权利要求1-8之一所述的方法,其特征在于,所述主进程与所述至少一个子进程之间通过以下任意一种方式进行交互:共享内存、管道、套接字。
10.一种信息生成装置,其特征在于,所述装置包括:
接收单元,配置用于接收信息生成指令,其中,所述信息生成指令包括用于生成信息的至少一个组件的组件信息,所述至少一个组件中的每个组件是存储该组件的服务器通过对与该组件相对应的数据和函数进行封装而生成的;
创建单元,配置用于创建出主进程和至少一个子进程,其中,所述至少一个子进程用于加载和执行所述至少一个组件,所述主进程用于控制所述至少一个子进程;
加载单元,配置用于基于所述至少一个组件的组件信息,通过所述主进程控制所述至少一个子进程加载所述至少一个组件;
执行单元,配置用于通过所述至少一个子进程执行所述至少一个组件,生成信息。
11.一种电子设备,其特征在于,所述电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-9中任一所述的方法。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-9中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710320044.6A CN107145372A (zh) | 2017-05-09 | 2017-05-09 | 信息生成方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710320044.6A CN107145372A (zh) | 2017-05-09 | 2017-05-09 | 信息生成方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107145372A true CN107145372A (zh) | 2017-09-08 |
Family
ID=59776813
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710320044.6A Pending CN107145372A (zh) | 2017-05-09 | 2017-05-09 | 信息生成方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107145372A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019149150A1 (zh) * | 2018-01-30 | 2019-08-08 | 上海连尚网络科技有限公司 | 一种应用的处理方法、设备和计算存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1834918A (zh) * | 2005-11-04 | 2006-09-20 | 北京金山软件有限公司 | 一种组件间调用方法 |
CN101938579A (zh) * | 2009-06-30 | 2011-01-05 | 中兴通讯股份有限公司 | 基于多进程的座席***及座席业务的实现方法 |
CN102984500A (zh) * | 2012-10-26 | 2013-03-20 | 安科智慧城市技术(中国)有限公司 | 一种实现多种视频监控设备兼容的方法、装置和*** |
CN103677823A (zh) * | 2013-12-06 | 2014-03-26 | 北京奇虎科技有限公司 | 一种浏览器插件的管理方法和装置 |
CN104216738A (zh) * | 2014-08-20 | 2014-12-17 | 北京奇艺世纪科技有限公司 | 一种应用程序的运行方法及装置 |
CN104268019A (zh) * | 2014-09-23 | 2015-01-07 | 广州金山网络科技有限公司 | 一种软件运行方法、装置及终端 |
CN104317605A (zh) * | 2014-11-18 | 2015-01-28 | 东方网力科技股份有限公司 | 一种组件运行方法及装置 |
US20150067705A1 (en) * | 2013-08-27 | 2015-03-05 | Samsung Electronics Co., Ltd. | Process operating method and apparatus thereof |
CN105022630A (zh) * | 2015-06-30 | 2015-11-04 | 中标软件有限公司 | 一种组件管理***及组件管理方法 |
-
2017
- 2017-05-09 CN CN201710320044.6A patent/CN107145372A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1834918A (zh) * | 2005-11-04 | 2006-09-20 | 北京金山软件有限公司 | 一种组件间调用方法 |
CN101938579A (zh) * | 2009-06-30 | 2011-01-05 | 中兴通讯股份有限公司 | 基于多进程的座席***及座席业务的实现方法 |
CN102984500A (zh) * | 2012-10-26 | 2013-03-20 | 安科智慧城市技术(中国)有限公司 | 一种实现多种视频监控设备兼容的方法、装置和*** |
US20150067705A1 (en) * | 2013-08-27 | 2015-03-05 | Samsung Electronics Co., Ltd. | Process operating method and apparatus thereof |
CN103677823A (zh) * | 2013-12-06 | 2014-03-26 | 北京奇虎科技有限公司 | 一种浏览器插件的管理方法和装置 |
CN104216738A (zh) * | 2014-08-20 | 2014-12-17 | 北京奇艺世纪科技有限公司 | 一种应用程序的运行方法及装置 |
CN104268019A (zh) * | 2014-09-23 | 2015-01-07 | 广州金山网络科技有限公司 | 一种软件运行方法、装置及终端 |
CN104317605A (zh) * | 2014-11-18 | 2015-01-28 | 东方网力科技股份有限公司 | 一种组件运行方法及装置 |
CN105022630A (zh) * | 2015-06-30 | 2015-11-04 | 中标软件有限公司 | 一种组件管理***及组件管理方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019149150A1 (zh) * | 2018-01-30 | 2019-08-08 | 上海连尚网络科技有限公司 | 一种应用的处理方法、设备和计算存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107220033A (zh) | 用于控制线程池中线程数量的方法和装置 | |
CN107343045A (zh) | 云计算***及用于控制服务器的云计算方法和装置 | |
CN107463406A (zh) | 发布移动应用的方法和电子设备 | |
US8938712B2 (en) | Cross-platform virtual machine and method | |
CN112148278A (zh) | 可视化的区块链智能合约框架及智能合约开发部署方法 | |
CN112925587A (zh) | 用于初始化应用的方法和装置 | |
CN112199164A (zh) | 一种保证容器镜像一致性的方法 | |
CN112328301B (zh) | 维护运行环境一致性的方法、装置、存储介质及电子设备 | |
US10866843B2 (en) | Method and system for invoking event-based package module | |
CN112965794A (zh) | 算法调用方法、电子设备及存储介质 | |
CN109582317A (zh) | 用于调试寄宿应用的方法和装置 | |
CN112579048A (zh) | 小程序集成方法、装置、电子设备及存储介质 | |
US11256556B2 (en) | Systems and methods for generating an API caching library using a shared resource file | |
CN110018831B (zh) | 程序处理方法、装置及计算机可读存储介质 | |
CN109683992A (zh) | 用于管理对象的方法和装置 | |
CN107145372A (zh) | 信息生成方法和装置 | |
CN110309462A (zh) | 数据展示方法及*** | |
US11762677B1 (en) | High-level vectorization and scalarization of Java vector API library methods | |
CN113835748B (zh) | 基于html5的应用程序的打包方法、***和可读介质 | |
CN110262841A (zh) | 一种对字节码进行增强的方法和装置 | |
EP3872630A2 (en) | Request processing method and apparatus, electronic device, and computer storage medium | |
CN114881235A (zh) | 推理服务调用方法、装置、电子设备及存储介质 | |
CN115022312A (zh) | 多智能合约引擎的实现方法、装置、电子设备及存储介质 | |
CN114661274A (zh) | 用于生成智能合约的方法和装置 | |
CN114741294A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170908 |
|
RJ01 | Rejection of invention patent application after publication |