多任务队列管理方法、设备及系统的制作方法

文档序号:10534616阅读:453来源:国知局
多任务队列管理方法、设备及系统的制作方法
【专利摘要】本发明涉及软件技术领域,公开了一种多任务队列管理方法、多任务队列管理设备及多任务队列管理系统,其可适用于多任务管理,使得该多任务的执行非常有效率以及实现资源利用最大化。所述多任务队列管理方法包括:接收一个或多个任务,该一个或多个任务中的每一者与至少两个测试主体中的一者有关;将所述一个或多个任务存储于一队列;以及根据编译服务器集群内各个编译服务器的负荷情况,将所述队列内的任务分配至相应的编译服务器,以由该编译服务器执行相应任务。
【专利说明】
多任务队列管理方法、设备及系统
技术领域
[0001]本发明涉及软件技术领域,具体地,涉及一种多任务队列管理方法、多任务队列管理设备及多任务队列管理系统。
【背景技术】
[0002]持续集成是一种软件开发实践,即团队开发成员经常对它们的工作进行集成,每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译、发布、自动化测试)来验证,从而尽早地发现集成错误。
[0003]图1为现有的持续集成系统的结构示意图。如图1所示,持续集成服务器集群100包含TV专用持续集成服务器10、手机专用持续集成服务器20、平板专用持续集成服务器30、汽车专用持续集成服务器40等等,这些持续集成服务器均是专用于TV、手机、平板以及汽车的,且各自对应于编译服务器集群内的相应编译服务器,例如TV专用持续集成服务器10对应于编译服务器1a及10b,手机专用持续集成服务器20对应于编译服务器20a及20b,平板专用持续集成服务器30对应于编译服务器30a及30b,汽车专用持续集成服务器40对应于编译服务器40a及40b。每一持续集成服务器既能够向该持续集成服务器所对应的编译服务器发送任务以由该编译服务器执行该任务,其并不能够将任务发送至其他持续集成服务器所对应的编译服务器。例如,TV持续集成服务器仅能够通过固定ip地址将任务发送至编译服务器集群内的编译服务器1a或10b。
[0004]在现有的持续集成系统中,由于各持续集成服务器及其所对应的编译服务器均是专用的,即针对汽车的持续集成服务器及其所对应的编译服务器仅能够用于汽车的相关任务、针对TV的持续集成服务器及其所对应的编译服务器仅能够用于TV的相关任务,这样当汽车相关任务较多而TV相关任务较少的情况下,将会出现汽车持续集成服务器所对应的编译服务器非常繁忙而TV持续集成服务器所对应的编译服务器非常空闲,这样的任务管理方式不利于多任务执行以及资源有效利用。

【发明内容】

[0005]本发明的目的是提供一种多任务队列管理方法、多任务队列管理设备及多任务队列管理系统,其可适用于多任务管理,使得该多任务的执行非常有效率以及实现资源利用最大化。
[0006]为了实现上述目的,本发明提供一种多任务队列管理方法,该方法包括:接收一个或多个任务,该一个或多个任务中的每一者与至少两个测试主体中的一者有关;将所述一个或多个任务存储于一队列;以及根据编译服务器集群内各个编译服务器的负荷情况,将所述队列内的任务分配至相应的编译服务器,以由该编译服务器执行相应任务。
[0007]其中,所述至少两个测试主体可包含以下至少两者:电视机、手机、平板电脑、笔记本电脑、台式电脑以及汽车。
[0008]其中,所述一个或多个任务可包含以下至少一者:取代码、编译、打包、签名、单元测试、安装测试、以及冒烟测试。
[0009]优选地,所述多任务队列管理方法还可包括:接收所述各个编译服务器当前执行的任务的资源配置信息;以及在所述编译服务器集群内两编译服务器的负荷情况相同的情况下,优先将所述队列内的任务分配至该两编译服务器内当前执行的任务的资源配置信息与所述队列内该任务的资源配置信息相同的编译服务器。
[0010]其中,所述编译服务器可用于执行以下操作:接收所述任务;确定该任务所需的资源配置信息;以及根据该资源配置信息配置相应的资源,并执行所述任务。
[0011]其中,所述编译服务器可根据以下方式确定所述任务所需的资源配置信息:从所述任务内提取该任务的资源配置信息;或者提取所述任务的属性,并根据该属性查找属性与资源配置对应表确定该任务所需的资源配置信息。
[0012]相应地,本发明还提供一种多任务队列管理设备,该设备包括:接收装置,用于接收一个或多个任务,该一个或多个任务中的每一者与至少两个测试主体中的一者有关;处理装置,用于执行以下操作:将所述一个或多个任务存储于一队列;以及根据编译服务器集群内各个编译服务器的负荷情况,将所述队列内的任务分配至相应的编译服务器,以由该编译服务器执行相应任务。
[0013]其中,所述至少两个测试主体可包含以下至少两者:电视机、手机、平板电脑、笔记本电脑、台式电脑以及汽车。
[0014]其中,所述一个或多个任务可包含以下至少一者:取代码、编译、打包、签名、单元测试、安装测试、以及冒烟测试。
[0015]优选地,所述接收装置还用于接收所述各个编译服务器当前执行的任务的资源配置信息;以及所述处理装置还用于在所述编译服务器集群内两编译服务器的负荷情况相同的情况下,优先将所述队列内的任务分配至该两编译服务器内当前执行的任务的资源配置信息与所述队列内该任务的资源配置信息相同的编译服务器。
[0016]相应地,本发明还提供一种多任务队列管理系统,该系统包括:持续集成服务器集群,包含至少两个测试主题专用持续集成服务器;上述多任务队列管理设备;以及编译服务器集群,包含至少两个编译服务器。
[0017]其中,所述持续集成服务器集群内的至少两个测试主题专用持续集成服务器中的每一者在所述编译服务器集群内具有与该测试主题专用持续集成服务器相对应的至少一个编译服务器,且该至少一个编译服务器能够执行来自与其相对应的主题专用持续集成服务器之外的其他测试主题专用持续集成服务器的任务。
[0018]其中,所述编译服务器可用于执行以下操作:接收所述任务;确定该任务所需的资源配置信息;以及根据该资源配置信息配置相应的资源,并执行所述任务。
[0019]其中,所述编译服务器可根据以下方式确定所述任务所需的资源配置信息:从所述任务内提取该任务的资源配置信息;或者提取所述任务的属性,并根据该属性查找属性与资源配置对应表确定该任务所需的资源配置信息。
[0020]通过上述技术方案,可使得持续集成服务器所对应的编译服务器不仅仅执行该持续集成服务器所发送的任务,亦可执行来自其他持续集成服务器所发送的任务,例如之前对应于汽车持续集成服务器的编译服务器还可执行来自手机持续集成服务器的任务。这样可根据编译服务器集群内各个编译服务器的负荷情况,有效分配任务至各个编译服务器,不会出现在例如有关汽车的持续集成任务较多而针对手机的持续集成任务较少的情况下一编译服务器负荷过量(可能会导致有些任务长时间得不到执行)而另一编译服务器闲置的情形,使得系统负荷可均衡分布于各编译服务器上,保证资源的充分利用以及任务的快速执行。
[0021]本发明的其它特征和优点将在随后的【具体实施方式】部分予以详细说明。
【附图说明】
[0022]附图是用来提供对本发明的进一步理解,并且构成说明书的一部分,与下面的【具体实施方式】一起用于解释本发明,但并不构成对本发明的限制。在附图中:
[0023]图1为现有的持续集成系统的结构示意图;
[0024]图2为本发明提供的多任务队列管理系统的结构示意图;以及
[0025]图3为本发明提供的多任务队列管理方法的流程图。
[0026]附图标记说明
[0027]10 TV专用持续集成服务器20手机专用持续集成服务器
[0028]30平板专用持续集成服务器40汽车专用持续集成服务器
[0029]100持续集成服务器集群200编译服务器集群
[0030]I Oa、I Ob、20a、20b、30a、30b、40a、40b 编译服务器
[0031]300接收装置400处理装置
[0032]A 队列
【具体实施方式】
[0033]以下结合附图对本发明的【具体实施方式】进行详细说明。应当理解的是,此处所描述的【具体实施方式】仅用于说明和解释本发明,并不用于限制本发明。
[0034]图2为本发明提供的多任务队列管理系统的结构示意图。如图2所示,本发明提供了一种多任务队列管理系统,该系统包括:持续集成服务器集群100,包含至少两个测试主题专用持续集成服务器;多任务队列管理设备;以及编译服务器集群200,包含至少两个编译服务器。
[0035]图2所示的持续集成服务器集群100包含TV专用持续集成服务器10、手机专用持续集成服务器20、平板专用持续集成服务器30、汽车专用持续集成服务器40,但只是示例性的,本发明并不限于此,还可根据实际需要而包含其他持续集成服务器,例如针对笔记本电脑、台式电脑等的持续集成服务器。图2所示的编译服务器集群200包含编译服务器10a、10b、20a、20b、30a、30b、40a、40b,但这仅仅是示例性的,本发明并不限于此,任意数量的编译服务器均可适用于此。
[0036]其中,所述持续集成服务器集群内的至少两个测试主题专用持续集成服务器中的每一者在所述编译服务器集群内具有与该测试主题专用持续集成服务器相对应的至少一个编译服务器,且该至少一个编译服务器能够执行来自与其相对应的主题专用持续集成服务器之外的其他测试主题专用持续集成服务器的任务。也就是说,如图2所示,编译服务器I Oa、I Ob、20a、20b、30a、30b、40a、40b中的任一者可接收并执行来自TV专用持续集成服务器10、手机专用持续集成服务器20、平板专用持续集成服务器30、汽车专用持续集成服务器40中任一者的任务,而并非如现有技术那般一编译服务器仅可接收并执行来自对应持续集成服务器的任务。
[0037]之前对应于TV专用持续集成服务器10的编译服务器1a及1b在接收到来自手机持续集成服务器20的有关手机的任务的情况下,由于其之前的配置环境完全是针对TV的,因此其需要改变其配置环境以适用于执行有关手机的任务。具体可通过以下两种方式来改变配置环境:
[0038]I)来自手机持续集成服务器20的任务含该任务执行所需的资源配置信息,此时编译服务器1a及1b接收到所述任务之后,可直接从该任务内提取所述资源配置信息(诸如、手机的型号、屏幕尺寸等等),并根据该资源配置信息配置相应的资源。在资源配置完成之后,则执行所述任务。
[0039]2)编译服务器1a及1b可在接收到有关来自手机持续集成服务器20的任务之后,提取该任务的属性(该属性与该任务执行所需的资源配置有关)。之后,根据该属性查找资源配置对应表以确定所述任务所需的资源配置信息。之后,根据该资源配置信息配置相应的资源。在资源配置完成之后,则执行所述任务。其中所述资源配置对应表内可存储由有关任务的各项属性与资源配置信息之间对应关系,例如,有关汽车的任务需要哪些资源配置,有关TV的任务需要哪些资源配置。
[0040]以上对持续集成服务器集群及编译服务器集群的结构及工作模式进行了介绍,下面介绍用于协调来自持续集成服务器集群内的持续集成服务器的任务至编译服务器集群内各编译服务器的分配的多任务队列管理设备。
[0041 ]所述多任务队列管理设备包括:接收装置300,用于接收来自所述TV专用持续集成服务器10、手机专用持续集成服务器20、平板专用持续集成服务器30、汽车专用持续集成服务器40的任务以及所述编译服务器10a、10b、20a、20b、30a、30b、40a、40b各自的负荷情况;处理装置400,用于执行以下操作:将所述来自所述TV专用持续集成服务器10、手机专用持续集成服务器20、平板专用持续集成服务器30、汽车专用持续集成服务器40的任务的任务存储于一队列A,并根据编译服务器集群内各个编译服务器10a、10b、20a、20b、30a、30b、40a、40b的负荷情况,将所述队列A内的任务分配至相应的编译服务器,以由该编译服务器执行相应任务。
[0042 ]所述处理装置400对各类任务的分配可考虑以下因素:
[0043]1)尽可能确保编译服务器10&、1013、20&、2013、30&、3013、40&、4013之间的负荷均衡,不会出现一编译服务器存在许多任务需要执行,而另一编译服务器空闲;以及
[0044]2)如若一编译服务器当前正在执行有关汽车的任务,而处理装置400向其分配的下一任务为有关手机的任务,则该编译服务器在执行完有关汽车的任务之后需要对其资源配置进行调整以满足执行有关手机的任务的资源配置需求。因此,在编译服务器集群200内两编译服务器的负荷情况大致相同的情况下,处理装置400优先将任务分配至所述两编译服务器之中正执行与该任务需要大致相同的资源配置的任务的编译服务器,藉此可避免编译服务器在执行所述任务时重新进行资源配置,提高任务执行效率。
[0045]在具体实施过程中,所述接收装置可用于接收编译服务器集群200内各个编译服务器10a、10b、20a、20b、30a、30b、40a、40b的负荷情况以及当前执行的任务的资源配置信息,所述处理装置400在针对队列A的一当前需要分配出去的任务判断将其分配至哪一编译服务器时,可首先判断各编译服务器各自的负荷情况,若有存在空闲编译服务器,则直接将该任务分配至该空闲编译服务器;若无存在空闲编译服务器,则寻找负荷最小的编译服务器,并将该任务分配至该负荷最小的编译服务器;若不存在负荷最小的编译服务器,而是存在两个或多个负荷相当的编译服务器,则处理装置400根据该两个或多个负荷相当的编译服务器当前所执行的任务的资源配置信息,挑选出当前所执行的任务的配置信息与本次待分配任务的资源配置信息大致相同的编译服务器,并将所述任务分配至该编译服务器。当然,上述任务分配策略只是示例性的,对于在分配任务时所考虑的两个因素各自所占的权重:编译服务器的负荷及当前所执行任务的资源配置信息,可根据实际需要来进行调整,本发明并不限于此。例如在进行任务分配时,亦可在负荷相差不大的情况下,重点考虑资源配置信息是否匹配,而并非必须首先考虑负荷、之后再考虑资源配置信息。
[0046]上述所提及的任务可包含:取代码、编译、打包、签名、单元测试、安装测试、或冒烟测试,但本发明并不限于此,其他可所需的任务亦适用于此。
[0047]图3为本发明提供的多任务队列管理方法的流程图。如图3所示,本发明还提供了一种多任务队列管理方法,该方法包括:接收一个或多个任务,该一个或多个任务中的每一者与至少两个测试主体中的一者有关;将所述一个或多个任务存储于一队列;以及根据编译服务器集群内各个编译服务器的负荷情况,将所述队列内的任务分配至相应的编译服务器,以由该编译服务器执行相应任务。
[0048]优选地,所述多任务队列管理方法还可包括:接收所述各个编译服务器当前执行的任务的资源配置信息;以及在所述编译服务器集群内两编译服务器的负荷情况相同的情况下,优先将所述队列内的任务分配至该两编译服务器内当前执行的任务的资源配置信息与所述队列内该任务的资源配置信息相同的编译服务器。
[0049]有关该方法的具体细节及益处可参阅上述针对多任务管理系统的描述,于此不再赘述。
[0050]通过本发明,可使得持续集成服务器所对应的编译服务器不仅仅能够执行该持续集成服务器所发送的任务,亦可执行来自其他持续集成服务器所发送的任务。这样可根据编译服务器集群内各个编译服务器的负荷情况,有效分配任务至各个编译服务器,使得系统负荷可均衡分布于各编译服务器上,保证资源的充分利用以及任务的快速执行。
[0051]以上结合附图详细描述了本发明的优选实施方式,但是,本发明并不限于上述实施方式中的具体细节,在本发明的技术构思范围内,可以对本发明的技术方案进行多种简单变型,这些简单变型均属于本发明的保护范围。
[0052]另外需要说明的是,在上述【具体实施方式】中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本发明对各种可能的组合方式不再另行说明。
[0053]此外,本发明的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明的思想,其同样应当视为本发明所公开的内容。
【主权项】
1.一种多任务队列管理方法,其特征在于,该方法包括: 接收一个或多个任务,该一个或多个任务中的每一者与至少两个测试主体中的一者有关; 将所述一个或多个任务存储于一队列;以及 根据编译服务器集群内各个编译服务器的负荷情况,将所述队列内的任务分配至相应的编译服务器,以由该编译服务器执行相应任务。2.根据权利要求1所述的多任务队列管理方法,其特征在于,所述至少两个测试主体包含以下至少两者:电视机、手机、平板电脑、笔记本电脑、台式电脑以及汽车。3.根据权利要求1所述的多任务队列管理方法,其特征在于,所述一个或多个任务包含以下至少一者:取代码、编译、打包、签名、单元测试、安装测试、以及冒烟测试。4.根据权利要求1所述的多任务队列管理方法,其特征在于,该方法还包括: 接收所述各个编译服务器当前执行的任务的资源配置信息;以及 在所述编译服务器集群内两编译服务器的负荷情况相同的情况下,优先将所述队列内的任务分配至该两编译服务器内当前执行的任务的资源配置信息与所述队列内该任务的资源配置信息相同的编译服务器。5.根据权利要求1-4中任一项权利要求所述的多任务队列管理方法,其特征在于,所述编译服务器用于执行以下操作: 接收所述任务; 确定该任务所需的资源配置信息;以及 根据该资源配置信息配置相应的资源,并执行所述任务。6.根据权利要求5所述的多任务队列管理方法,其特征在于,所述编译服务器根据以下方式确定所述任务所需的资源配置信息: 从所述任务内提取该任务的资源配置信息;或者 提取所述任务的属性,并根据该属性查找属性与资源配置对应表确定该任务所需的资源配置信息。7.一种多任务队列管理设备,其特征在于,该设备包括: 接收装置,用于接收一个或多个任务,该一个或多个任务中的每一者与至少两个测试主体中的一者有关; 处理装置,用于执行以下操作: 将所述一个或多个任务存储于一队列;以及 根据编译服务器集群内各个编译服务器的负荷情况,将所述队列内的任务分配至相应的编译服务器,以由该编译服务器执行相应任务。8.根据权利要求7所述的多任务队列管理设备,其特征在于,所述至少两个测试主体包含以下至少两者:电视机、手机、平板电脑、笔记本电脑、台式电脑以及汽车。9.根据权利要求7所述的多任务队列管理设备,其特征在于,所述一个或多个任务包含以下至少一者:取代码、编译、打包、签名、单元测试、安装测试、以及冒烟测试。10.根据权利要求7所述的多任务队列管理设备,其特征在于, 所述接收装置还用于接收所述各个编译服务器当前执行的任务的资源配置信息;以及 所述处理装置还用于在所述编译服务器集群内两编译服务器的负荷情况相同的情况下,优先将所述队列内的任务分配至该两编译服务器内当前执行的任务的资源配置信息与所述队列内该任务的资源配置信息相同的编译服务器。11.一种多任务队列管理系统,其特征在于,该系统包括: 持续集成服务器集群,包含至少两个测试主题专用持续集成服务器; 根据权利要求7-10中任一项权利要求所述的多任务队列管理设备;以及 编译服务器集群,包含至少两个编译服务器。12.根据权利要求11所述的多任务队列管理系统,其特征在于,所述持续集成服务器集群内的至少两个测试主题专用持续集成服务器中的每一者在所述编译服务器集群内具有与该测试主题专用持续集成服务器相对应的至少一个编译服务器,且该至少一个编译服务器能够执行来自与其相对应的主题专用持续集成服务器之外的其他测试主题专用持续集成服务器的任务。13.根据权利要求11所述的多任务队列管理系统,其特征在于,所述编译服务器用于执行以下操作: 接收所述任务; 确定该任务所需的资源配置信息;以及 根据该资源配置信息配置相应的资源,并执行所述任务。14.根据权利要求13所述的多任务队列管理系统,其特征在于,所述编译服务器根据以下方式确定所述任务所需的资源配置信息: 从所述任务内提取该任务的资源配置信息;或者 提取所述任务的属性,并根据该属性查找属性与资源配置对应表确定该任务所需的资源配置信息。
【文档编号】G06F9/50GK105893147SQ201610186692
【公开日】2016年8月24日
【申请日】2016年3月29日
【发明人】雷涛
【申请人】乐视控股(北京)有限公司, 乐视致新电子科技(天津)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1