CN106168910A - 程序调度和执行的方法、系统以及调度器和执行器 - Google Patents
程序调度和执行的方法、系统以及调度器和执行器 Download PDFInfo
- Publication number
- CN106168910A CN106168910A CN201510784044.2A CN201510784044A CN106168910A CN 106168910 A CN106168910 A CN 106168910A CN 201510784044 A CN201510784044 A CN 201510784044A CN 106168910 A CN106168910 A CN 106168910A
- Authority
- CN
- China
- Prior art keywords
- program
- executor
- pending
- information
- data base
- 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.)
- Granted
Links
Abstract
本发明公开了程序调度和执行的方法、系统以及调度器和执行器,其中程序调度方法包括:根据多个程序间的依赖关系以及数据库中的所述多个程序的执行状态确定待执行程序;根据所述待执行程序的信息为所述待执行程序分配执行器;将所述待执行程序的信息和为所述待执行程序分配的执行器的信息相关联地写入所述数据库中,以供所述执行器访问。通过该方案,简化了对不同类型、不同操作系统平台的业务节点之间的程序依赖关系的处理。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种程序调度和执行的方法、系统以及调度器和执行器。
背景技术
在各个业务系统中,存在大量的不同类型的程序。这些程序的执行方式及执行时间各不相同,例如,程序之间存在依赖关系,一些程序的执行需要依赖其他程序的执行完成。
对此,现有的程序调度和执行方法是将有依赖关系的程序串行地写入脚本中,通过运行脚本来控制各个程序的执行。这种串行执行程序的方式会增加程序执行的整体时间窗口,不能有效地利用服务器资源。
另外,各个业务节点部署的操作系统可能是不同的,例如,操作系统可能包括Windows、Linux、Unix等。部署不同操作系统的业务节点执行的程序之间,也可能存在依赖关系。现有技术中对这种跨系统的依赖关系的处理十分复杂。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的程序调度和执行的方法、系统以及调度器和执行器。
根据本发明的一个方面的实施例,提供了一种程序调度方法,包括:根据多个程序间的依赖关系以及数据库中的所述多个程序的执行状态确定待执行程序;根据所述待执行程序的信息为所述待执行程序分配执行器;将所述待执行程序的信息和为所述待执行程序分配的执行器的信息相关联地写入所述数据库中,以供所述执行器访问。
根据本发明另一个方面的实施例,提供了一种程序执行方法,包括:访问数据库,以从所述数据库中获取分配的待执行程序的信息;根据所述待执行程序的信息,执行对应的待执行程序;将所述待执行程序的执行状态写入所述数据库中,以供调度器访问。
根据本发明另一个方面的实施例,提供了一种调度器,包括:确定模块,适于根据多个程序间的依赖关系以及数据库中的所述多个程序的执行状态确定待执行程序;分配模块,适于根据所述待执行程序的信息为所述待执行程序分配执行器;数据库管理模块,适于将所述待执行程序的信息和为所述待执行程序分配的执行器的信息相关联地写入所述数据库中,以供所述执行器访问。
根据本发明另一个方面的实施例,提供了一种执行器,包括:访问模块,适于访问数据库,以从所述数据库中获取分配的待执行程序的信息,以及将所述待执行程序的执行状态写入所述数据库中;执行模块,适于根据所述待执行程序的信息,执行对应的待执行程序。
根据本发明另一个方面的实施例,提供了一种调度系统,包括调度器、执行器、以及数据库;其中所述调度器被配置为:根据多个程序间的依赖关系以及所述多个程序的执行状态确定待执行程序,以及根据所述待执行程序的信息为所述待执行程序分配执行器;所述执行器被配置为:根据待执行程序的信息执行对应的待执行程序,以及获取所述待执行程序的执行状态;所述数据库存储所述待执行程序的信息、为所述待执行程序分配的执行器的信息、以及待执行程序的执行状态。。
根据本发明上述各实施例,调度器和执行器之间通过数据库交换程序信息,调度器将待执行程序的信息写入数据库中,执行器根据数据库中待执行程序的信息执行待执行程序,将执行状态写入数据库中,调度器根据程序间的依赖关系以及数据库中的执行状态确定之后的待执行程序。通过该方案,简化了对不同类型、不同操作系统平台的业务节点之间的程序依赖关系处理。
附图说明
本发明的其它特征、特点、优点和益处通过以下结合附图的详细描述将变得更加显而易见。
图1示出了示例性的不同业务系统上的程序相互依赖的示意图;
图2示出了本发明实施例的一种实施方式的示意图;
图3示出了本发明实施例的另一种实施方式的示意图;
图4示出了根据本发明一个实施例的程序调度方法的流程图;
图5示出了根据本发明另一个实施例的程序调度方法的流程图;
图6示出了根据本发明一个实施例的程序执行方法的流程图;
图7示出了根据本发明一个实施例的程序调度的流程图;
图8示出了本发明实施例中的一种示例性的程序依赖关系的示意图;
图9示出了根据本发明一个实施例的调度器的结构框图;
图10示出了根据本发明一个实施例的执行器的结构框图;
图11示出了根据本发明一个实施例的调度系统的结构框图;
图12示出了根据本发明一个实施例的调度器的结构示意图;
图13示出了根据本发明一个实施例的执行器的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更充分地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明中的各实施例可以适用于多个服务器构成的服务器集群。在这种情况下,下文中所述的调度器可以是该服务器集群中的一个程序调度节点,所述的执行器可以是该服务器的集群中的一个或多个程序执行节点,所述程序可以是由各个程序执行节点执行的程序。
上述的多个执行器可能被部署在不同的业务系统中,这些业务系统可能运行在不同的操作系统上,并且相互依赖。图1示出了不同业务系统之间的程序依赖关系的示意图,如图1所示,在3个示例性的业务系统110、120、130中,业务系统110上部署Windows操作系统,其上可执行exe、Java等类型的多个程序;业务系统120上部署Linux操作系统,其上可执行MR、Hive等类型的程序;业务系统130上部署Unix系统,其上可执行Python等类型的程序。图1还示出了一种示例性的依赖关系,业务系统130中的程序C1依赖于业务系统110中的程序A7和业务系统120中的程序B5。
具体地,如果第一程序的执行依赖于第二程序(例如,图1中的C1依赖于A7),则该第一程序可以称为第二程序的子程序,相应地,第二程序即是第一程序的父程序。应该理解的是,父程序和子程序是相对的,例如上述的第二程序还可能是另一程序的子程序。本发明实施例中,依赖关系即是指多个这样的第一程序和第二程序共同形成的程序以及程序之间的关联的集合。如上文所述,这样的依赖关系通常是根据具体的业务需求而预先确定的。
在本发明的实施例中,调度器通过数据库来对有依赖关系的多个程序进行调度。图2示出了本发明实施例的一种实施方式的示意图,如图2所示,系统包括服务器210、220、230以及240,其中,调度器和各个执行器可以分别被包含在在独立的服务器上。具体地,调度器可以在服务器210上实现,执行器可以分别在服务器220、230、240中实现,服务器220、230、240分别对应与图1中的3个业务系统。
图3示出了本发明实施例的另一种实施方式的示意图,如图3所示,调度器和执行器1在服务器310上实现,执行器2和执行器3分别在服务器320和服务器330上实现,数据库在服务器310的存储设备中,所述存储设备例如是服务器的磁盘。
图4示出了根据本发明一个实施例的程序调度方法的流程图。该方法可以由上述的调度器来执行。如图4所示,方法开始于步骤S410,其中,根据多个程序间的依赖关系确定待执行程序。
具体地,多个程序间的依赖关系可能取决于根据业务需求预定的程序调度计划,例如,图1中的程序C1要完成的数据计算必须等待程序A4产生的数据结果,则程序C1依赖于A4。
多个程序间的依赖关系可以保存在调度器所在节点的存储设备中,或者保存在单独的数据库服务器中,或从其他来源导入,本发明对此不做限定。
在确定待执行程序之后,方法进入步骤S420,其中,根据待执行程序的信息为待执行程序分配执行器。
具体地,该步骤包括根据待执行程序的类型信息为待执行程序分配执行器。例如,待执行程序为exe类型程序,则将其分配给部署了Windows操作系统的执行器。
当然,除此之外,调度器还可以根据用户指定的分配规则来进行分配,例如,用户对程序调度进行配置时就指定了该程序由哪个执行器执行,则调度器直接将该程序分配给指定的执行器。或者,调度器根据执行器的资源使用、空闲情况、健康状态等进行分配。
之后,方法进入步骤S430,其中,将待执行程序的信息和为待执行程序分配的执行器的信息相关联地写入数据库中。
本发明实施例中,待执行程序的信息可以包括程序名称、程序的ID,程序路径等;执行器的信息包括:执行器所在的主机名、IP、执行器的标识等。执行器从数据库中读取上述执行程序的信息时,能够确定是否需要由其执行的程序。
其中,数据库可以是任何类型的数据库,例如关系型数据库或非关系型数据库,磁盘数据库或内存数据库等,本发明在此方面不受限制。
根据本发明上述实施例提供的方法,调度器通过数据库来实现对由依赖关系的多个程序的调度。由此,对部署在不同业务平台或操作系统的执行器而言,不需要进行复杂的跨平台调度方案。同时,与传统的串行脚本调度方式相比,依赖于同一程序的多个程序可以在多个执行器中并行执行,更加高效。
图5示出了根据本发明另一个实施例的程序调度方法的流程图,该方法可以由上述的调度器来执行。如图5所示,方法包括如下步骤:
步骤S510,对数据库中的多个程序的执行状态和依赖关系进行监控。
在本发明实施例的一种实施方式中,上述的多个程序间的依赖关系也保存在数据库中。
具体地,可以通过调度器将依赖关系保存在数据库中。例如,提供到调度器的用户交互接口,以供用户,例如管理员,经由该交互接口,通过调度器对数据库中的依赖关系进行操作,操作可以包括添加、删除、修改等。此外,用户还可以通过交互接口和调度器修改其他配置信息,例如,为某个程序指定执行器、手动触发程序执行等。
此外,数据库中还可以保存有多个执行器的状态信息。具体地,执行器的状态信息可以包括以下中的一个或多个:执行器所在主机的主机名/IP地址、执行器可执行的程序类型、执行器上部署的操作系统类型、执行器的可执行的最大程序数量、以及执行器的资源和健康状态等。上述状态信息可供调度器读取,以在本发明实施例方法的后续步骤用于待执行程序的分配。
除了上述的多个程序的执行状态之外,数据库中还可以保存多个程序的其他信息,例如,程序名称、创建时间、程序路径以及程序执行日志等中的一个或多个,以供用户通过交互接口查看。
步骤S520,在监控到有程序执行完成时,根据依赖关系获取该执行完成的程序的子程序的信息。
在本发明实施例中,结合程序依赖关系以及程序的执行状态来确定待执行的子程序。程序的执行状态例如包括:待执行、执行中、执行完成、执行失败等。在程序依赖关系中,如果第一程序的执行依赖于第二程序的执行状态(例如,执行完成或执行失败)则该第一程序可以称为第二程序的子程序,相应地,第二程序即是第一程序的父程序。应该理解的是,单个的父程序可能具有多个子程序,单个的子程序也可能具有多个父程序。
步骤S510和S520的一种具体实现方式是,调度器在启动时,从数据库中读取其中保存的依赖关系以及多个程序的执行状态并且将依赖关系和执行状态维护至自身的内存中。上述的依赖关系和执行状态通常是随时间变化的,之后,调度器实时地监控数据库中的依赖关系以及多个程序的执行状态,并更新内存中的信息,并根据更新后的依赖关系和执行状态确定待执行程序。
步骤S530,判断子程序的所有父程序是否执行完成,若所有父程序执行完成,执行步骤S540,否则重复步骤S530。
当子程序依赖于多个父程序时,只有在多个父程序都执行完成后,才允许该子程序的执行。
步骤S540,将该子程序确定为待执行程序。
步骤S550,根据待执行程序的类型为待执行程序分配执行器。
作为示例,将exe类型的待执行程序分配给部署Windows系统的执行器,将python、shell等脚本程序分配给对应于Linux系统的执行器。
步骤S560,将待执行程序的信息和为待执行程序分配的执行器的信息相关联地写入数据库中。
此外,在本发明的一些其他实施例中,调度器可以是多个,包括主调度器和备调度器,正常情况下由主调度器进行程序调度,当主调度器发生异常时,由备调度器接替主调度器。
此外,在本发明的一些其他实施例中,调度器还可以使用告警机制,在程序执行超时、执行器异常时发出告警,例如,向管理员发送告警邮件、短信等。
图6示出了根据本发明另一个实施例的程序执行方法的流程图,该方法可以由图2所示的执行器来执行。如图6所示,方法包括如下步骤:
步骤S610,访问数据库,以从数据库中获取分配的待执行程序的信息。
在执行器启动时,从数据库中获取对应的待执行程序的信息,例如,待执行程序的列表,将该程序列表维护在自身内存中。之后,执行器实时监控数据库,根据数据库中待执行程序的更新来调整内存中维护的程序列表。
步骤S620,根据待执行程序的信息,执行对应的待执行程序。
例如,待执行程序的信息是程序名称、路径等。
步骤S630,将待执行程序的执行状态写入数据库中,以供调度器访问。
本发明实施例中的执行状态包括:执行完成、执行失败等
进一步地,执行器还可以向数据库中写入执行器的类型信息和状态信息等。具体地,包括以下中的一个或多个:执行器所在主机的主机名/IP地址、执行器可执行的程序类型、执行器上部署的操作系统类型、执行器的可执行的最大程序数量、以及执行器的资源和健康状态等,以供调度器根据资源情况进行程序的分配。此外,执行器还可以向数据库中写入程序执行日志等内容。
进一步地,执行器还可以包括重试机制,在程序执行失败时进行重试,避免因短暂异常引起的调度失败。
图7示出了根据本发明另一个实施例的程序调度方法的流程图,该方法涉及上述的调度器和执行器。
下面针对图8中示出的示例性的程序依赖关系对图7所示的实施例进行说明。在图8中,将程序A1、A2、A3、A4之间的依赖关系示出为一个带箭头的图,其中,节点表示程序,例如,A1是shell类型的程序,A2是Java类型的程序,A3是exe类型的程序,A4是perl程序;节点之间的箭头表示两个程序之间存在依赖,对图中的每个箭头而言,其所指向的程序是该箭头的起点处的程序的子程序。
本发明实施例中,还包括定时触发或手工触发的程序调度。调度器可以通过Task Scheduler、Crontab等工具实现程序的定时触发。与上文实施例类似地,调度器为定时或手工触发的程序分配执行器并且写入数据库中。
假设在图8中,A1是定时触发程序,并且在当前时间已经被执行器执行,其余程序都是依赖触发程序,则在图7对应的实施例中,调度器和执行器重复执行以下步骤:
步骤S710,执行器将执行状态写入数据库。
执行器执行程序A1后,将执行完成的状态写入数据库中。
步骤S720,调度器从数据库中获取程序的状态。
调度器获取程序A1的执行状态。
步骤S730,调度器根据依赖关系和执行状态确定待执行程序。
程序A2和程序A3的父程序A1已执行完成,因此,将程序A2和程序A3确定为待执行程序。
步骤S740,调度器为待执行程序分配执行器。
作为示例,根据程序类型,将程序A2分配给对应Linux系统的执行器,将程序A3分配给对应于Windows系统的执行器。
步骤S750,调度器将待执行程序的信息和分配的执行器的信息写入数据库。
步骤S760,执行器从数据库中获取分配的待执行程序的信息。
步骤S770,执行器执行待执行程序。
之后,方法回到步骤S710,执行器将程序A2和A3的执行状态写入数据库中。
方法继续进行到步骤S720,调度器获取程序A2和A3的状态。
作为示例,以下针对两种可能的情况进行描述。其中,在第一种情况中,A2和A3都执行完成;在第二种情况中,A2执行完成,A3未执行完成。
方法继续进行到步骤S730,其中,获取A2或A3的子程序A4,判断A4的所有父程序是否执行完成,对上述第一种情况,A4的父程序都执行完成,则将A4确定为待执行的程序;对上述第二种情况,A4的父程序A3未执行完成,调度器周期性地监控数据库,直到A3执行完成,将A4确定为待执行程序。
步骤S740-S770的具体实施过程与上文类似,此处不再赘述。
图9示出了根据本发明一个实施例的调度器的结构框图,如图9所示,调度器900包括:确定模块910,分配模块920以及数据库管理模块930。其中,确定模块910适于根据多个程序间的依赖关系以及数据库中的多个程序的执行状态确定待执行程序。分配模块920适于根据待执行程序的信息为待执行程序分配执行器。数据库管理模块930适于将待执行程序的信息和为待执行程序分配的执行器的信息相关联地写入数据库中。
在本发明实施例的一种具体实施方式中,数据库管理模块930还适于:将多个程序间的依赖关系保存在自身存储设备或数据库中。
在本发明实施例的一种具体实施方式中,确定模块910进一步适于:对数据库中的多个程序的执行状态进行监控;在监控到有程序执行完成时,根据依赖关系获取该执行完成的程序的子程序;判断子程序的所有父程序是否执行完成;若该子程序的所有父程序都执行完成,则将该子程序确定为待执行程序。
在本发明实施例的一种具体实施方式中,分配模块920进一步适于根据待执行程序的类型和/或执行器的状态信息为待执行程序分配执行器。
在本发明实施例的一种具体实施方式中,确定模块910还适于:根据多个程序的定时触发和/或用户操作触发来确定待执行程序。
图10示出了根据本发明一个实施例的执行器的结构框图,如图10所示,执行器100包括:访问模块1010以及执行模块1020。其中,访问模块1010适于访问数据库,以从数据库中获取分配的待执行程序的信息,以及将待执行程序的执行状态写入数据库中;执行模块1020适于根据待执行程序的信息,执行对应的待执行程序。
在本发明实施例的一种具体实施方式中,访问模块1010还适于向数据库中写入执行器的类型信息和状态信息。
图11示出了根据本发明一个实施例的调度系统的结构框图,如图11所示,调度系统1100包括上述的调度器900和执行器1000,以及数据库1101。
其中,调度器900被配置为:根据多个程序间的依赖关系以及多个程序的执行状态确定待执行程序,以及根据待执行程序的信息为所述待执行程序分配执行器;执行器1000被配置为:根据待执行程序的信息执行对应的待执行程序,以及获取待执行程序的执行状态;数据库1101存储待执行程序的信息、为待执行程序分配的执行器的信息、以及待执行程序的执行状态。
在本发明实施例的一种具体实施方式中,调度器900进一步被配置为:根据待执行程序的类型和/或执行器的状态信息为待执行程序分配执行器。
在本发明实施例的一种具体实施方式中,数据库1101还存储多个程序之间的依赖关系。
在本发明实施例的一种具体实施方式中,调度器900进一步被配置为:对多个程序的执行状态进行监控;在监控到有程序执行完成时,根据依赖关系获取该执行完成的程序的子程序,判断该子程序的所有父程序是否执行完成;若该子程序的所有父程序都执行完成,则将该子程序确定为待执行程序。
在本发明实施例的一种具体实施方式中,调度器900进一步被配置为:根据多个程序的定时触发和/或用户操作触发来确定待执行程序。
在本发明实施例的一种具体实施方式中,执行器1000进一步被配置为:获取自身的类型信息和状态信息,则数据库1101还存储有执行器1000的类型信息和状态信息。
图12示出了根据本发明一个实施例的调度器的结构示意图,如图12所示,调度器1200包括:
存储器1210,用于存储可执行程序指令;通信接口1220,用于与数据库进行通信;以及处理器1230,与存储器1210和通信接口1220相连的,处理器1230执行存储器1210中的可执行程序指令,使得所述调度器1200执行前述调度器900的各个模块所执行的操作。
图13示出了根据本发明一个实施例的执行器的结构示意图,如图13所示,执行器1300包括:
存储器1310,用于存储可执行程序指令;通信接口1320,用于与数据库进行通信;以及处理器1330,与存储器1310和通信接口1320相连,处理器1330执行存储器1310中的可执行程序指令,使得执行器执行前述执行器1000的各个模块所执行的操作。
本领域技术人员应当理解,上面公开的各个实施例可以在不偏离发明实质的情况下做出各种变形和修改。因此,本发明的保护范围应当由所附的权利要求书来限定。
Claims (18)
1.一种程序调度方法,包括:
根据多个程序间的依赖关系以及数据库中的所述多个程序的执行状态确定待执行程序;
根据所述待执行程序的信息为所述待执行程序分配执行器;
将所述待执行程序的信息和为所述待执行程序分配的执行器的信息相关联地写入所述数据库中,以供所述执行器访问。
2.根据权利要求1所述的方法,其中,所述方法还包括:将所述多个程序间的依赖关系保存在自身存储设备或所述数据库中。
3.根据权利要求1或2所述的方法,其中,根据多个程序间的依赖关系确定待执行程序包括:
对所述数据库中的所述多个程序的执行状态进行监控;
在监控到有程序执行完成时,根据所述多个程序间的依赖关系获取该执行完成的程序的子程序;
判断所述子程序的所有父程序是否执行完成;若所述子程序的所有父程序都执行完成,则将所述子程序确定为所述待执行程序。
4.根据权利要求1所述的方法,其中,所述根据所述待执行程序的信息为所述待执行程序分配执行器进一步包括:根据所述待执行程序的类型和/或执行器的状态信息为所述待执行程序分配执行器。
5.根据权利要求1所述的方法,其中,所述方法还包括:根据所述多个程序的定时触发和/或用户操作触发来确定所述待执行程序。
6.一种程序执行方法,包括:
访问数据库,以从所述数据库中获取分配的待执行程序的信息;
根据所述待执行程序的信息,执行对应的待执行程序;
将所述待执行程序的执行状态写入所述数据库中,以供调度器访问。
7.根据权利要求6所述的方法,其中,还包括:向所述数据库中写入所述执行器的类型信息和状态信息。
8.一种调度器,包括:
确定模块,适于根据多个程序间的依赖关系以及数据库中的所述多个程序的执行状态确定待执行程序;
分配模块,适于根据所述待执行程序的信息为所述待执行程序分配执行器;
数据库管理模块,适于将所述待执行程序的信息和为所述待执行程序分配的执行器的信息相关联地写入所述数据库中,以供所述执行器访问。
9.根据权利要求8所述的调度器,其中,所述数据库管理模块还适于:将所述多个程序间的依赖关系保存在自身存储设备或所述数据库中。
10.根据权利要求8或9所述的调度器,其中,所述确定模块进一步适于:
对所述数据库中的所述多个程序的执行状态进行监控;
在监控到有程序执行完成时,根据所述依赖关系获取该执行完成的程序的子程序;
判断所述子程序的所有父程序是否执行完成;
若所述子程序的所有父程序都执行完成,则将所述子程序确定为所述待执行程序。
11.根据权利要求8所述的调度器,其中,所述分配模块进一步适于根据所述待执行程序的类型和/或执行器的状态信息为所述待执行程序分配执行器。
12.根据权利要求8所述的调度器,其中,所述确定模块还适于:根据所述多个程序的定时触发和/或用户操作触发来确定待执行程序。
13.一种执行器,包括:
访问模块,适于访问数据库,以从所述数据库中获取分配的待执行程序的信息,以及将所述待执行程序的执行状态写入所述数据库中;
执行模块,适于根据所述待执行程序的信息,执行对应的待执行程序。
14.根据权利要求13所述的执行器,其中,所述访问模块还适于:向所述数据库中写入所述执行器的类型信息和状态信息。
15.一种调度系统,包括:调度器、执行器、以及数据库;
所述调度器被配置为:根据多个程序间的依赖关系以及所述多个程序的执行状态确定待执行程序,以及根据所述待执行程序的信息为所述待执行程序分配执行器;
所述执行器被配置为:根据待执行程序的信息执行对应的待执行程序,以及获取所述待执行程序的执行状态;
所述数据库存储所述待执行程序的信息、为所述待执行程序分配的执行器的信息、以及待执行程序的执行状态。
16.根据权利要求15所述的调度系统,其中,所述调度器进一步被配置为:根据所述待执行程序的类型和/或执行器的状态信息为所述待执行程序分配执行器。
17.根据权利要求15所述的调度系统,其中,所述数据库还存储所述多个程序之间的依赖关系。
18.根据权利要求15所述的调度系统,其中,所述调度器进一步被配置为:
对多个程序的执行状态进行监控;
在监控到有程序执行完成时,根据所述依赖关系获取该执行完成的程序的子程序;
判断该子程序的所有父程序是否执行完成;
若该子程序的所有父程序都执行完成,则将该子程序确定为待执行程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510784044.2A CN106168910B (zh) | 2015-11-16 | 2015-11-16 | 程序调度和执行的方法、系统以及调度器和执行器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510784044.2A CN106168910B (zh) | 2015-11-16 | 2015-11-16 | 程序调度和执行的方法、系统以及调度器和执行器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106168910A true CN106168910A (zh) | 2016-11-30 |
CN106168910B CN106168910B (zh) | 2019-11-08 |
Family
ID=57359278
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510784044.2A Active CN106168910B (zh) | 2015-11-16 | 2015-11-16 | 程序调度和执行的方法、系统以及调度器和执行器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106168910B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108510081A (zh) * | 2018-03-23 | 2018-09-07 | 北京京东尚科信息技术有限公司 | 机器学习方法和平台 |
CN108694046A (zh) * | 2017-03-03 | 2018-10-23 | 中国移动通信集团山西有限公司 | 容器装配方法和装置 |
CN108763482A (zh) * | 2018-05-25 | 2018-11-06 | 联想(北京)有限公司 | 用于数据分析流程调度的方法、装置和服务器集群 |
WO2019102287A1 (en) * | 2017-11-21 | 2019-05-31 | International Business Machines Corporation | Prioritizing applications for diagonal scaling in a distributed computing environment |
US10635501B2 (en) | 2017-11-21 | 2020-04-28 | International Business Machines Corporation | Adaptive scaling of workloads in a distributed computing environment |
US10721179B2 (en) | 2017-11-21 | 2020-07-21 | International Business Machines Corporation | Adaptive resource allocation operations based on historical data in a distributed computing environment |
US10812407B2 (en) | 2017-11-21 | 2020-10-20 | International Business Machines Corporation | Automatic diagonal scaling of workloads in a distributed computing environment |
US10887250B2 (en) | 2017-11-21 | 2021-01-05 | International Business Machines Corporation | Reducing resource allocations and application instances in diagonal scaling in a distributed computing environment |
CN112214263A (zh) * | 2019-07-12 | 2021-01-12 | 中国电信股份有限公司 | 数据库脚本的调度方法和装置以及存储介质 |
US10893000B2 (en) | 2017-11-21 | 2021-01-12 | International Business Machines Corporation | Diagonal scaling of resource allocations and application instances in a distributed computing environment |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102279888A (zh) * | 2011-08-24 | 2011-12-14 | 北京新媒传信科技有限公司 | 一种任务调度方法和系统 |
CN102387208A (zh) * | 2011-10-21 | 2012-03-21 | 百度在线网络技术(北京)有限公司 | 分布式任务调度方法及任务调度系统 |
CN103377075A (zh) * | 2012-04-28 | 2013-10-30 | 腾讯科技(深圳)有限公司 | 管理任务的方法、装置及系统 |
CN103677973A (zh) * | 2013-09-01 | 2014-03-26 | 西安重装渭南光电科技有限公司 | 一种分布式多任务调度管理系统 |
US20140344042A1 (en) * | 2004-05-26 | 2014-11-20 | Hothand, Inc. | Mobile commerce framework |
-
2015
- 2015-11-16 CN CN201510784044.2A patent/CN106168910B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140344042A1 (en) * | 2004-05-26 | 2014-11-20 | Hothand, Inc. | Mobile commerce framework |
CN102279888A (zh) * | 2011-08-24 | 2011-12-14 | 北京新媒传信科技有限公司 | 一种任务调度方法和系统 |
CN102387208A (zh) * | 2011-10-21 | 2012-03-21 | 百度在线网络技术(北京)有限公司 | 分布式任务调度方法及任务调度系统 |
CN103377075A (zh) * | 2012-04-28 | 2013-10-30 | 腾讯科技(深圳)有限公司 | 管理任务的方法、装置及系统 |
CN103677973A (zh) * | 2013-09-01 | 2014-03-26 | 西安重装渭南光电科技有限公司 | 一种分布式多任务调度管理系统 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108694046A (zh) * | 2017-03-03 | 2018-10-23 | 中国移动通信集团山西有限公司 | 容器装配方法和装置 |
US10733015B2 (en) | 2017-11-21 | 2020-08-04 | International Business Machines Corporation | Prioritizing applications for diagonal scaling in a distributed computing environment |
WO2019102287A1 (en) * | 2017-11-21 | 2019-05-31 | International Business Machines Corporation | Prioritizing applications for diagonal scaling in a distributed computing environment |
US10635501B2 (en) | 2017-11-21 | 2020-04-28 | International Business Machines Corporation | Adaptive scaling of workloads in a distributed computing environment |
US10721179B2 (en) | 2017-11-21 | 2020-07-21 | International Business Machines Corporation | Adaptive resource allocation operations based on historical data in a distributed computing environment |
GB2581754A (en) * | 2017-11-21 | 2020-08-26 | Ibm | Prioritizing applications for diagonal scaling in a distributed computing environment |
US10812407B2 (en) | 2017-11-21 | 2020-10-20 | International Business Machines Corporation | Automatic diagonal scaling of workloads in a distributed computing environment |
US10887250B2 (en) | 2017-11-21 | 2021-01-05 | International Business Machines Corporation | Reducing resource allocations and application instances in diagonal scaling in a distributed computing environment |
US10893000B2 (en) | 2017-11-21 | 2021-01-12 | International Business Machines Corporation | Diagonal scaling of resource allocations and application instances in a distributed computing environment |
CN108510081A (zh) * | 2018-03-23 | 2018-09-07 | 北京京东尚科信息技术有限公司 | 机器学习方法和平台 |
CN108763482A (zh) * | 2018-05-25 | 2018-11-06 | 联想(北京)有限公司 | 用于数据分析流程调度的方法、装置和服务器集群 |
CN108763482B (zh) * | 2018-05-25 | 2022-05-31 | 联想(北京)有限公司 | 用于数据分析流程调度的方法、装置和服务器集群 |
CN112214263A (zh) * | 2019-07-12 | 2021-01-12 | 中国电信股份有限公司 | 数据库脚本的调度方法和装置以及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN106168910B (zh) | 2019-11-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106168910A (zh) | 程序调度和执行的方法、系统以及调度器和执行器 | |
US9207929B2 (en) | Integrated system and firmware update method | |
US10956143B2 (en) | Server updates | |
US20190052528A1 (en) | Network function virtualization management orchestration apparatus, method | |
US9383992B2 (en) | Enterprise wide software version recommendation | |
US20050091352A1 (en) | Policy driven autonomic computing-specifying relationships | |
US10310900B2 (en) | Operating programs on a computer cluster | |
US8381222B2 (en) | Policy driven automation—specifying equivalent resources | |
JP2011518278A5 (zh) | ||
CN108667639B (zh) | 一种私有云环境下的资源管理方法及管理服务器 | |
CN104461594B (zh) | 嵌入式操作系统的升级方法及装置 | |
Hinchey et al. | Evolving critical systems: A research agenda for computer-based systems | |
CN109558260B (zh) | Kubernetes故障排除系统、方法、设备及介质 | |
US11561782B2 (en) | Upgrade recommendations | |
CN109240716B (zh) | 一种大数据平台版本管理与快速迭代部署方法及系统 | |
CN109308227A (zh) | 故障检测控制方法及相关设备 | |
US10601955B2 (en) | Distributed and redundant firmware evaluation | |
JP5998577B2 (ja) | クラスタ監視装置、クラスタ監視方法、及びプログラム | |
US9838465B2 (en) | Network system, distribution system, control method, and storage medium | |
CN110989923A (zh) | 一种分布式存储系统的部署方法及装置 | |
US8583789B2 (en) | Computer system management method and management apparatus | |
CN109660392B (zh) | 一种Linux系统下硬件统一化自适应管理部署方法及系统 | |
CN109558167A (zh) | 管理电气切换设备的电子计算机的嵌入式软件模块的方法 | |
CN112256384A (zh) | 基于容器技术的服务集合处理方法、装置和计算机设备 | |
JP4034201B2 (ja) | 計算機資源利用方式及び計算機資源利用方法 |
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 |