CN110225082B - 任务处理方法、装置、电子设备和计算机可读介质 - Google Patents

任务处理方法、装置、电子设备和计算机可读介质 Download PDF

Info

Publication number
CN110225082B
CN110225082B CN201910364233.2A CN201910364233A CN110225082B CN 110225082 B CN110225082 B CN 110225082B CN 201910364233 A CN201910364233 A CN 201910364233A CN 110225082 B CN110225082 B CN 110225082B
Authority
CN
China
Prior art keywords
task
tasks
phase
stage
executor
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.)
Active
Application number
CN201910364233.2A
Other languages
English (en)
Other versions
CN110225082A (zh
Inventor
汪鑫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing QIYI Century Science and Technology Co Ltd
Original Assignee
Beijing QIYI Century Science and Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing QIYI Century Science and Technology Co Ltd filed Critical Beijing QIYI Century Science and Technology Co Ltd
Priority to CN201910364233.2A priority Critical patent/CN110225082B/zh
Publication of CN110225082A publication Critical patent/CN110225082A/zh
Application granted granted Critical
Publication of CN110225082B publication Critical patent/CN110225082B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/43Checking; Contextual analysis
    • G06F8/433Dependency analysis; Data or control flow analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/447Target code generation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

本申请实施例公开了任务处理方法、装置、电子设备和计算机可读介质。该方法的实施例包括:接收包含多个任务阶段的代码集成任务;确定该代码集成任务中的第一任务阶段和第二任务阶段,其中,该第二任务阶段依赖该第一任务阶段产生的数据;通过所述代码持续集成工具分配执行器,使所分配的执行器执行所述第一任务阶段中的任务,并从所分配执行器中,确定第一执行器;响应于确定该第二任务阶段中的任务的数量小于或等于预设数量,使该第一执行器继续执行该第二任务阶段中的任务。该实施方式提高了代码集成任务的处理效率。

Description

任务处理方法、装置、电子设备和计算机可读介质
技术领域
本申请实施例涉及计算机技术领域,具体涉及任务处理方法、装置、电子设备和计算机可读介质。
背景技术
持续集成(Continuous integration,CI)是一种软件开发实践,即团队中每个开发成员每天至少进行一次代码集成任务。通常,可以在服务器中安装代码持续集成工具(例如GitLab CI),以进行代码持续集成。其中,上述代码持续集成工具可以管理多个执行器(GitLab CI Runner),上述服务器可称为GitLab服务器。
在通过上述代码持续集成工具执行每一次代码集成任务的过程中,现有的任务处理流程,通常是为各阶段任务随机分配执行器,以依次执行各任务阶段中的任务(job)。每当一个任务阶段处理结束时,相应的执行器将数据上传至GitLab服务器。若当前任务阶段需要上一任务阶段所产生的数据,则需要当前任务阶段的执行器从GitLab服务器下载该数据。因而,这种方式需要在代码集成任务处理过程中进行多次网络传输,导致代码集成任务的处理效率较低。
发明内容
本申请实施例提出了任务处理方法、装置、电子设备和计算机可读介质,以解决现有技术中代码集成任务的处理效率较低的技术问题。
第一方面,本申请实施例提供了一种任务处理方法,应用于安装有代码持续集成工具的服务器,代码持续集成工具管理有多个用于执行任务的执行器,该方法包括:接收包含多个任务阶段的代码集成任务;确定所述代码集成任务中的第一任务阶段和第二任务阶段,其中,所述第二任务阶段依赖所述第一任务阶段产生的数据;通过所述代码持续集成工具分配执行器,使所分配的执行器执行所述第一任务阶段中的任务,并从所分配执行器中,确定第一执行器;响应于确定所述第二任务阶段中的任务的数量小于或等于预设数量,使所述第一执行器继续执行所述第二任务阶段中的任务。
在一些实施例中,在所述并从所分配执行器中,确定第一执行器之后,所述方法还包括:响应于确定所述第二任务阶段中的任务的数量大于所述预设数量,通过所述管理工具选取第二执行器,使所述第一执行器和第二执行器执行所述第二任务阶段中的任务,其中,在所述第二任务阶段中,由所述第一执行器执行的任务的数量为所述预设数量。
在一些实施例中,所述通过所述管理工具选取第二执行器,使所述第一执行器和第二执行器执行所述第二任务阶段中的任务,包括:通过所述管理工具随机选取空闲状态的执行器,作为第二执行器;从所述第二任务阶段中选取所述预设数量的任务,使所述第一执行器执行所选取的任务,并使所述第二执行器执行如下步骤:通过远程文件拷贝命令,从执行所述第一任务阶段的任务的执行器中获取数据;基于所获取的数据,执行所述第二任务阶段中的其余任务。
在一些实施例中,所述确定所述代码集成任务中的第一任务阶段和第二任务阶段,包括:确定所述代码集成任务中的任务阶段之间的依赖关系;对于所述代码集成任务中的每个任务阶段,执行如下步骤:基于所述依赖关系,确定该任务阶段是否产生所述代码集成任务中的其余至少一个任务阶段所依赖的数据;若是,将该任务阶段确定为第一任务阶段,并将依赖所述第一任务阶段所产生的数据的任务阶段确定为第二任务阶段。
在一些实施例中,所述通过所述代码持续集成工具分配执行器,使所分配的执行器执行所述第一任务阶段中的任务,并从所分配执行器中,确定第一执行器,包括:响应于确定所述第一任务阶段中的任务的数量小于或等于所述预设数量,通过所述代码持续集成工具分配一个执行器作为第一执行器,使所述第一执行器执行所述第一任务阶段中的任务。
在一些实施例中,所述通过所述代码持续集成工具分配执行器,使所分配的执行器执行所述第一任务阶段中的任务,并从所分配执行器中,确定第一执行器,包括:响应于确定所述第一任务阶段中的任务的数量大于所述预设数量,通过所述代码持续集成工具分配至少两个执行器,使所述至少两个执行器执行所述第一任务阶段中的任务;分别确定各执行器在执行第一任务阶段中的任务时所产生的数据量,将产生最多数据量的执行器确定为第一执行器。
第二方面,本申请实施例提供了一种任务处理装置,应用于安装有代码持续集成工具的服务器,代码持续集成工具管理有多个用于执行任务的执行器,该装置包括:接收单元,被配置成接收包含多个任务阶段的代码集成任务;确定单元,被配置成确定所述代码集成任务中的第一任务阶段和第二任务阶段,其中,所述第二任务阶段依赖所述第一任务阶段产生的数据;第一执行单元,被配置成通过所述代码持续集成工具分配执行器,使所分配的执行器执行所述第一任务阶段中的任务,并从所分配执行器中,确定第一执行器;第二执行单元,被配置成响应于确定所述第二任务阶段中的任务的数量小于或等于预设数量,使所述第一执行器继续执行所述第二任务阶段中的任务。
在一些实施例中,该装置还包括:第三执行单元,被配置成响应于确定所述第二任务阶段中的任务的数量大于所述预设数量,通过所述管理工具选取第二执行器,使所述第一执行器和第二执行器执行所述第二任务阶段中的任务,其中,在所述第二任务阶段中,由所述第一执行器执行的任务的数量为所述预设数量。
在一些实施例中,所述第三执行单元,进一步被配置成:通过所述管理工具随机选取空闲状态的执行器,作为第二执行器;从所述第二任务阶段中选取所述预设数量的任务,使所述第一执行器执行所选取的任务,并使所述第二执行器执行如下步骤:通过远程文件拷贝命令,从执行所述第一任务阶段的任务的执行器中获取数据;基于所获取的数据,执行所述第二任务阶段中的其余任务。
在一些实施例中,所述确定单元,包括:第一确定模块,被配置成确定所述代码集成任务中的任务阶段之间的依赖关系;第二确定模块,被配置成对于所述代码集成任务中的每个任务阶段,执行如下步骤:基于所述依赖关系,确定该任务阶段是否产生所述代码集成任务中的其余至少一个任务阶段所依赖的数据;若是,将该任务阶段确定为第一任务阶段,并将依赖所述第一任务阶段所产生的数据的任务阶段确定为第二任务阶段。
在一些实施例中,所述第一执行单元,进一步被配置成:响应于确定所述第一任务阶段中的任务的数量小于或等于所述预设数量,通过所述代码持续集成工具分配一个执行器作为第一执行器,使所述第一执行器执行所述第一任务阶段中的任务。
在一些实施例中,所述第一执行单元,进一步被配置成:响应于确定所述第一任务阶段中的任务的数量大于所述预设数量,通过所述代码持续集成工具分配至少两个执行器,使所述至少两个执行器执行所述第一任务阶段中的任务;分别确定各执行器在执行第一任务阶段中的任务时所产生的数据量,将产生最多数据量的执行器确定为第一执行器。
第三方面,本申请实施例提供了一种服务器,包括:一个或多个处理器;存储装置,其上存储有一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如上述第一方面中任一实施例的方法。
第四方面,本申请实施例提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上述第一方面中任一实施例的方法。
本申请实施例提供的任务处理方法、装置、电子设备和计算机可读介质,通过接收包含多个任务阶段的代码集成任务,可以确定代码集成任务中的第一任务阶段和第二任务阶段。其中,第二任务阶段依赖第一任务阶段产生的数据。而后,通过上述代码持续集成工具分配执行器以执行第一任务阶段中的任务,并确定出第一执行器。之后,响应于确定第二任务阶段中的任务的数量小于或等于预设数量,使第一执行器继续执行第二任务阶段中的任务。由此,在第二任务阶段依赖第一任务阶段产生的数据且第二任务阶段中的任务的数量等于预设数量的情况下,使同一执行器依次执行第一任务阶段和第二任务阶段中的任务。在代码集成任务的处理过程中,不需要执行器上传和下载第一任务阶段产生的数据,从而节省了网络传输次数,提高了代码集成任务的处理效率。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是本申请可以应用于其中的示例性系统架构图;
图2是根据本申请的任务处理方法的一个实施例的流程图;
图3是根据本申请的任务处理方法的又一个实施例的流程图;
图4是根据本申请的任务处理装置的一个实施例的结构示意图;
图5是适于用来实现本申请实施例的服务器的计算机系统的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了可以应用本申请的任务处理方法或任务处理装置的示例性系统架构100。
如图1所示,系统架构100可以包括服务器101,网络102和服务器、103、104、105。网络102用以在服务器101和服务器103、104、105之间提供通信链路的介质。网络102可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
服务器101可以是可以安装有代码持续集成工具(例如GitLab CI)的GitLab服务器。上述代码持续集成工具能够进行代码持续集成操作。服务器101可以通过上述代码持续集成工具执行代码集成任务。其中,每一个代码集成任务可以包括多个任务阶段。上述代码持续集成工具管理有多个用于执行任务的执行器(例如GitLab CI Runner)。对于某一任务阶段,服务器101可以通过代码持续集成工具分配执行器,以利用该执行器执行该任务阶段中的任务。
服务器103、104、105可以是运行有执行器的任务执行服务器。此处,一个任务执行服务器中可以运行有一个或多个执行器。实践中,任务执行服务器中可以构建容器(例如Docker容器),此时,执行器可以运行于容器中。实践中,Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。
需要指出的是,执行器也可以运行于服务器101中(此时,上述系统架构100可以不包括上述服务器103、104、105和上述网络102)。或者,部分执行器运行于服务器101中,部分执行器运行于服务器103、104、105中。
需要说明的是,上述各服务器可以是硬件,也可以是软件。当服务器为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。当服务器为软件时,可以实现成多个软件或软件模块(例如用来提供分布式服务),也可以实现成单个软件或软件模块。在此不做具体限定。
需要说明的是,本申请实施例所提供的任务处理方法一般由服务器101执行,相应地,任务处理装置一般设置于服务器101中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的网络和服务器。
请参考图2,其示出了根据本申请的任务处理方法的一个实施例的流程200。该任务处理方法可以应用于安装有代码持续集成工具(例如GitLab CI)的服务器。上述代码持续集成工具管理有多个用于执行任务的执行器(GitLab CI Runner),该方法包括以下步骤:
步骤201,接收包含多个任务阶段的代码集成任务。
在本实施例中,任务处理方法的执行主体(即图1所示的服务器101,例如GitLab服务器)可以接收代码集成任务(在上述GitLab CI中可称为Pipeline)。其中,上述代码集成任务可以包含多个任务阶段(在上述GitLabCI中可称为stages)。此处,上述多个任务阶段可以包括但不限于编译、测试、交付、部署。实践中,各任务阶段(stage)按顺序执行,即当一个任务阶段中的任务执行完成后,将开始下一个任务阶段中的任务。各任务阶段可以包括一个或多个任务(job)。
需要说明的是,由于持续集成是一种软件开发实践,即团队中每个开发成员每天至少进行一次代码集成任务,因此,在持续集成过程中会处理多次代码集成任务。每一次代码集成任务,均可以采用本实施例所描述的流程进行操作。
步骤202,确定代码集成任务中的第一任务阶段和第二任务阶段。
在本实施例中,上述执行主体可以对上述代码集成任务中的各任务阶段所依赖的数据(例如上述GitLab CI中的artifacts等数据)的来源进行分析。当确定出某一任务阶段需要依赖另一任务阶段所产生的数据时,即可将上述某一任务阶段作为第一任务阶段,将上述另一任务阶段作为第二任务阶段。由此,可以确定出上述代码集成任务中的第一任务阶段和第二任务阶段,且可知第二任务阶段依赖第一任务阶段产生的数据。
在本实施例的一些可选的实现方式中,上述执行主体可以通过如下步骤确定上述代码集成任务中的第一任务阶段和第二任务阶段:
第一步,确定上述代码集成任务中的任务阶段之间的依赖关系。具体地,对于某一个任务阶段,若该任务阶段不依赖其他任务阶段所产生的数据,则可以确定该任务阶段与其他任务阶段不存在依赖关系。若该任务阶段依赖另一个任务阶段产生的数据,则可以认为该任务阶段对于上述另一个任务阶段存在依赖关系。
作为示例,上述代码集成任务包括编译任务阶段(可称为stage A)、测试任务阶段(可称为stage B)和部署任务阶段(可称为stage C)。若stage B和stage C均依赖于stageA所产生的数据,则stage B和stage C均对于stage A具有依赖关系。
作为又一示例,若stage B依赖于stage A所产生的数据,且stage C依赖于stageB所产生的数据,则stage B对于stage A具有依赖关系,且stage C对于stage B具有依赖关系。
第二步,对于上述代码集成任务中的每个任务阶段,基于上述依赖关系,确定该任务阶段是否产生上述代码集成任务中的其余至少一个任务阶段所依赖的数据;若是,将该任务阶段确定为第一任务阶段,并将依赖上述第一任务阶段所产生的数据的任务阶段确定为第二任务阶段。
作为示例,若stage A产生有stage B和stage C所依赖的数据,则可以将stage A确定为第一任务阶段,将stage B和stage C确定为第二任务阶段。
作为又一示例,若stage A产生有stage B所依赖的数据,且stage B产生有stageC所依赖的数据,则可以首先将stage A确定为第一任务阶段,将stage B确定为对应的第二任务阶段。由于各任务阶段的任务是依次执行的,因此,在stage A执行完毕后,可以将stage B确定为第一任务阶段,将stage C确定为对应的第二任务阶段。
步骤203,通过代码持续集成工具分配执行器,使所分配的执行器执行第一任务阶段中的任务,并从所分配执行器中,确定第一执行器。
在本实施例中,由于上述执行主体所安装的代码持续集成工具(例如GitLab CI)可以管理有多个用于执行任务的执行器(GitLab CI Runner),因此,上述执行主体可以针对不同任务阶段进行执行器的分配。此处,上述执行主体可以通过上述代码持续集成工具分配至少一个执行器(例如随机从上述多个执行器中选取空闲状态的执行器),使所分配的执行器执行第一任务阶段中的任务。
而后,上述执行主体可以从所分配执行器中,确定第一执行器。此处,若仅分配有一个执行器,即可将该执行器作为第一执行器。若分配有至少两个执行器,可以从中选取一个执行器(例如产生数据量最多的执行器)作为第一执行器。
在本实施例的一些可选的实现方式中,响应于确定上述第一任务阶段中的任务的数量小于或等于上述预设数量,上述执行主体可以通过上述代码持续集成工具分配一个执行器作为第一执行器,使上述第一执行器执行上述第一任务阶段中的任务。此处,预设数量可以是执行器可并行执行的最大任务数量。
在本实施例的一些可选的实现方式中,响应于确定上述第一任务阶段中的任务的数量大于上述预设数量,上述执行主体可以通过上述代码持续集成工具分配至少两个执行器,使上述至少两个执行器执行上述第一任务阶段中的任务。而后,可以分别确定各执行器在执行第一任务阶段中的任务时所产生的数据量。最后,可以将产生最多数据量的执行器确定为第一执行器。
需要说明的是,上述执行主体还可以预先设定各执行器的释放条件(例如,后续任务阶段不依赖于当前任务阶段产生的数据,且当前任务阶段的任务执行完毕)。当不满足上述释放条件时,可以利用执行器的缓存功能进行数据缓存,使该执行器基于所缓存的数据继续执行其他任务。
步骤204,响应于确定第二任务阶段中的任务的数量小于或等于预设数量,使第一执行器继续执行第二任务阶段中的任务。
在本实施例中,响应于确定第二任务阶段中的任务的数量小于或等于预设数量,上述执行主体可以使第一执行器继续执行第二任务阶段中的任务。此处,预设数量可以是执行器可并行执行的最大任务数量。由此,在第二任务阶段依赖第一任务阶段产生的数据且第二任务阶段中的任务的数量等于预设数量的情况下,使同一执行器依次执行第一任务阶段和第二任务阶段中的任务。在代码集成任务的处理过程中,不需要执行器上传和下载第一任务阶段产生的数据,从而节省了网络传输次数,提高了代码集成任务的处理效率。
在本实施例的一些可选的实现方式中,响应于确定上述第二任务阶段中的任务的数量大于上述预设数量,上述执行主体可以通过上述管理工具选取第二执行器,使上述第一执行器和第二执行器共同执行上述第二任务阶段中的任务。其中,在上述第二任务阶段中,由上述第一执行器执行的任务的数量为上述预设数量。由此,可以最大程度地减少网络传输。
在上述实现方式中,可选的,上述执行主体可以通过上述管理工具随机选取空闲状态的执行器,作为第二执行器。而后,可以从上述第二任务阶段中选取上述预设数量的任务,使上述第一执行器执行所选取的任务,并使上述第二执行器执行如下步骤:通过远程文件拷贝命令(secure copy,SCP),从执行上述第一任务阶段的任务的执行器中获取数据;基于所获取的数据,执行上述第二任务阶段中的其余任务。实践中,上述SCP命令为linux系统下基于SSH(Secure Shell,安全外壳协议)登陆进行的远程文件拷贝命令。通过执行该远程文件拷贝命令,可以从上述文件服务器中下载数据。
本申请的上述实施例提供的方法,通过接收包含多个任务阶段的代码集成任务,可以确定上述代码集成任务中的第一任务阶段和第二任务阶段。其中,上述第二任务阶段依赖上述第一任务阶段产生的数据。而后,通过上述代码持续集成工具分配执行器以执行第一任务阶段中的任务,并确定出第一执行器。之后,响应于确定上述第二任务阶段中的任务的数量小于或等于预设数量,使上述第一执行器继续执行上述第二任务阶段中的任务。由此,在第二任务阶段依赖第一任务阶段产生的数据且第二任务阶段中的任务的数量等于预设数量的情况下,使同一执行器(即第一执行器)依次执行第一任务阶段和第二任务阶段中的任务。在代码集成任务的处理过程中,不需要执行器上传和下载第一任务阶段产生的数据,从而节省了网络传输次数,提高了代码集成任务的处理效率。
进一步参考图3,其示出了任务处理方法的又一个实施例的流程300。该任务处理方法的流程300,包括以下步骤:
步骤301,接收包含多个任务阶段的代码集成任务。
在本实施例中,任务处理方法的执行主体(即图1所示的服务器101,例如GitLab服务器)可以接收代码集成任务(在上述GitLab CI中可称为Pipeline)。其中,上述代码集成任务可以包含多个任务阶段(在上述GitLabCI中可称为stages)。此处,上述多个任务阶段可以包括但不限于编译、测试、交付、部署。实践中,各任务阶段(stage)按顺序执行,即当一个任务阶段中的任务执行完成后,将开始下一个任务阶段中的任务。各任务阶段可以包括一个或多个任务(job)。
步骤302,确定代码集成任务中的任务阶段之间的依赖关系。
在本实施例中,上述执行主体可以确定上述代码集成任务中的任务阶段之间的依赖关系。具体地,对于某一个任务阶段,若该任务阶段不依赖其他任务阶段所产生的数据,则可以确定该任务阶段与其他任务阶段不存在依赖关系。若该任务阶段依赖另一个任务阶段产生的数据,则可以认为该任务阶段对于上述另一个任务阶段存在依赖关系。
作为示例,上述代码集成任务包括编译任务阶段(可称为stage A)、测试任务阶段(可称为stage B)和部署任务阶段(可称为stage C)。若stage B和stage C均依赖于stageA所产生的数据,则stage B和stage C均对于stage A具有依赖关系。
步骤303,对于代码集成任务中的每个任务阶段,基于依赖关系,确定该任务阶段是否产生代码集成任务中的其余至少一个任务阶段所依赖的数据。
在本实施例中,对于上述代码集成任务中的每一个任务阶段,上述执行主体可以基于上述依赖关系,确定该任务阶段是否产生上述代码集成任务中的其余至少一个任务阶段所依赖的数据。若是,可以执行步骤304。
步骤304,若是,将该任务阶段确定为第一任务阶段,并将依赖第一任务阶段所产生的数据的任务阶段确定为第二任务阶段。
在本实施例中,响应于确定该任务阶段产生上述代码集成任务中的其余至少一个任务阶段所依赖的数据,上述执行主体可以将该任务阶段确定为第一任务阶段,并将依赖上述第一任务阶段所产生的数据的任务阶段确定为第二任务阶段。
继续上述示例,由于stage A产生有stage B和stage C所依赖的数据,则可以将stage A确定为第一任务阶段,将stage B和stage C确定为第二任务阶段。
步骤305,通过代码持续集成工具分配执行器,使所分配的执行器执行第一任务阶段中的任务,并从所分配执行器中,确定第一执行器。
在本实施例中,由于上述执行主体所安装的代码持续集成工具(例如GitLab CI)可以管理有多个用于执行任务的执行器(GitLab CI Runner),因此,上述执行主体可以针对不同任务阶段进行执行器的分配。此处,上述执行主体可以通过上述代码持续集成工具分配执行器,使所分配的执行器执行第一任务阶段中的任务。
具体地,响应于确定上述第一任务阶段中的任务的数量小于或等于上述预设数量,上述执行主体可以通过上述代码持续集成工具分配一个执行器作为第一执行器,使上述第一执行器执行上述第一任务阶段中的任务。此处,预设数量可以是执行器可并行执行的最大任务数量。
响应于确定上述第一任务阶段中的任务的数量大于上述预设数量,上述执行主体可以通过上述代码持续集成工具分配至少两个执行器,使上述至少两个执行器执行上述第一任务阶段中的任务。而后,可以分别确定各执行器在执行第一任务阶段中的任务时所产生的数据量。最后,可以将产生最多数据量的执行器确定为第一执行器。
需要说明的是,上述执行主体还可以预先设定各执行器的释放条件(例如,后续任务阶段不依赖于当前任务阶段产生的数据,且当前任务阶段的任务执行完毕)。当不满足上述释放条件时,可以利用执行器的缓存功能进行数据缓存,使该执行器基于所缓存的数据继续执行其他任务。
步骤306,响应于确定第二任务阶段中的任务的数量小于或等于预设数量,使第一执行器继续执行第二任务阶段中的任务。
在本实施例中,响应于确定第二任务阶段中的任务的数量小于或等于预设数量(例如1个),上述执行主体可以使第一执行器继续执行第二任务阶段中的任务。由此,在第二任务阶段依赖第一任务阶段产生的数据且第二任务阶段中的任务的数量等于预设数量的情况下,使同一执行器依次执行第一任务阶段和第二任务阶段中的任务。在代码集成任务的处理过程中,不需要执行器上传和下载第一任务阶段产生的数据,从而节省了网络传输次数,提高了代码集成任务的处理效率。
在本实施例中,在使第一执行器继续执行第二任务阶段中的任务之后,上述执行主体可以确定上述第二任务阶段中的任务是否执行完毕。若确定第二任务阶段中的任务已执行完毕,可以设定上述第一执行器的工作状态为空闲状态,以便上述第一执行器继续参与到其他代码集成任务中。
此处,响应于确定上述第二任务阶段中的任务的数量大于预设数量,可以执行步骤307-步骤308。
步骤307,响应于确定第二任务阶段中的任务的数量大于预设数量,通过管理工具随机选取空闲状态的执行器,作为第二执行器。
在本实施例中,响应于确定第二任务阶段中的任务的数量大于预设数量,上述执行主体可以通过管理工具随机选取空闲状态的执行器,作为第二执行器。
步骤308,从第二任务阶段中选取预设数量的任务,使第一执行器执行所选取的任务,并使第二执行器执行如下步骤:通过远程文件拷贝命令,从执行第一任务阶段的任务的执行器中获取数据;基于所获取的数据,执行第二任务阶段中的其余任务。
在本实施例中,上述执行主体可以从第二任务阶段中选取(例如随机选取或者按照次序选取等)预设数量的任务,使第一执行器执行所选取的任务,并使第二执行器执行如下步骤:通过远程文件拷贝命令,从执行第一任务阶段的任务的执行器中获取数据;基于所获取的数据,执行第二任务阶段中的其余任务。由此,可以在第二任务阶段总的任务数量大于执行器所能够并行执行的最大任务数量时,同时使用执行第一任务阶段的任务的第一执行器和其他执行器执行任务,且保证第一执行器为在执行第一任务阶段中的任务时产生的数据量最大的执行器。由此,可以最大程度地减少网络传输。
从图3中可以看出,与图1对应的实施例相比,本实施例中的任务处理方法的流程300涉及了在第二任务阶段中的任务的数量大于预设数量后,对第二任务阶段中的任务的处理步骤。由此,本实施例描述的方案可以针对第二任务阶段中的任务的数量,确定执行器,从而执行第二任务阶段中的任务,由此,提高了执行器分配的灵活性和合理性。
进一步参考图4,作为对上述各图所示方法的实现,本申请提供了一种任务处理装置的一个实施例,该装置实施例与图1所示的方法实施例相对应,该装置具体可以应用于安装有代码持续集成工具的服务器,上述代码持续集成工具管理有多个用于执行任务的执行器。
如图4所示,本实施例所述的任务处理装置400包括:接收单元401,被配置成接收包含多个任务阶段的代码集成任务;确定单元402,被配置成确定上述代码集成任务中的第一任务阶段和第二任务阶段,其中,上述第二任务阶段依赖上述第一任务阶段产生的数据;第一执行单元403,被配置成通过上述代码持续集成工具分配执行器,使所分配的执行器执行上述第一任务阶段中的任务,并从所分配执行器中,确定第一执行器;第二执行单元404,被配置成响应于确定上述第二任务阶段中的任务的数量小于或等于预设数量,使上述第一执行器继续执行上述第二任务阶段中的任务。
在本实施例的一些可选的实现方式中,该装置还可以包括第三执行单元。其中,上述第三执行单元可以被配置成响应于确定上述第二任务阶段中的任务的数量大于上述预设数量,通过上述管理工具选取第二执行器,使上述第一执行器和第二执行器执行上述第二任务阶段中的任务,其中,在上述第二任务阶段中,由上述第一执行器执行的任务的数量为上述预设数量。
在本实施例的一些可选的实现方式中,上述第三执行单元可以进一步被配置成:通过上述管理工具随机选取空闲状态的执行器,作为第二执行器;从上述第二任务阶段中选取上述预设数量的任务,使上述第一执行器执行所选取的任务,并使上述第二执行器执行如下步骤:通过远程文件拷贝命令,从执行上述第一任务阶段的任务的执行器中获取数据;基于所获取的数据,执行上述第二任务阶段中的其余任务。
在本实施例的一些可选的实现方式中,上述确定单元可以包括第一确定模块和第二确定模块。其中,上述第一确定模块可以被配置成确定上述代码集成任务中的任务阶段之间的依赖关系。上述第二确定模块可以被配置成对于上述代码集成任务中的每个任务阶段,执行如下步骤:基于上述依赖关系,确定该任务阶段是否产生上述代码集成任务中的其余至少一个任务阶段所依赖的数据;若是,将该任务阶段确定为第一任务阶段,并将依赖上述第一任务阶段所产生的数据的任务阶段确定为第二任务阶段。
在本实施例的一些可选的实现方式中,上述第一执行单元可以进一步被配置成:响应于确定上述第一任务阶段中的任务的数量小于或等于上述预设数量,通过上述代码持续集成工具分配一个执行器作为第一执行器,使上述第一执行器执行上述第一任务阶段中的任务。
在本实施例的一些可选的实现方式中,上述第一执行单元可以进一步被配置成:响应于确定上述第一任务阶段中的任务的数量大于上述预设数量,通过上述代码持续集成工具分配至少两个执行器,使上述至少两个执行器执行上述第一任务阶段中的任务;分别确定各执行器在执行第一任务阶段中的任务时所产生的数据量;将产生最多数据量的执行器确定为第一执行器。
本申请的上述实施例提供的装置,通过接收包含多个任务阶段的代码集成任务,可以确定上述代码集成任务中的第一任务阶段和第二任务阶段。其中,上述第二任务阶段依赖上述第一任务阶段产生的数据。而后,通过上述代码持续集成工具分配执行器以执行第一任务阶段中的任务,并确定出第一执行器。之后,响应于确定上述第二任务阶段中的任务的数量小于或等于预设数量,使上述第一执行器继续执行上述第二任务阶段中的任务。由此,在第二任务阶段依赖第一任务阶段产生的数据且第二任务阶段中的任务的数量等于预设数量的情况下,使同一执行器依次执行第一任务阶段和第二任务阶段中的任务。在代码集成任务的处理过程中,不需要执行器上传和下载第一任务阶段产生的数据,从而节省了网络传输次数,提高了代码集成任务的处理效率。
下面参考图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;包括诸如液晶显示器(LCD)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。在该计算机程序被中央处理单元(CPU)501执行时,执行本申请的方法中限定的上述功能。需要说明的是,本申请所述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的装置中所包含的;也可以是单独存在,而未装配入该装置中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该装置执行时,使得该装置:接收包含多个任务阶段的代码集成任务;确定该代码集成任务中的第一任务阶段和第二任务阶段,其中,该第二任务阶段依赖该第一任务阶段产生的数据;通过代码持续集成工具分配第一执行器,使该第一执行器执行该第一任务阶段中的任务;响应于确定该第二任务阶段中的任务的数量小于或等于预设数量,使该第一执行器继续执行该第二任务阶段中的任务。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

Claims (14)

1.一种任务处理方法,其特征在于,应用于安装有代码持续集成工具的服务器,所述代码持续集成工具管理有多个用于执行任务的执行器,所述方法包括:
接收包含多个任务阶段的代码集成任务;
确定所述代码集成任务中的第一任务阶段和第二任务阶段,其中,所述第二任务阶段依赖所述第一任务阶段产生的数据;
通过所述代码持续集成工具分配执行器,使所分配的执行器执行所述第一任务阶段中的任务,并从所分配执行器中,确定第一执行器;
响应于确定所述第二任务阶段中的任务的数量小于或等于预设数量,使所述第一执行器继续执行所述第二任务阶段中的任务。
2.根据权利要求1所述的任务处理方法,其特征在于,在所述并从所分配执行器中,确定第一执行器之后,所述方法还包括:
响应于确定所述第二任务阶段中的任务的数量大于所述预设数量,通过所述代码持续集成工具选取第二执行器,使所述第一执行器和第二执行器执行所述第二任务阶段中的任务,其中,在所述第二任务阶段中,由所述第一执行器执行的任务的数量为所述预设数量。
3.根据权利要求2所述的任务处理方法,其特征在于,所述通过所述代码持续集成工具选取第二执行器,使所述第一执行器和第二执行器执行所述第二任务阶段中的任务,包括:
通过所述代码持续集成工具随机选取空闲状态的执行器,作为第二执行器;
从所述第二任务阶段中选取所述预设数量的任务,使所述第一执行器执行所选取的任务,并使所述第二执行器执行如下步骤:
通过远程文件拷贝命令,从执行所述第一任务阶段的任务的执行器中获取数据;
基于所获取的数据,执行所述第二任务阶段中的其余任务。
4.根据权利要求1所述的任务处理方法,其特征在于,所述确定所述代码集成任务中的第一任务阶段和第二任务阶段,包括:
确定所述代码集成任务中的任务阶段之间的依赖关系;
对于所述代码集成任务中的每个任务阶段,执行如下步骤:
基于所述依赖关系,确定该任务阶段是否产生所述代码集成任务中的其余至少一个任务阶段所依赖的数据;
若是,将该任务阶段确定为第一任务阶段,并将依赖所述第一任务阶段所产生的数据的任务阶段确定为第二任务阶段。
5.根据权利要求1所述的任务处理方法,其特征在于,所述通过所述代码持续集成工具分配执行器,使所分配的执行器执行所述第一任务阶段中的任务,并从所分配执行器中,确定第一执行器,包括:
响应于确定所述第一任务阶段中的任务的数量小于或等于所述预设数量,通过所述代码持续集成工具分配一个执行器作为第一执行器,使所述第一执行器执行所述第一任务阶段中的任务。
6.根据权利要求1所述的任务处理方法,其特征在于,所述通过所述代码持续集成工具分配执行器,使所分配的执行器执行所述第一任务阶段中的任务,并从所分配执行器中,确定第一执行器,包括:
响应于确定所述第一任务阶段中的任务的数量大于所述预设数量,通过所述代码持续集成工具分配至少两个执行器,使所述至少两个执行器执行所述第一任务阶段中的任务;
分别确定各执行器在执行第一任务阶段中的任务时所产生的数据量,将产生最多数据量的执行器确定为第一执行器。
7.一种任务处理装置,其特征在于,应用于安装有代码持续集成工具的服务器,所述代码持续集成工具管理有多个用于执行任务的执行器,所述装置包括:
接收单元,被配置成接收包含多个任务阶段的代码集成任务;
确定单元,被配置成确定所述代码集成任务中的第一任务阶段和第二任务阶段,其中,所述第二任务阶段依赖所述第一任务阶段产生的数据;
第一执行单元,被配置成通过所述代码持续集成工具分配执行器,使所分配的执行器执行所述第一任务阶段中的任务,并从所分配执行器中,确定第一执行器;
第二执行单元,被配置成响应于确定所述第二任务阶段中的任务的数量小于或等于预设数量,使所述第一执行器继续执行所述第二任务阶段中的任务。
8.根据权利要求7所述的任务处理装置,其特征在于,所述装置还包括:
第三执行单元,被配置成响应于确定所述第二任务阶段中的任务的数量大于所述预设数量,通过所述代码持续集成工具选取第二执行器,使所述第一执行器和第二执行器执行所述第二任务阶段中的任务,其中,在所述第二任务阶段中,由所述第一执行器执行的任务的数量为所述预设数量。
9.根据权利要求8所述的任务处理装置,其特征在于,所述第三执行单元,进一步被配置成:
通过所述代码持续集成工具随机选取空闲状态的执行器,作为第二执行器;
从所述第二任务阶段中选取所述预设数量的任务,使所述第一执行器执行所选取的任务,并使所述第二执行器执行如下步骤:
通过远程文件拷贝命令,从执行所述第一任务阶段的任务的执行器中获取数据;
基于所获取的数据,执行所述第二任务阶段中的其余任务。
10.根据权利要求7所述的任务处理装置,其特征在于,所述确定单元,包括:
第一确定模块,被配置成确定所述代码集成任务中的任务阶段之间的依赖关系;
第二确定模块,被配置成对于所述代码集成任务中的每个任务阶段,执行如下步骤:
基于所述依赖关系,确定该任务阶段是否产生所述代码集成任务中的其余至少一个任务阶段所依赖的数据;
若是,将该任务阶段确定为第一任务阶段,并将依赖所述第一任务阶段所产生的数据的任务阶段确定为第二任务阶段。
11.根据权利要求7所述的任务处理装置,其特征在于,所述第一执行单元,进一步被配置成:
响应于确定所述第一任务阶段中的任务的数量小于或等于所述预设数量,通过所述代码持续集成工具分配一个执行器作为第一执行器,使所述第一执行器执行所述第一任务阶段中的任务。
12.根据权利要求7所述的任务处理装置,其特征在于,所述第一执行单元,进一步被配置成:
响应于确定所述第一任务阶段中的任务的数量大于所述预设数量,通过所述代码持续集成工具分配至少两个执行器,使所述至少两个执行器执行所述第一任务阶段中的任务;
分别确定各执行器在执行第一任务阶段中的任务时所产生的数据量,将产生最多数据量的执行器确定为第一执行器。
13.一种服务器,其特征在于,包括:
一个或多个处理器;
存储装置,其上存储有一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-6中任一所述的方法。
14.一种计算机可读介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-6中任一所述的方法。
CN201910364233.2A 2019-04-30 2019-04-30 任务处理方法、装置、电子设备和计算机可读介质 Active CN110225082B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910364233.2A CN110225082B (zh) 2019-04-30 2019-04-30 任务处理方法、装置、电子设备和计算机可读介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910364233.2A CN110225082B (zh) 2019-04-30 2019-04-30 任务处理方法、装置、电子设备和计算机可读介质

Publications (2)

Publication Number Publication Date
CN110225082A CN110225082A (zh) 2019-09-10
CN110225082B true CN110225082B (zh) 2021-12-10

Family

ID=67820507

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910364233.2A Active CN110225082B (zh) 2019-04-30 2019-04-30 任务处理方法、装置、电子设备和计算机可读介质

Country Status (1)

Country Link
CN (1) CN110225082B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112114859A (zh) * 2020-09-17 2020-12-22 云账户技术(天津)有限公司 一种文件处理方法、装置及存储介质
CN112269648B (zh) * 2020-11-13 2024-05-31 北京轩宇信息技术有限公司 一种多阶段程序分析的并行任务分配方法及装置
CN113094052A (zh) * 2021-06-09 2021-07-09 中电金信软件有限公司 应用构建方法、装置、计算机设备和存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104123184A (zh) * 2013-04-28 2014-10-29 国际商业机器公司 一种用于为构建过程中的任务分配资源的方法和系统
CN104423956A (zh) * 2013-09-05 2015-03-18 联想(北京)有限公司 一种任务控制方法及系统
CN105389207A (zh) * 2015-11-06 2016-03-09 成都视达科信息技术有限公司 自适应数据请求处理方法、装置、任务调度器及系统
CN106406983A (zh) * 2015-07-27 2017-02-15 阿里巴巴集团控股有限公司 一种集群中的任务调度方法及装置
CN108319499A (zh) * 2018-02-07 2018-07-24 麒麟合盛网络技术股份有限公司 任务调度方法及装置
CN108509556A (zh) * 2018-03-22 2018-09-07 上海达梦数据库有限公司 数据迁移方法和装置、服务器、存储介质
CN108984290A (zh) * 2018-08-02 2018-12-11 北京京东金融科技控股有限公司 任务调度方法和系统
CN109144695A (zh) * 2018-08-30 2019-01-04 百度在线网络技术(北京)有限公司 一种任务拓扑关系的处理方法、装置、设备和介质
CN109684080A (zh) * 2018-12-10 2019-04-26 平安科技(深圳)有限公司 集中式任务调度方法、系统及存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070213989A1 (en) * 2006-03-08 2007-09-13 Cooksy Douglas A Task Minder System
KR101827369B1 (ko) * 2012-02-21 2018-02-09 한국전자통신연구원 데이터 스트림 분산 병렬 처리 서비스 관리 장치 및 방법

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104123184A (zh) * 2013-04-28 2014-10-29 国际商业机器公司 一种用于为构建过程中的任务分配资源的方法和系统
CN104423956A (zh) * 2013-09-05 2015-03-18 联想(北京)有限公司 一种任务控制方法及系统
CN106406983A (zh) * 2015-07-27 2017-02-15 阿里巴巴集团控股有限公司 一种集群中的任务调度方法及装置
CN105389207A (zh) * 2015-11-06 2016-03-09 成都视达科信息技术有限公司 自适应数据请求处理方法、装置、任务调度器及系统
CN108319499A (zh) * 2018-02-07 2018-07-24 麒麟合盛网络技术股份有限公司 任务调度方法及装置
CN108509556A (zh) * 2018-03-22 2018-09-07 上海达梦数据库有限公司 数据迁移方法和装置、服务器、存储介质
CN108984290A (zh) * 2018-08-02 2018-12-11 北京京东金融科技控股有限公司 任务调度方法和系统
CN109144695A (zh) * 2018-08-30 2019-01-04 百度在线网络技术(北京)有限公司 一种任务拓扑关系的处理方法、装置、设备和介质
CN109684080A (zh) * 2018-12-10 2019-04-26 平安科技(深圳)有限公司 集中式任务调度方法、系统及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"一种面向同构集群系统的并行任务节能调度优化方法";李 新;《计算机学报》;20120330;全文 *

Also Published As

Publication number Publication date
CN110225082A (zh) 2019-09-10

Similar Documents

Publication Publication Date Title
CN107343045B (zh) 云计算系统及用于控制服务器的云计算方法和装置
CN108182111B (zh) 任务调度系统、方法和装置
CN110225082B (zh) 任务处理方法、装置、电子设备和计算机可读介质
CN108052615B (zh) 访问请求的处理方法、装置、介质及电子设备
CN109033001B (zh) 用于分配gpu的方法和装置
US20180373540A1 (en) Cluster graphical processing unit (gpu) resource sharing efficiency by directed acyclic graph (dag) generation
US20180302335A1 (en) Orchestrating computing resources between different computing environments
CN109218356B (zh) 管理服务器上有状态应用的方法和设备
CN103997544A (zh) 一种资源下载的方法和设备
EP3032413B1 (en) Code generation method, compiler, scheduling method, apparatus and scheduling system
US20150180950A1 (en) Test management using distributed computing
CN109873731B (zh) 测试方法、装置和系统
CN108279976B (zh) 一种编译资源调度方法、计算机及计算机可读存储介质
CN108337314A (zh) 分布式系统、用于主服务器的信息处理方法和装置
CN112667228A (zh) 应用程序的构建方法、装置及计算机设备
US8863133B2 (en) License management in a cluster environment
CN110213333B (zh) 任务处理方法、装置、电子设备和计算机可读介质
CN108733527B (zh) 用于测试服务器功能的系统、方法和装置
CN109144846B (zh) 用于测试服务器的测试方法和装置
CN109829639A (zh) 服务项目监控方法及装置
CN108696554B (zh) 负载均衡方法和装置
CN109842665B (zh) 用于任务分配服务器的任务处理方法和装置
CN109462491B (zh) 用于测试服务器功能的系统、方法和装置
CN110825461B (zh) 数据处理方法和装置
CN110716809A (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
GR01 Patent grant
GR01 Patent grant