CN116339934A - 任务执行方法、装置、电子设备及介质 - Google Patents

任务执行方法、装置、电子设备及介质 Download PDF

Info

Publication number
CN116339934A
CN116339934A CN202211531627.0A CN202211531627A CN116339934A CN 116339934 A CN116339934 A CN 116339934A CN 202211531627 A CN202211531627 A CN 202211531627A CN 116339934 A CN116339934 A CN 116339934A
Authority
CN
China
Prior art keywords
task
target
pipeline
execution
service engine
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
Application number
CN202211531627.0A
Other languages
English (en)
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 Jingdong Century Trading Co Ltd
Beijing Wodong Tianjun Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Wodong Tianjun Information 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 Jingdong Century Trading Co Ltd, Beijing Wodong Tianjun Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN202211531627.0A priority Critical patent/CN116339934A/zh
Publication of CN116339934A publication Critical patent/CN116339934A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/483Multiproc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/484Precedence
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Abstract

本申请提出了一种任务执行方法、装置、电子设备及介质,其中,方法包括:根据待执行的流水线任务缓存队列,获取当前需要执行的目标流水线任务;确定执行目标流水线任务的目标服务引擎;获取目标流水线任务在目标服务引擎中创建的任务容器组,并基于任务容器组中各任务容器输出的阶段任务结果,得到目标流水线任务的目标任务结果。本申请中,不依赖相关的流水线任务的调度组件和执行组件,在云原生场景下实现了多个流水线任务组成的流水线任务缓存队列中的独立的目标流水线任务的调度和执行,且目标流水线任务的调度部分和执行部分无需耦合,降低了云原生场景下的独立的目标流水线任务的调度和执行的复杂程度。

Description

任务执行方法、装置、电子设备及介质
技术领域
本申请涉及数据处理领域,尤其涉及一种任务执行方法、装置、电子设备及介质。
背景技术
随着技术的发展,可以通过云原生场景下的流水线任务的执行,为用户端提供服务,在云原生场景下进行流水线任务的执行的过程中,流水线任务存在调度的需求。
相关技术中,可以为该场景下的流水线任务的调度搭建一套job进行流水线任务的调度,增加了云原生场景下的流水线任务的调度和执行的复杂程度。
发明内容
本申请旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本申请第一方面提出一种任务执行方法。
本申请第二方面提出一种任务执行装置。
本申请第三方面提出一种电子设备。
本申请第四方面提出一种计算机可读存储介质。
本申请第五方面提出一种计算机程序产品。
本申请第一方面提出一种任务执行方法,所述方法包括:根据待执行的流水线任务缓存队列,获取当前需要执行的目标流水线任务;确定执行所述目标流水线任务的目标服务引擎;获取所述目标流水线任务在所述目标服务引擎中创建的任务容器组,并基于所述任务容器组中各任务容器输出的阶段任务结果,得到所述目标流水线任务的目标任务结果。
另外,本申请第一方面提出的任务执行方法,还可以具有如下附加的技术特征:
根据本申请的一个实施例,所述根据待执行的流水线任务缓存队列,获取当前需要执行的目标流水线任务,包括:从所述流水线任务缓存队列中,获取所述目标流水线任务的任务标识;根据所述任务标识,从数据库中获取所述目标流水线任务的任务信息;将所述任务标识和所述任务信息进行打包以得到所述目标流水线任务。
根据本申请的一个实施例,所述确定执行所述目标流水线任务的目标服务引擎,包括:获取分布式注册中心存储的各服务引擎的引擎信息;根据所述引擎信息确定所述目标流水线任务对应的所述目标服务引擎。
根据本申请的一个实施例,所述根据所述引擎信息确定所述目标流水线任务对应的所述目标服务引擎,包括:根据所述引擎信息,确定各服务引擎的负载信息;根据各服务引擎的负载信息,获取与负载均衡策略匹配的目标负载信息,并根据所述目标负载信息确定所述目标服务引擎。
根据本申请的一个实施例,所述根据所述引擎信息确定所述目标流水线任务对应的所述目标服务引擎之后,包括:获取所述分布式注册服务中心存储的各服务引擎的地址端口;从所述地址端口中,获取所述目标服务引擎的目标地址端口;根据所述目标地址端口将所述目标流水线任务发送至所述目标服务引擎。
根据本申请的一个实施例,所述获取所述目标流水线任务在所述目标服务引擎中的任务容器组,并基于所述任务容器组各自输出的阶段任务结果,得到所述目标流水线任务的目标任务结果,包括:对所述目标流水线任务进行任务分解,获取分解后的多个阶段任务;获取所述目标服务引擎根据所述多个阶段任务构建的所述任务容器组,其中,所述任务容器组中的每个任务容器对应所述多个阶段任务中的至少一个阶段任务;获取所述任务容器组各自输出的所述多个阶段任务各自的阶段任务结果,并根据全部的阶段任务结果,获取所述目标流水线任务的所述目标任务结果。
根据本申请的一个实施例,所述根据待执行的流水线任务缓存队列,获取当前需要执行的目标流水线任务,包括:获取所述流水线任务缓存队列中各流水线任务的执行优先级;根据所述执行优先级,从所述流水线任务缓存队列中获取所述目标流水线任务的任务标识。
根据本申请的一个实施例,所述方法还包括:获取调度服务器序列中的主调度服务器;基于所述主调度服务器从所述流水线任务缓存队列中获取所述目标流水线任务,并确定所述目标流水线任务的所述目标服务引擎。
根据本申请的一个实施例,所述获取调度服务器序列中的主调度服务器,包括:获取分布式注册中心存储的调度服务器序列的调度服务器注册时间序列;根据所述调度服务器注册时间序列,从所述调度服务器序列中确定主调度服务器。
根据本申请的一个实施例,所述方法还包括:响应于所述主调度服务器满足预设的主调度服务器变更条件,从所述调度服务器序列中的非主调度服务器的从调度服务器中确定新的主调度服务器。
根据本申请的一个实施例,所述调度服务器变更条件,包括:所述主调度服务器的执行时长大于或者等于预设的时长阈值,以及所述主调度服务器运行状态异常中的至少一种。
根据本申请的一个实施例,所述方法还包括:响应于所述主调度服务器变更条件为所述主调度服务器运行状态异常,确定新的主调度服务器后,将所述主调度服务器从所述调度服务器序列中删除。
根据本申请的一个实施例,所述根据待执行的流水线任务缓存队列,获取当前需要执行的目标流水线任务之前,包括:获取用户端的服务需求,并根据所述服务需求确定对应的至少一个待执行任务;对所述至少一个待执行任务进行封装,以得到所述服务需求对应的流水线任务,并将所述流水线任务缓存至所述流水线任务缓存序列中。
根据本申请的一个实施例,所述方法还包括:监听所述目标流水线任务在所述目标服务引擎上的执行状态以及执行时长;响应于所述执行状态异常和/或所述执行时长大于或者等于预设的执行时长阈值,从服务引擎列表中非目标服务引擎的剩余服务引擎中,确定新的目标服务引擎,并将所述目标流水线任务发送至新的目标服务引擎。
根据本申请的一个实施例,所述方法还包括:响应于所述执行状态正常、所述执行时长小于预设的执行时长阈值且所述目标流水线任务在所述目标服务引擎上执行结束,将所述目标流水线任务的执行信息从所属的执行状态信息列表中删除。
本申请第二方面提出一种任务执行装置,所述装置包括:获取模块,用于根据待执行的流水线任务缓存队列,获取当前需要执行的目标流水线任务;确定模块,用于确定执行所述目标流水线任务的目标服务引擎;执行模块,用于获取所述目标流水线任务在所述目标服务引擎中创建的任务容器组,并基于所述任务容器组中各任务容器输出的阶段任务结果,得到所述目标流水线任务的目标任务结果。
另外,本申请第二方面提出的任务执行装置,还可以具有如下附加的技术特征:
根据本申请的一个实施例,所述获取模块,还用于:从所述流水线任务缓存队列中,获取所述目标流水线任务的任务标识;根据所述任务标识,从数据库中获取所述目标流水线任务的任务信息;将所述任务标识和所述任务信息进行打包以得到所述目标流水线任务。
根据本申请的一个实施例,所述确定模块,还用于:获取分布式注册中心存储的各服务引擎的引擎信息;根据所述引擎信息确定所述目标流水线任务对应的所述目标服务引擎。
根据本申请的一个实施例,所述确定模块,还用于:根据所述引擎信息,确定各服务引擎的负载信息;根据各服务引擎的负载信息,获取与负载均衡策略匹配的目标负载信息,并根据所述目标负载信息确定所述目标服务引擎。
根据本申请的一个实施例,所述确定模块,还用于:获取所述分布式注册服务中心存储的各服务引擎的地址端口;从所述地址端口中,获取所述目标服务引擎的目标地址端口;根据所述目标地址端口将所述目标流水线任务发送至所述目标服务引擎。
根据本申请的一个实施例,所述执行模块,还用于:对所述目标流水线任务进行任务分解,获取分解后的多个阶段任务;获取所述目标服务引擎根据所述多个阶段任务构建的所述任务容器组,其中,所述任务容器组中的每个任务容器对应所述多个阶段任务中的至少一个阶段任务;获取所述任务容器组各自输出的所述多个阶段任务各自的阶段任务结果,并根据全部的阶段任务结果,获取所述目标流水线任务的所述目标任务结果。
根据本申请的一个实施例,所述获取模块,还用于:获取所述流水线任务缓存队列中各流水线任务的执行优先级;根据所述执行优先级,从所述流水线任务缓存队列中获取所述目标流水线任务的任务标识。
根据本申请的一个实施例,所述装置还包括调度模块,用于:获取调度服务器序列中的主调度服务器;基于所述主调度服务器从所述流水线任务缓存队列中获取所述目标流水线任务,并确定所述目标流水线任务的所述目标服务引擎。
根据本申请的一个实施例,所述调度模块,还用于:获取分布式注册中心存储的调度服务器序列的调度服务器注册时间序列;根据所述调度服务器注册时间序列,从所述调度服务器序列中确定主调度服务器。
根据本申请的一个实施例,所述调度模块,还用于:响应于所述主调度服务器满足预设的主调度服务器变更条件,从所述调度服务器序列中的非主调度服务器的从调度服务器中确定新的主调度服务器。
根据本申请的一个实施例,所述调度服务器变更条件,包括:所述主调度服务器的执行时长大于或者等于预设的时长阈值,以及所述主调度服务器运行状态异常中的至少一种。
根据本申请的一个实施例,所述调度模块,还用于:响应于所述主调度服务器变更条件为所述主调度服务器运行状态异常,确定新的主调度服务器后,将所述主调度服务器从所述调度服务器序列中删除。
根据本申请的一个实施例,所述获取模块,还用于:获取用户端的服务需求,并根据所述服务需求确定对应的至少一个待执行任务;对所述至少一个待执行任务进行封装,以得到所述服务需求对应的流水线任务,并将所述流水线任务缓存至所述流水线任务缓存序列中。
根据本申请的一个实施例,所述确定模块,还用于:监听所述目标流水线任务在所述目标服务引擎上的执行状态以及执行时长;响应于所述执行状态异常和/或所述执行时长大于或者等于预设的执行时长阈值,从服务引擎列表中非目标服务引擎的剩余服务引擎中,确定新的目标服务引擎,并将所述目标流水线任务发送至新的目标服务引擎。
根据本申请的一个实施例,所述执行模块,还用于:响应于所述执行状态正常、所述执行时长小于预设的执行时长阈值且所述目标流水线任务在所述目标服务引擎上执行结束,将所述目标流水线任务的执行信息从所属的执行状态信息列表中删除。
本申请第三方面提出了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述第一方面提出的任务执行方法。
本申请第四方面提出了一种计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行第一方面提出的任务执行方法。
本申请第五方面提出了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据上述第一方面提出的任务执行方法。
本申请提出的任务执行方法和装置,根据待执行的流水线任务缓存队列,确定当前需要执行的目标流水线任务,并确定执行目标流水线任务的目标服务引擎。进一步地,获取目标服务引擎为目标流水线任务创建的任务容器组,并获取各任务容器输出的阶段任务结果,进而得到目标服务引擎执行目标流水线任务的目标任务结果。本申请中,从待执行的流水线任务缓存队列中确定当前需要执行的目标流水线任务,并确定执行目标流水线任务的目标服务引擎,基于目标服务引擎下创建的目标流水线任务的任务容器组,实现目标流水线任务的执行,不依赖相关的流水线任务的调度组件和执行组件,在云原生场景下实现了多个流水线任务组成的流水线任务缓存队列中的独立的目标流水线任务的调度和执行,且目标流水线任务的调度部分和执行部分无需耦合,降低了云原生场景下的独立的目标流水线任务的调度和执行的复杂程度,优化了流水线任务的执行方法,提高了云原生场景下的流水线任务执行的稳定性。
应当理解,本申请所描述的内容并非旨在标识本申请的实施例的关键或重要特征,也不用于限制本申请的范围。本申请的其它特征将通过以下的说明书而变得容易理解。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本申请一实施例的任务执行方法的流程示意图;
图2为本申请另一实施例的任务执行方法的流程示意图;
图3为本申请另一实施例的任务执行方法的流程示意图;
图4为本申请另一实施例的任务执行方法的流程示意图;
图5为本申请另一实施例的任务执行方法的流程示意图;
图6为本申请另一实施例的任务执行方法的流程示意图;
图7为本申请另一实施例的任务执行方法的流程示意图;
图8为本申请一实施例的任务执行装置的结构示意图;
图9为本申请一实施例的电子设备的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。
下面参照附图描述本申请实施例的任务执行方法、装置、电子设备及介质。
图1为本申请一实施例的数据存储方法的流程示意图,如图1所示,该方法包括:
S101,根据待执行的流水线任务缓存队列,获取当前需要执行的目标流水线任务。
实现中,可以获取用户的需求,并根据获取到的需求确定满足该需求需要执行的任务,其中,当获取到的满足该需求需要执行的任务的数量为多个时,可以将该部分多个任务进行封装,进而得到由该部分任务组成的流水线任务,基于对该流水线任务的执行,实现对用户的需求的满足。
可选地,系统中可能存在多个流水线任务,在该场景下,可以将该部分流水线任务放置于待执行队列中,基于各流水线任务的顺序逐个执行队列中的流水线任务,其中,可以将该待执行队列标识为待执行的流水线任务缓存队列。
在一些实现中,可以将待执行的流水线任务缓存队列放置于预设的空间,如图2所示,可以将待执行的流水线任务缓存队列放置于如图2所示的云原生场景中的缓存(Redis)数据库中。
进一步地,从图2所示的置于Redis数据库中的待执行的流水线任务缓存队列中,确定当前需要执行的流水线任务,并将其确定为图2所示的云原生场景下的目标流水线任务。
S102,确定执行目标流水线任务的目标服务引擎。
本申请实施例中,可以基于服务引擎执行目标流水线任务,进而得到目标流水线任务的执行结果。
在一些实现中,系统中可能存在多个服务引擎,其中,可以根据需要执行的目标流水线任务从该多个服务引擎中确定可以执行目标流水线任务的服务引擎,并将其确定为目标流水线任务的目标服务引擎。
可选地,可以从图2所示的云原生场景中的多个服务引擎中,确定执行目标流水线任务的服务引擎,作为执行目标流水线任务的目标服务引擎。
S103,获取目标流水线任务在目标服务引擎中创建的任务容器组,并基于任务容器组中各任务容器输出的阶段任务结果,得到目标流水线任务的目标任务结果。
本申请实施例中,目标服务引擎为了能够为当前需要执行的目标流水线任务提供任务的执行环境,可以在目标服务引擎中为目标流水线任务构建对应的任务容器组,并在构建的任务容器组中进行目标流水线任务的执行,进而得到目标服务引擎对目标流水线任务的执行结果。
其中,可以将目标服务引擎构建的任务容器组中执行目标流水线任务所得到的执行结果,确定为目标流水线任务的目标任务结果。
在图2所示的云原生场景下,可以获取从多个服务引擎中确定的目标服务引擎为目标流水线任务创建的任务容器组,并获取任务容器组中的各任务容器输出的执行结果。
其中,可以将目标服务引擎中的任务容器组中的各任务容器输出的结果,确定为任务容器组执行目标流水线任务所得到的阶段任务结果。
进一步地,将任务容器组中各任务容器输出的全部的阶段任务结果进行整合,并将整合得到的结果确定为目标服务引擎执行目标流水线任务所得到的目标任务结果。
本申请提出的任务执行方法,根据待执行的流水线任务缓存队列,确定当前需要执行的目标流水线任务,并确定执行目标流水线任务的目标服务引擎。进一步地,获取目标服务引擎为目标流水线任务创建的任务容器组,并获取各任务容器输出的阶段任务结果,进而得到目标服务引擎执行目标流水线任务的目标任务结果。本申请中,从待执行的流水线任务缓存队列中确定当前需要执行的目标流水线任务,并确定执行目标流水线任务的目标服务引擎,基于目标服务引擎下创建的目标流水线任务的任务容器组,实现目标流水线任务的执行,不依赖相关的流水线任务的调度组件和执行组件,在云原生场景下实现了多个流水线任务组成的流水线任务缓存队列中的独立的目标流水线任务的调度和执行,且目标流水线任务的调度部分和执行部分无需耦合,降低了云原生场景下的独立的目标流水线任务的调度和执行的复杂程度,优化了流水线任务的执行方法,提高了云原生场景下的流水线任务执行的稳定性。
上述实施例中,关于目标流水线任务的获取以及目标服务引擎的确定等相关内容,可结合图3进一步理解,图3为本申请另一实施例的任务执行方法的流程示意图,如图3所示,该方法包括:
S301,从流水线任务缓存队列中,获取目标流水线任务的任务标识。
本申请实施例中,待执行的流水线任务的缓存队列中,可以不对流水线任务的全部信息进行缓存,其中,可以在待执行的流水线任务缓存队列中,对各流水线任务的标识信息进行缓存。
当获取其中某一个流水线任务作为当前需要执行的目标流水线任务时,可以从待执行的流水线任务缓存队列中获取目标流水任务的标识信息,并将其确定为目标流水线任务的任务标识。
如图4所示,图4中的Redis数据库中的流水线任务缓存队列中,可以缓存每个待执行的流水线任务的标识信息,当需要从中选择确定目标流水线任务时,可以从Redis数据库中获取目标流水线任务的任务标识。
S302,根据任务标识,从数据库中获取目标流水线任务的任务信息。
可选地,待执行的流水线任务缓存队列中的各待执行的流水线任务的相关任务信息,可以存储于预设的数据库中。
如图4所示,可以将待执行的流水线任务的相关任务信息,存储于图4所示的数据库中。
在该场景下,获取目标流水线任务的任务标识后,可以从存储有各待执行的流水线任务的相关任务信息的数据库中,获取与任务标识相关联的任务信息,并将该部分任务信息确定为目标流水线任务的任务信息。
如图4所示,可以从图4中的数据库中获取与目标流水线任务的任务标识相关联的任务信息,并将其作为目标流水线任务的任务信息。
需要说明的是,图4所示的云原生场景下的数据库可以为关系型数据库管理系统对应的数据库,比如mysql数据库,也可以为其他可以存储流水线任务的任务信息的数据库,此处不做具体限定。
S303,将任务标识和任务信息进行打包以得到目标流水线任务。
本申请实施例中,从待执行的流水线任务缓存队列中获取到的任务标识,为目标流水线任务的标识信息,从数据库中获取到的任务信息,为目标流水线任务的相关任务信息。
可以理解为,基于获取到的任务标识以及任务信息,可以得到目标流水线任务的全部信息,在该场景下,可以将获取到的任务标识与任务信息进行整合打包,进而根据整合打包后得到的信息,获取当前需要执行的目标流水线任务。
S304,获取分布式注册中心存储的各服务引擎的引擎信息。
在一些实现中,待执行的流水线任务缓存队列中可以存在多个待执行的流水线任务,在该场景下,可以存在多个服务引擎,从而实现对多个待执行的流水线任务的执行。
本申请实施例中,确定当前需要执行的目标流水线任务后,需要为其确定对应的目标服务引擎,在该场景下,可以分别获取多个服务引擎中的各服务引擎的相关信息,并基于获取到的相关信息,从多个服务引擎中确定执行目标流水线任务的目标服务引擎。
可选地,多个服务引擎中的各服务引擎可以在分布式注册中心进行注册,从而将多个服务引擎中的各服务引擎的相关信息存储于分布式注册中心。
如图4所示,多个服务引擎中的各服务引擎可以在图4所示的分布式注册中心(etcd)进行注册,并将多个服务引擎中的各服务引擎的相关信息存储于etcd中。
可选地,可以将多个服务引擎中的各服务引擎存储于etcd中的相关信息,确定为各服务引擎的引擎信息。
可选地,可以基于分布式注册中心的数据交互端口,从分布式注册中心获取各服务引擎的引擎信息。如图4所示,可以基于图4示出的etcd的数据交互端口,从etcd中获取各服务引擎的引擎信息。
S305,根据引擎信息确定目标流水线任务对应的目标服务引擎。
可选地,可以获取分布式注册中心存储的引擎信息,并根据引擎信息,确定各服务引擎的负载信息。
本申请实施例中,可以根据服务引擎的引擎信息,确定服务引擎的负载信息,如图4所示,可以从etcd中存储的各服务引擎的引擎信息中,确定图4所示的多个服务引擎的负载信息。
可选地,根据各服务引擎的负载信息,获取与负载均衡策略匹配的目标负载信息,并根据目标负载信息确定目标服务引擎。
本申请实施例中,获取各服务引擎的负载信息后,可以基于目标流水线任务的执行所需的负载,从各服务引擎的负载信息中,选择可以负载目标流水线任务执行的服务引擎,作为目标流水线任务的目标服务引擎。
在一些实现中,可以基于负载均衡策略对各服务引擎的负载信息进行筛选和判断,获取其中符合负载均衡策略的负载信息,作为与负载均衡策略匹配的目标负载信息,并将目标负载信息对应的服务引擎,确定为执行目标流水线任务的目标服务引擎。
如图4所示,可以基于负载均衡策略对从etcd中获取到的各服务引擎的负载信息中进行选择和判断,获取其中符合负载均衡策略的负载信息,作为与负载均衡策略匹配的目标负载信息,进而从多个服务服务引擎中确定目标负载信息对应的服务引擎,并将其确定为执行目标流水线任务的目标服务引擎。
S306,获取分布式注册服务中心存储的各服务引擎的地址端口。
本申请实施例中,可以通过服务引擎的相关地址信息,将目标流水线任务发送给目标服务引擎。
可选地,可以从分布式注册中心存储的各服务引擎的相关信息中获取各服务引擎的相关地址信息。其中,可以从分布式注册中心存储的各服务引擎的相关信息中,获取各服务引擎的地址端口。
如图4所示,可以从etcd存储的各服务引擎的相关信息中,获取各服务引擎的地址端口。
S307,从地址端口中,获取目标服务引擎的目标地址端口。
可选地,分布式注册中心在存储各服务引擎的端口列表时,可以在各服务引擎以及各服务引擎的端口列表之间构建关联关系。
本申请实施例中,可以根据各服务引擎与各服务引擎的端口列表之间的关联关系,从地址端口中确定目标服务引擎对应的地址端口,并将其确定为目标服务引擎的目标地址端口。
如图4所示,可以从etcd中获取各服务引擎的地址端口,进而确定目标服务引擎的目标地址端口。其中,各服务引擎的地址端口可以包括各服务引擎的网际互连协议地址(Internet Protocol,IP)以及数据交互端口。
S308,根据目标地址端口将目标流水线任务发送至目标服务引擎。
本申请实施例中,确定目标服务引擎的目标地址端口后,可以基于确定的目标地址端口,目标流水线任务可以传输至目标服务引擎,进而使得目标流水线任务得以执行。
如图4所示,从多个服务引擎的端口列表中确定目标服务引擎的目标端口地址后,目标流水线任务即可传输至目标服务引擎。
本申请提出的任务执行方法,获取流水线任务缓存队列中的目标流水线任务的任务标识,进而从数据库中获取目标流水线任务的任务信息,进而将任务标识和任务标识,获取目标流水线任务。相应地,获取分布式注册中心存储的各服务引擎的引擎信息,以确定执行目标流水线任务的目标服务引擎,并基于各服务引擎的端口列表确定目标服务引擎的目标端口列表,进而将目标流水线任务发送至目标服务引擎。本申请中,不依赖相关的流水线任务的调度组件和执行组件,在云原生场景下实现了多个流水线任务组成的流水线任务缓存队列中的独立的目标流水线任务的调度和执行,且目标流水线任务的调度部分和执行部分无需耦合,降低了云原生场景下的独立的目标流水线任务的调度和执行的复杂程度,优化了流水线任务的执行方法,提高了云原生场景下的流水线任务执行的稳定性。
上述实施例中,关于目标流水线任务的执行,可结合图5进一步理解,图5为本申请另一实施例的任务执行方法的流程示意图,如图5所示,该方法包括:
S501,根据待执行的流水线任务缓存队列,获取当前需要执行的目标流水线任务。
可选地,可以获取流水线任务缓存队列中各流水线任务的执行优先级。
其中,可以根据待执行的流水线任务缓存队列中的各流水线任务的执行紧急程度,获取待执行的流水线任务缓存队列中的各流水线任务的执行优先级。
进一步地,根据执行优先级,从流水线任务缓存队列中获取目标流水线任务的任务标识。
其中,可以对待执行的流水线任务缓存队列中的各流水线任务的执行优先级由高至低进行排序,并将其中排序首位的流水线任务确定为挡圈需要执行的目标流水线任务。
可选地,关于待执行的流水线任务缓存队列的获取过程,可结合下述内容理解:
可选地,可以获取用户端的服务需求,并根据服务需求确定对应的至少一个待执行任务。
如图2所示,可以获取用户端的服务需求,并基于用户端发送的服务需求,确定满足该服务需求需要执行的至少一个任务,作为服务需求对应的至少一个待执行任务。
可选地,可以对至少一个待执行任务进行封装,以得到服务需求对应的流水线任务,并将流水线任务缓存至流水线任务缓存序列中。
如图2所示,可以对获取到的至少一个待执行任务进行封装,从而得到用户端发送的服务需求对应的流水线任务,进而将获取到的用户需求对应的流水线任务放置于Redis数据库中的待执行的流水线任务缓存序列中。
S502,对目标流水线任务进行任务分解,获取分解后的多个阶段任务。
本申请实施例中,目标流水线任务可以包括多个待执行任务,可选地,可以根据目标流水线任务中包括的多个待执行任务的执行顺序,对目标流水线任务进行任务分解。
进一步地,获取目标流水线任务分解后的任务,并将其确定为目标流水线任务分解后的多个阶段任务。
S503,获取目标服务引擎根据多个阶段任务构建的任务容器组,其中,任务容器组中的每个任务容器对应多个阶段任务中的至少一个阶段任务。
在云原生场景下,目标服务引擎为了实现对目标流水线任务的执行,可以为目标流水线任务创建对应的任务容器组,并在创建的任务容器组中执行目标流水线任务。
本申请实施例中,可以获取目标流水线任务分解后的多个阶段任务,并为获取到的多个阶段任务创建对应的任务容器,进而得到目标流水线任务在目标服务引擎中的任务容器组。
需要说明的是,任务容器组中的每个任务容器对应多个阶段任务中的至少一个阶段任务,可以理解为,目标服务引擎可以为多个阶段任务中的单独的一个阶段任务创建单独的任务容器,也可以为多个阶段任务中可以在同一容器中执行的两个以上的阶段任务创建对应的任务容器,此处不做具体限定。
S504,获取任务容器组各自输出的多个阶段任务各自的阶段任务结果,并根据全部的阶段任务结果,获取目标流水线任务的目标任务结果。
本申请实施例中,可以分别获取目标服务引擎为目标流水线任务创建的任务容器组的各任务容器的输出结果,进而得到多个阶段任务各自的阶段任务结果。
进一步地,将获取全部的任务容器输出的阶段任务结果进行整合,从而得到目标流水线任务在目标服务引擎中执行所得到的结果,作为目标流水线任务的目标任务结果。
需要说明的是,目标服务引擎在执行目标流水线任务时,存在可能出现执行异常的情况,在该场景下,可以为目标流水线任务确定新的目标服务引擎。
可选地,可以监听目标流水线任务在目标服务引擎上的执行状态以及执行时长。
本申请实施例中,可以在目标服务引擎执行目标流水线任务的过程中,对目标流水线任务在目标服务引擎上的执行状态以及执行时长进行监听,进而对目标流水线任务在目标服务引擎上的执行过程是否出现异常进行判断。
需要说明的是,目标流水线任务在目标服务引擎上的执行过程中,可以对目标流水线任务在目标服务引擎上的执行状态以及执行时长进行监听,从而对目标流水线任务在目标服务引擎上的执行过程是否出现异常进行监测。
可选地,响应于执行状态异常和/或执行时长大于或者等于预设的执行时长阈值,从服务引擎列表中非目标服务引擎的剩余服务引擎中,确定新的目标服务引擎,并将目标流水线任务发送至新的目标服务引擎。
本申请实施例中,可以为目标流水线任务的执行时长设定对应的执行时长阈值,当监听到的目标流水线任务的执行时长大于或者等于预设的执行时长阈值时,可以确定,目标流水线任务在目标服务引擎上的执行过程出现了异常。
相应地,还可以对监听到的目标流水线任务在目标服务引擎上的执行状态进行分析,当分析识别到目标流水线任务在目标服务引擎上的执行状态出现异常时,可以确定,目标流水线任务在目标服务引擎上的执行过程出现了异常。
在该场景下,可以获取多个服务引擎中非当前的目标服务引擎的剩余服务引擎,并从中为目标流水线任务确定新的目标服务引擎,并将目标流水线服务发送至新的目标服务引擎。
可选地,响应于执行状态正常、执行时长小于预设的执行时长阈值且目标流水线任务在目标服务引擎上执行结束,将目标流水线任务的执行信息从所属的执行状态信息列表中删除。
本申请实施例中,当监听到目标流水线任务在目标服务引擎上的执行状态正常时,和/或,当监听到目标流水线任务的执行时长小于预设的执行时长阈值且目标流水线任务在目标服务引擎上执行结束时,可以确定,目标流水线任务在目标服务引擎上的执行过程正常。
在图2所示的云原生场景下,Redis数据库中还包括正在执行的目标流水线任务的执行状态信息列表,列表中存储有正在执行的目标流水线任务的执行状态的相关信息。
在该场景下,如图2所示,可以将目标流水线任务在目标服务引擎上的执行状态传输至图2所示的数据库中,并通过图2所示的数据库中存储的目标流水线任务在目标服务引擎上的执行状态,对Redis数据库中的执行状态信息列表中存储的目标流水线任务的执行状态的相关执行信息删除。
本申请提出的任务执行方法,对目标流水线任务进行分解得到多个阶段任务,获取目标服务引擎为多个阶段任务创建的任务容器组,并获取任务容器组各自输出的多个阶段任务各自的阶段任务结果,进而得到目标流水线任务的目标任务结果。本申请中,不依赖相关的流水线任务的调度组件和执行组件,在云原生场景下实现了多个流水线任务组成的流水线任务缓存队列中的独立的目标流水线任务的调度和执行,且目标流水线任务的调度部分和执行部分无需耦合,降低了云原生场景下的独立的目标流水线任务的调度和执行的复杂程度,优化了流水线任务的执行方法,基于新的目标服务引擎的选择,优化了云原生场景下目标流水线任务执行的稳定性,且降低了由于目标流水线服务在目标服务引擎上的执行异常所导致的目标流水线服务出现丢失等相关异常情况的概率,进而提高了云原生场景下的流水线任务执行的稳定性。
为了实现上述实施例中提出的任务执行方法,可以获取调度服务器序列进而确定调度服务器序列中的主调度服务器,其中,关于主调度服务器的获取可结合图6理解,图6为本申请另一实施例的任务执行方法的流程示意图,如图6所示,该方法包括:
S601,获取调度服务器序列中的主调度服务器。
在一些实现中,存在调度服务器序列,可以从中选择一个作为主调度服务器。
其中,可以获取分布式注册中心存储的调度服务器序列的调度服务器注册时间序列。
本申请实施例中,在从调度服务器序列中获取主调度服务器之前,如图2所示,调度服务器序列可以在分布式注册中心进行注册。在该场景下,分布式注册中心存储有调度服务器序列中的各调度服务器在分布式注册中心的注册时间。
如图2所示,可以获取etcd中存储的调度服务序列中各调度服务器的注册时间组成的调度服务器注册时间序列。
可选地,根据调度服务器注册时间序列,从调度服务器序列中确定主调度服务器。
其中,可以从调度服务器注册时间序列中获取注册时间最早的调度服务器,并将其确定为调度服务器序列中的主调度服务器。
如图7所示,图7示出的分布式注册服务器etcd在每个注册轮次中,可以接受一个调度服务器进行注册行为,在该场景下,可以将调度服务器序列中首个注册完成的调度服务器确定为调度服务器序列中的主调度服务器。
相应地,可以将图7所示的调度服务器序列中的非主调度服务器的剩余调度服务器,确定为该主调度服务器对应的从调度服务器。
可选地,主调度服务器存在可能发生变更,其中,响应于主调度服务器满足预设的主调度服务器变更条件,从调度服务器序列中的非主调度服务器的从调度服务器中确定新的主调度服务器。
本申请实施例中,可以对主调度服务器的相关状态进行监听,并将其与预设的主调度服务器变更条件进行对比,当监听到的相关状态满足预设的主调度服务器变更条件时,可以从调度服务器序列中的非主调度服务器的从调度服务器中,确定新的主调度服务器。
需要说明的是,调度服务器变更条件,包括:主调度服务器的执行时长大于或者等于预设的时长阈值,以及主调度服务器运行状态异常中的至少一种。
可选地,主调度服务器存在可能出现运行异常,其中,响应于主调度服务器变更条件为主调度服务器运行状态异常,确定新的主调度服务器后,将主调度服务器从调度服务器序列中删除。
本申请实施例中,当主调度服务器的运行过程出现异常时,可以从调度服务器序列中的非主调度服务器的从调度服务中确定新的主调度服务器。
在该场景下,还可以将运行过程出现异常的旧的主调度服务器的相关信息从当前的调度服务器序列中删除。
S602,基于主调度服务器从流水线任务缓存队列中获取目标流水线任务,并确定目标流水线任务的目标服务引擎。
本申请实施例中,可以基于图2中的主调度服务器的运行获取目标流水线任务,以及目标流水线任务的执行所需的多个服务引擎中的目标服务引擎。
其中,还可以基于图4所示的主调度服务器的运行,从Redis数据库中获取目标流水线任务的任务标识以及从数据库中获取目标流水线任务的任务信息,进而对任务标识和任务信息进行整合打包,从而得到当前需要执行的目标流水线任务,进而从图4所示的多个服务引擎中确定执行目标流水线任务的目标服务引擎。
进一步地,基于图2所示的主调度服务器从分布式注册中心获取的地址端口中确定目标服务引擎的目标地址端口,并基于目标地址端口将目标流水线任务发送至目标服务引擎。
如图2所示,还可以基于图2中的主调度服务器对目标流水线任务在目标服务引擎上的执行状态以及执行时长进行监听,并将监听得到的目标流水线任务的执行状态传输至图2所示的数据库中,进而实现图2所示的Redis数据库中的执行状态信息列表中存储的目标流水线任务的相关执行信息进行更新和/或删除。
相应地,还可以基于图2所示的主调度服务器监听目标流水线任务在目标服务引擎上的执行状态以及执行时长,并基于监听到的执行状态以及执行时长判断目标流水线任务在目标服务引擎上的执行过程是否异常,并在确定出现异常的场景下,从多个服务引擎中的非目标服务引擎的剩余服务引擎中,为目标流水线任务选择新的目标服务引擎,并将目标流水线任务发送至新的目标服务引擎。
需要说明的是,基于主调度服务器对待执行的流水线任务缓存队列中的各流水线任务进行调度的过程中,主调度服务器处于调度状态。
当待执行的流水线任务缓存队列中全部的流水线任务均被发送至各自对应的目标服务引擎后,可以确定,当前待执行的流水线任务缓存队列中为空,在该场景下,主调度服务器可以从调度状态中退出,直至待执行的流水线任务缓存队列中存在新的需要被调度的待执行的流水线任务。
本申请提出的任务执行方法,获取调度服务器序列的调度服务器注册时间序列,进而从调度服务器序列中确定主调度服务器,并在主调度服务器满足预设的主调度服务器变更条件的场景下,从调度服务器序列中的从调度服务器中确定新的主调度服务器。本申请中,不依赖相关的流水线任务的调度组件,基于主调度服务器在云原生场景下实现了多个流水线任务组成的流水线任务缓存队列中的独立的目标流水线任务的调度,且主调度服务器与执行目标流水线任务的目标服务引擎无需耦合,降低了云原生场景下的独立的目标流水线任务的调度和执行的复杂程度,优化了流水线任务的执行方法,提高了云原生场景下的流水线任务执行的稳定性。
与上述几种实施例提出的任务执行方法相对应,本申请的一个实施例还提出了一种任务执行装置,由于本申请实施例提出的任务执行装置与上述几种实施例提出的任务执行方法相对应,因此上述任务执行方法的实施方式也适用于本申请实施例提出的任务执行装置,在下述实施例中不再详细描述。
图8为本申请一实施例的任务执行装置的结构示意图,如图8所示,任务执行装置800,包括获取模块81、确定模块82、执行模块83和调度模块84,其中:
获取模块81,用于根据待执行的流水线任务缓存队列,获取当前需要执行的目标流水线任务;
确定模块82,用于确定执行目标流水线任务的目标服务引擎;
执行模块83,用于获取目标流水线任务在目标服务引擎中创建的任务容器组,并基于任务容器组中各任务容器输出的阶段任务结果,得到目标流水线任务的目标任务结果。
本申请实施例中,获取模块81,还用于:从流水线任务缓存队列中,获取目标流水线任务的任务标识;根据任务标识,从数据库中获取目标流水线任务的任务信息;将任务标识和任务信息进行打包以得到目标流水线任务。
本申请实施例中,确定模块82,还用于:获取分布式注册中心存储的各服务引擎的引擎信息;根据引擎信息确定目标流水线任务对应的目标服务引擎。
本申请实施例中,确定模块82,还用于:根据引擎信息,确定各服务引擎的负载信息;根据各服务引擎的负载信息,获取与负载均衡策略匹配的目标负载信息,并根据目标负载信息确定目标服务引擎。
本申请实施例中,确定模块82,还用于:获取分布式注册服务中心存储的各服务引擎的地址端口;从地址端口中,获取目标服务引擎的目标地址端口;根据目标地址端口将目标流水线任务发送至目标服务引擎。
本申请实施例中,执行模块83,还用于:对目标流水线任务进行任务分解,获取分解后的多个阶段任务;获取目标服务引擎根据多个阶段任务构建的任务容器组,其中,任务容器组中的每个任务容器对应多个阶段任务中的至少一个阶段任务;获取任务容器组各自输出的多个阶段任务各自的阶段任务结果,并根据全部的阶段任务结果,获取目标流水线任务的目标任务结果。
本申请实施例中,获取模块81,还用于:获取流水线任务缓存队列中各流水线任务的执行优先级;根据执行优先级,从流水线任务缓存队列中获取目标流水线任务的任务标识。
本申请实施例中,装置还包括调度模块84,用于:获取调度服务器序列中的主调度服务器;基于主调度服务器从流水线任务缓存队列中获取目标流水线任务,并确定目标流水线任务的目标服务引擎。
本申请实施例中,调度模块84,还用于:获取分布式注册中心存储的调度服务器序列的调度服务器注册时间序列;根据调度服务器注册时间序列,从调度服务器序列中确定主调度服务器。
本申请实施例中,调度模块84,还用于:响应于主调度服务器满足预设的主调度服务器变更条件,从调度服务器序列中的非主调度服务器的从调度服务器中确定新的主调度服务器。
本申请实施例中,调度服务器变更条件,包括:主调度服务器的执行时长大于或者等于预设的时长阈值,以及主调度服务器运行状态异常中的至少一种。
本申请实施例中,调度模块84,还用于:响应于主调度服务器变更条件为主调度服务器运行状态异常,确定新的主调度服务器后,将主调度服务器从调度服务器序列中删除。
本申请实施例中,获取模块81,还用于:获取用户端的服务需求,并根据服务需求确定对应的至少一个待执行任务;对至少一个待执行任务进行封装,以得到服务需求对应的流水线任务,并将流水线任务缓存至流水线任务缓存序列中。
本申请实施例中,确定模块82,还用于:监听目标流水线任务在目标服务引擎上的执行状态以及执行时长;响应于执行状态异常和/或执行时长大于或者等于预设的执行时长阈值,从服务引擎列表中非目标服务引擎的剩余服务引擎中,确定新的目标服务引擎,并将目标流水线任务发送至新的目标服务引擎。
本申请实施例中,执行模块83,还用于:响应于执行状态正常、执行时长小于预设的执行时长阈值且目标流水线任务在目标服务引擎上执行结束,将目标流水线任务的执行信息从所属的执行状态信息列表中删除。
本申请提出的任务执行装置,根据待执行的流水线任务缓存队列,确定当前需要执行的目标流水线任务,并确定执行目标流水线任务的目标服务引擎。进一步地,获取目标服务引擎为目标流水线任务创建的任务容器组,并获取各任务容器输出的阶段任务结果,进而得到目标服务引擎执行目标流水线任务的目标任务结果。本申请中,从待执行的流水线任务缓存队列中确定当前需要执行的目标流水线任务,并确定执行目标流水线任务的目标服务引擎,基于目标服务引擎下创建的目标流水线任务的任务容器组,实现目标流水线任务的执行,不依赖相关的流水线任务的调度组件和执行组件,在云原生场景下实现了多个流水线任务组成的流水线任务缓存队列中的独立的目标流水线任务的调度和执行,且目标流水线任务的调度部分和执行部分无需耦合,降低了云原生场景下的独立的目标流水线任务的调度和执行的复杂程度,优化了流水线任务的执行方法,提高了云原生场景下的流水线任务执行的稳定性。
为达到上述实施例,本申请还提出了一种电子设备、一种计算机可读存储介质和一种计算机程序产品。
图9为本申请一实施例的电子设备的结构示意图。如图9所示,设备900包括存储器91、处理器92及存储在存储91上并可在处理器92上运行的计算机程序,处理器92执行程序指令时,实现上述实施例提出的任务执行方法。
本申请提出的电子设备,根据待执行的流水线任务缓存队列,确定当前需要执行的目标流水线任务,并确定执行目标流水线任务的目标服务引擎。进一步地,获取目标服务引擎为目标流水线任务创建的任务容器组,并获取各任务容器输出的阶段任务结果,进而得到目标服务引擎执行目标流水线任务的目标任务结果。本申请中,从待执行的流水线任务缓存队列中确定当前需要执行的目标流水线任务,并确定执行目标流水线任务的目标服务引擎,基于目标服务引擎下创建的目标流水线任务的任务容器组,实现目标流水线任务的执行,不依赖相关的流水线任务的调度组件和执行组件,在云原生场景下实现了多个流水线任务组成的流水线任务缓存队列中的独立的目标流水线任务的调度和执行,且目标流水线任务的调度部分和执行部分无需耦合,降低了云原生场景下的独立的目标流水线任务的调度和执行的复杂程度,优化了流水线任务的执行方法,提高了云原生场景下的流水线任务执行的稳定性。
本申请实施例提出的一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时,实现上述实施例提出的任务执行方法。
本申请实施例的计算机可读存储介质,根据待执行的流水线任务缓存队列,确定当前需要执行的目标流水线任务,并确定执行目标流水线任务的目标服务引擎。进一步地,获取目标服务引擎为目标流水线任务创建的任务容器组,并获取各任务容器输出的阶段任务结果,进而得到目标服务引擎执行目标流水线任务的目标任务结果。本申请中,从待执行的流水线任务缓存队列中确定当前需要执行的目标流水线任务,并确定执行目标流水线任务的目标服务引擎,基于目标服务引擎下创建的目标流水线任务的任务容器组,实现目标流水线任务的执行,不依赖相关的流水线任务的调度组件和执行组件,在云原生场景下实现了多个流水线任务组成的流水线任务缓存队列中的独立的目标流水线任务的调度和执行,且目标流水线任务的调度部分和执行部分无需耦合,降低了云原生场景下的独立的目标流水线任务的调度和执行的复杂程度,优化了流水线任务的执行方法,提高了云原生场景下的流水线任务执行的稳定性。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以
软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读5取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,0本申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能
够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。

Claims (19)

1.一种任务执行方法,其特征在于,所述方法包括:
根据待执行的流水线任务缓存队列,获取当前需要执行的目标流水线任务;
确定执行所述目标流水线任务的目标服务引擎;
获取所述目标流水线任务在所述目标服务引擎中创建的任务容器组,并基于所述任务容器组中各任务容器输出的阶段任务结果,得到所述目标流水线任务的目标任务结果。
2.根据权利要求1所述的方法,其特征在于,所述根据待执行的流水线任务缓存队列,获取当前需要执行的目标流水线任务,包括:
从所述流水线任务缓存队列中,获取所述目标流水线任务的任务标识;
根据所述任务标识,从数据库中获取所述目标流水线任务的任务信息;
将所述任务标识和所述任务信息进行打包以得到所述目标流水线任务。
3.根据权利要求1所述的方法,其特征在于,所述确定执行所述目标流水线任务的目标服务引擎,包括:
获取分布式注册中心存储的各服务引擎的引擎信息;
根据所述引擎信息确定所述目标流水线任务对应的所述目标服务引擎。
4.根据权利要求3所述的方法,其特征在于,所述根据所述引擎信息确定所述目标流水线任务对应的所述目标服务引擎,包括:
根据所述引擎信息,确定各服务引擎的负载信息;
根据各服务引擎的负载信息,获取与负载均衡策略匹配的目标负载信息,并根据所述目标负载信息确定所述目标服务引擎。
5.根据权利要求3所述的方法,其特征在于,所述根据所述引擎信息确定所述目标流水线任务对应的所述目标服务引擎之后,包括:
获取所述分布式注册服务中心存储的各服务引擎的地址端口;
从所述地址端口中,获取所述目标服务引擎的目标地址端口;
根据所述目标地址端口将所述目标流水线任务发送至所述目标服务引擎。
6.根据权利要求1所述的方法,其特征在于,所述获取所述目标流水线任务在所述目标服务引擎中的任务容器组,并基于所述任务容器组各自输出的阶段任务结果,得到所述目标流水线任务的目标任务结果,包括:
对所述目标流水线任务进行任务分解,获取分解后的多个阶段任务;
获取所述目标服务引擎根据所述多个阶段任务构建的所述任务容器组,其中,所述任务容器组中的每个任务容器对应所述多个阶段任务中的至少一个阶段任务;
获取所述任务容器组各自输出的所述多个阶段任务各自的阶段任务结果,并根据全部的阶段任务结果,获取所述目标流水线任务的所述目标任务结果。
7.根据权利要求2所述的方法,其特征在于,所述根据待执行的流水线任务缓存队列,获取当前需要执行的目标流水线任务,包括:
获取所述流水线任务缓存队列中各流水线任务的执行优先级;
根据所述执行优先级,从所述流水线任务缓存队列中获取所述目标流水线任务的任务标识。
8.根据权利要求1-7中任一项所述的方法,其特征在于,所述方法还包括:
获取调度服务器序列中的主调度服务器;
基于所述主调度服务器从所述流水线任务缓存队列中获取所述目标流水线任务,并确定所述目标流水线任务的所述目标服务引擎。
9.根据权利要求8所述的方法,其特征在于,所述获取调度服务器序列中的主调度服务器,包括:
获取分布式注册中心存储的调度服务器序列的调度服务器注册时间序列;
根据所述调度服务器注册时间序列,从所述调度服务器序列中确定主调度服务器。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
响应于所述主调度服务器满足预设的主调度服务器变更条件,从所述调度服务器序列中的非主调度服务器的从调度服务器中确定新的主调度服务器。
11.根据权利要求10所述的方法,其特征在于,所述调度服务器变更条件,包括:所述主调度服务器的执行时长大于或者等于预设的时长阈值,以及所述主调度服务器运行状态异常中的至少一种。
12.根据权利要求11所述的方法,其特征在于,所述方法还包括:
响应于所述主调度服务器变更条件为所述主调度服务器运行状态异常,确定新的主调度服务器后,将所述主调度服务器从所述调度服务器序列中删除。
13.根据权利要求1-7中任一项所述的方法,其特征在于,所述根据待执行的流水线任务缓存队列,获取当前需要执行的目标流水线任务之前,包括:
获取用户端的服务需求,并根据所述服务需求确定对应的至少一个待执行任务;
对所述至少一个待执行任务进行封装,以得到所述服务需求对应的流水线任务,并将所述流水线任务缓存至所述流水线任务缓存序列中。
14.根据权利要求1-7中任一项所述的方法,其特征在于,所述方法还包括:
监听所述目标流水线任务在所述目标服务引擎上的执行状态以及执行时长;
响应于所述执行状态异常和/或所述执行时长大于或者等于预设的执行时长阈值,从服务引擎列表中非目标服务引擎的剩余服务引擎中,确定新的目标服务引擎,并将所述目标流水线任务发送至新的目标服务引擎。
15.根据权利要求14所述的方法,其特征在于,所述方法还包括:
响应于所述执行状态正常、所述执行时长小于预设的执行时长阈值且所述目标流水线任务在所述目标服务引擎上执行结束,将所述目标流水线任务的执行信息从所属的执行状态信息列表中删除。
16.一种任务执行装置,其特征在于,所述装置包括:
获取模块,用于根据待执行的流水线任务缓存队列,获取当前需要执行的目标流水线任务;
确定模块,用于确定执行所述目标流水线任务的目标服务引擎;
执行模块,用于获取所述目标流水线任务在所述目标服务引擎中创建的任务容器组,并基于所述任务容器组中各任务容器输出的阶段任务结果,得到所述目标流水线任务的目标任务结果。
17.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-15中任一项所述的方法。
18.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-15中任一项所述的方法。
19.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-15中任一项所述的方法。
CN202211531627.0A 2022-12-01 2022-12-01 任务执行方法、装置、电子设备及介质 Pending CN116339934A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211531627.0A CN116339934A (zh) 2022-12-01 2022-12-01 任务执行方法、装置、电子设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211531627.0A CN116339934A (zh) 2022-12-01 2022-12-01 任务执行方法、装置、电子设备及介质

Publications (1)

Publication Number Publication Date
CN116339934A true CN116339934A (zh) 2023-06-27

Family

ID=86893527

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211531627.0A Pending CN116339934A (zh) 2022-12-01 2022-12-01 任务执行方法、装置、电子设备及介质

Country Status (1)

Country Link
CN (1) CN116339934A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116627621A (zh) * 2023-07-25 2023-08-22 北京大学 服务器无感知计算中键值张量的传输方法、系统和装置
CN116795434A (zh) * 2023-08-21 2023-09-22 云账户技术(天津)有限公司 一种流水线式任务处理方法、装置、电子设备及存储介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116627621A (zh) * 2023-07-25 2023-08-22 北京大学 服务器无感知计算中键值张量的传输方法、系统和装置
CN116627621B (zh) * 2023-07-25 2023-10-20 北京大学 服务器无感知计算中键值张量的传输方法、系统和装置
CN116795434A (zh) * 2023-08-21 2023-09-22 云账户技术(天津)有限公司 一种流水线式任务处理方法、装置、电子设备及存储介质
CN116795434B (zh) * 2023-08-21 2023-11-14 云账户技术(天津)有限公司 一种流水线式任务处理方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN116339934A (zh) 任务执行方法、装置、电子设备及介质
CN105117289B (zh) 基于云测试平台的任务分配方法、装置及系统
CN105677469B (zh) 定时任务执行方法及装置
CN110297766A (zh) 基于分布式测试节点集群的软件测试方法及软件测试系统
US8434085B2 (en) Scalable scheduling of tasks in heterogeneous systems
CN104035800B (zh) 一种增量包生成方法、版本升级方法、装置以及系统
CN110971485B (zh) 业务指标的监控系统及方法
CN110569298A (zh) 一种数据对接、可视化方法和系统
US7814165B2 (en) Message classification system and method
CN109284180B (zh) 一种任务调度方法、装置、电子设备及存储介质
CN110378529B (zh) 一种数据生成的方法、装置、可读存储介质和电子设备
CN110955506A (zh) 一种分布式作业调度处理方法
CN111738409A (zh) 一种资源调度的方法及其相关设备
CN107623731A (zh) 一种任务调度方法、客户端、服务集群及系统
CN104408068A (zh) 一种报表数据处理方法及相关设备
CA2631255A1 (en) Scalable scheduling of tasks in heterogeneous systems
US20130226670A1 (en) Method and system for automatically partitioning and processing a business process
CN113608751A (zh) 推理服务平台的运行方法、装置、设备及存储介质
CN111225063B (zh) 用于静态分布式计算架构的数据交换系统及其方法
US5905904A (en) Parallel data processing system and method of controlling such a system
CN1829231B (zh) 直接接收入站数据的方法和装置
CN113055493B (zh) 数据包处理方法、装置、系统、调度设备和存储介质
CN113467902A (zh) 结合rpa与ai的任务调度方法、装置、客户端以及服务器
US9336063B1 (en) Distributed task management
CN117148705B (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