CN112882813A - 任务调度方法、装置、系统及电子设备 - Google Patents

任务调度方法、装置、系统及电子设备 Download PDF

Info

Publication number
CN112882813A
CN112882813A CN202110290105.5A CN202110290105A CN112882813A CN 112882813 A CN112882813 A CN 112882813A CN 202110290105 A CN202110290105 A CN 202110290105A CN 112882813 A CN112882813 A CN 112882813A
Authority
CN
China
Prior art keywords
task
issuing
execution
application end
algorithm application
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
Application number
CN202110290105.5A
Other languages
English (en)
Other versions
CN112882813B (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.)
Suzhou Keda Technology Co Ltd
Original Assignee
Suzhou Keda 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 Suzhou Keda Technology Co Ltd filed Critical Suzhou Keda Technology Co Ltd
Priority to CN202110290105.5A priority Critical patent/CN112882813B/zh
Publication of CN112882813A publication Critical patent/CN112882813A/zh
Application granted granted Critical
Publication of CN112882813B publication Critical patent/CN112882813B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • 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/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Abstract

本申请提供一种任务调度方法、装置、系统及电子设备,任务调度方法包括:接收算法应用端的注册信息;接收任务应用端发送的至少一个任务;根据所述至少一个任务的任务信息,对所述至少一个任务进行任务编排;根据任务编排,确定所述至少一个任务的执行顺序:根据所述至少一个任务的执行顺序,对所述任务执行任务下发步骤,所述任务下发步骤包括:根据所述任务的任务类型,确定下发所述任务的任务下发方式;确定执行所述任务的算法应用端;按所确定的任务下发方式,将所述任务下发至所确定的算法应用端。本申请解耦任务应用端以及算法应用端,通过任务调度方法提高任务执行效率,灵活满足各种任务执行需求。

Description

任务调度方法、装置、系统及电子设备
技术领域
本申请涉及计算机领域,尤其涉及一种任务调度方法、装置、系统及电子设备。
背景技术
随着国内安防市场需求的不断释放以及相关技术的快速发展,智能化、集成化、标准化解析技术发展不断加快,海量视频、图像资源数据被视为一个个任务等待解析,如今,由应用到算法单线连接的架构系统愈发不能满足需要,如何快速处理这样庞大的数据任务显得尤其重要。
传统的解析系统模块之间耦合度高不方便维护,任务处理速度慢且算法资源分配不均,资源分散,利用率低,既降低了系统实用性又极易造成资源浪费。
发明内容
本申请为了克服上述现有技术存在的缺陷,提供一种任务调度方法、装置、系统及电子设备,解耦任务应用端以及算法应用端,通过任务调度方法提高任务执行效率,灵活满足各种任务执行需求。
根据本申请的一个方面,提供一种任务调度方法,包括:
接收算法应用端的注册信息;
接收任务应用端发送的至少一个任务;
根据所述至少一个任务的任务信息,对所述至少一个任务进行任务编排;
根据任务编排,确定所述至少一个任务的执行顺序:
根据所述至少一个任务的执行顺序,对所述任务执行任务下发步骤,所述任务下发步骤包括:
根据所述任务的任务类型,确定下发所述任务的任务下发方式;
根据所述任务的任务信息以及所述算法应用端的注册信息,确定执行所述任务的算法应用端;
按所确定的任务下发方式,将所述任务下发至所确定的算法应用端。
在本申请的一些实施例中,所述根据所述至少一个任务的任务信息,对所述至少一个任务进行任务编排包括:
判断所述至少一个任务的任务数量是否大于1个;
若否,则按单任务对所述任务进行编排;
若是,则:
根据各所述任务的任务信息,确定各任务之间的依赖关系;
根据所确定的依赖关系将多个任务编排成任务链,所述任务链包括如下形式中的一种或多种:串行任务链、并行任务链、串行和并行组合任务链。
在本申请的一些实施例中,所述根据所述任务的任务类型,确定下发所述任务的任务下发方式包括:
判断所述任务的任务类型为同步任务或异步任务;
若所述任务的任务类型为同步任务,则所述任务下发方式为:直接根据所述任务信息确定执行所述任务的算法应用端,响应于执行所述任务的算法应用端的确定,将所述任务下发至所确定的算法应用端;
若所述任务的任务类型为异步任务,则所述任务下发方式为:将所述任务的任务信息储存至一任务队列,以供自动确定函数自所述任务队列消费任务信息,并根据所述任务信息确定所述任务的算法应用端,响应于执行所述任务的算法应用端的确定,将所述任务下发至所确定的算法应用端。
在本申请的一些实施例中,若所述任务的任务类型为同步任务,则接收所确定的算法应用端反馈所述任务的执行结果后,根据所述执行顺序,对下一任务执行所述任务下发步骤;
若所述任务的任务类型为异步任务,则对所述任务执行所述任务下发步骤后,即刻根据所述执行顺序,对下一任务执行所述任务下发步骤,
所述异步任务的算法复杂度大于所述同步任务的算法复杂度。
在本申请的一些实施例中,所述至少一个任务的任务数量大于1个时,根据多个任务的执行顺序,对所述任务执行任务下发步骤,所述任务下发步骤之后还包括:
将所述任务链转化为串行任务链;
获取所述串行任务链的第一个任务的算法应用端反馈的执行结果;
将所述执行结果合并至一执行档案中;
将所述执行档案按所述串行任务链的顺序,依次发送至对应的算法应用端,供各算法应用端根据所述执行档案进行其执行结果的置信度计算;
按所述串行任务链的顺序,依次接收各算法应用端发送的置信度大于预定阈值的执行结果,并将所述执行结果合并至所述执行档案中。
在本申请的一些实施例中,
若各所述算法应用端反馈不同类型的执行结果,则按所述串行任务链的顺序,依次接收各算法应用端发送的置信度大于预定阈值的执行结果,并将所有接收的所述执行结果合并至所述执行档案中;
若各所述算法应用端反馈相同类型的执行结果,则按所述串行任务链的顺序,依次接收各算法应用端发送的置信度大于预定阈值的执行结果,并根据置信度自所接收的所述执行结果中选取一个执行结果合并至所述执行档案中。
在本申请的一些实施例中,所述按所确定的任务下发方式,将所述任务下发至所确定的算法应用端还包括:
获取所述任务的复杂度类型,所述复杂度类型包括复杂任务和简单任务,所述复杂任务和简单任务由任务复杂度阈值划分;
获取所确定的算法应用端的负载时间属性,所述负载时间属性包括忙时时间段以及闲时时间段,所述忙时时间段以及所述闲时时间段根据所确定的算法应用端的历史任务执行数据分析获得;
将复杂任务于闲时时间段下发至所确定的算法应用端;
将简单任务于忙时时间段下发至所确定的算法应用端。
根据本申请的又一方面,还提一种任务调度装置,包括:
注册模块,用于接收算法应用端的注册信息;
接收模块,用于接收任务应用端发送的至少一个任务;
编排模块,用于根据所述至少一个任务的任务信息,对所述至少一个任务进行任务编排;
执行顺序确定模块,用于根据任务编排,确定所述至少一个任务的执行顺序:
任务下发模块,用于根据所述至少一个任务的执行顺序,对所述任务执行任务下发步骤,所述任务下发步骤包括:
根据所述任务的任务类型,确定下发所述任务的任务下发方式;
根据所述任务的任务信息以及所述算法应用端的注册信息,确定执行所述任务的算法应用端;
按所确定的任务下发方式,将所述任务下发至所确定的算法应用端。
根据本申请的又一方面,还提一种任务调度系统,包括:
任务应用端;
算法应用端;以及
如上所述的任务调度装置。
根据本申请的又一方面,还提供一种电子设备,所述电子设备包括:处理器;存储介质,其上存储有计算机程序,所述计算机程序被所述处理器运行时执行如上所述的步骤。
根据本申请的又一方面,还提供一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如上所述的步骤。
由此可见,本申请提供的方案,与现有技术相比,具有如下优势:
相较于传统的解析模块应用和算法之间存在依赖关系相互控制,前者变化后者必然要发生改变才能维护系统安全,本申请通过执行任务调度的平台进行任务调度,并未使得任务应用端以及算法应用端具有唯一的绑定关系,从而使任务应用端以及算法应用端解耦,同一任务可以由不同的算法应用端执行,以避免依赖关系导致的低效任务执行以及系统安全问题;通过任务编排确定任务执行顺序,以便于进行任务执行的管理和灵活下发;通过任务类型确定下发形式,以适应不同类型的任务场景,由此,提高任务执行效率,灵活满足各种任务执行需求。
附图说明
通过参照附图详细描述其示例实施方式,本申请的上述和其它特征及优点将变得更加明显。
图1示出了根据本申请实施例的任务调度方法的流程图。
图2示出了根据本申请具体实施例的根据所述至少一个任务的任务信息,对所述至少一个任务进行任务编排的流程图。
图3示出了根据本申请具体实施例的根据所述任务的任务类型,确定下发所述任务的任务下发方式的流程图。
图4示出了根据本申请具体实施例的合并执行档案的流程图。
图5示出了根据本申请具体实施例的任务下发调度算法的流程图。
图6示出了根据本申请实施例的任务调度装置的模块图。
图7示出了根据本申请实施例的任务调度系统的模块图。
图8示出了根据本申请实施例的任务调度系统的架构图。
图9示意性示出本公开示例性实施例中一种计算机可读存储介质示意图。
图10示意性示出本公开示例性实施例中一种电子设备示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本申请将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。
此外,附图仅为本申请的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的步骤。例如,有的步骤还可以分解,而有的步骤可以合并或部分合并,因此,实际执行的顺序有可能根据实际情况改变。
首先参见图1,图1示出了根据本申请实施例的任务调度方法的流程图。图1共示出了如下步骤:
步骤S110:接收算法应用端的注册信息。
具体而言,步骤S110还可以接收任务应用端的注册信息。通过任务应用端以及算法应用端的注册,可以对任务应用端以及算法应用端进行鉴权和验证。此外,接收算法应用端的注册信息后,还可以通过注册信息来与任务应用端以及算法应用端进行心跳通信,从而保持连接。进一步地,任务应用端用于生成和发布任务,算法应用端用于通过内置算法对任务进行处理。
在一个实施方式中,执行任务调度的平台接收算法应用端的注册信息及任务应用端的注册信息,建立任务调度的平台与算法应用端及任务应用端的连接。具体而言,算法应用端和任务应用端可以在注册时,将协商制定的任务规则(包括但不限于:算法类型、算法参数等)一并进行注册。由此,在进行任务调度时,可以根据协商的任务规则,使得执行任务调度的平台、算法应用端和任务应用端之间通过标准的接口对接。
步骤S120:接收任务应用端发送的至少一个任务。
具体而言,本申请可以处理任意类型和任意应用场景中的任务,包括但不限于数据分析任务、图像分析任务、视频分析任务等。
步骤S130:根据所述至少一个任务的任务信息,对所述至少一个任务进行任务编排。
任务的任务信息例如可以包括但不限于:任务的名称、任务的标识、任务的前序依赖任务等。
具体而言,任务编排用于对任务进行管理和执行顺序的排序,从而能够加快任务下发和任务调度。具体的任务编排的方式将在下文中结合图2的流程图进行描述,在此不予赘述。
步骤S140:根据任务编排,确定所述至少一个任务的执行顺序。
步骤S150:根据所述至少一个任务的执行顺序,对所述任务执行任务下发步骤,所述任务下发步骤包括:
步骤S151:根据所述任务的任务类型,确定下发所述任务的任务下发方式。
步骤S152:根据所述任务的任务信息以及所述算法应用端的注册信息,确定执行所述任务的算法应用端。
具体而言,可以多个算法应用端注册信息和任务信息,确定哪些算法应用端可以执行该任务。进一步地,可以在可以执行该任务的多个算法应用端中,根据任务调度算法,来确定执行所述任务的算法应用端。任务调度算法可以通过算法应用端实时上报的资源数、CPU使用率、数据传输带宽、目前任务执行进度等,综合判断来确定一最优的算法应用端来执行所述任务。在一个具体实施例中,当任务下发到算法应用端后,算法应用端可以实时上报资源数,任务调度算法可以更新算法资源数,并根据资源数进行调度,如果发现算法应用端的资源数不够用可以通知其增加资源另启算法应用端注册以进行作业,同时,执行任务调度的平台可以调整本地资源配合算法应用端,不仅可以避免资源浪费,而且满足多算法引擎调用的需求。
步骤S153:按所确定的任务下发方式,将所述任务下发至所确定的算法应用端。
本申请提供的任务调度方法中,相较于传统的解析模块应用和算法之间存在依赖关系相互控制,前者变化后者必然要发生改变才能维护系统安全,本申请通过执行任务调度的平台进行任务调度,并未使得任务应用端以及算法应用端具有唯一的绑定关系,从而使任务应用端以及算法应用端解耦,同一任务可以由不同的算法应用端执行;通过任务编排确定任务执行顺序,以便于进行任务执行的管理和灵活下发;通过任务类型确定下发形式,以适应不同类型的任务场景,由此,提高任务执行效率,灵活满足各种任务执行需求。
下面参见图2,图2示出了根据本申请具体实施例的根据所述至少一个任务的任务信息,对所述至少一个任务进行任务编排的流程图。图2示出如下步骤:
步骤S131:判断所述至少一个任务的任务数量是否大于1个。
若步骤S131判断为否,则执行步骤S132:按单任务对所述任务进行编排。
具体而言,单个任务的任务编排例如可以包括任务信息的封装,从而便于在后续的下发和执行步骤中便于获取统一的任务信息。
若步骤S131判断为是,则执行步骤S133和步骤S134。
步骤S133:根据各所述任务的任务信息,确定各任务之间的依赖关系。
具体而言,各任务的任务信息中例如可以包括该任务的前序依赖任务,从而可以根据依赖信息,确定各任务之间的依赖关系。若任务信息中对应前序依赖任务的字段为空(或为设定的空值),则表示该任务没有前序依赖任务。
步骤S134:根据所确定的依赖关系将多个任务编排成任务链,所述任务链包括如下形式中的一种或多种:串行任务链、并行任务链、串行和并行组合任务链。
具体而言,串行任务链中的各任务,除了第一个任务之外的任务,有且仅有一个前序依赖任务,且各依赖任务的前序依赖任务不同,从而使得该多个任务可以形成链式的顺序。以任务A,B,C为例,任务B的执行依赖任务A的完成,任务C的执行依赖任务B的完成,由此,该实施例的串行任务链为A,B,C依次执行。并行任务链中的各任务皆不存在依赖关系。以任务A,B,C为例,任务A的执行不依赖任务B的完成也不依赖任务C的完成,任务B和任务C同理,由此,任务A、B、C可以并行执行。串行和并行组合任务链中存在串行任务链和并行任务链的复合形式。在一个串行和并行组合任务链中,以任务A,B,C为例,任务A不依赖其它任务的完成,任务B和任务C依赖任务A的完成。由此,任务B和任务C与任务A存在串行关系,任务B和任务C存在并行关系。由此,可以首先执行任务A,然后并行执行任务B和任务C。在另一个串行和并行组合任务链中,以任务A,B,C为例,任务A和B不依赖其它任务的完成,任务C同时依赖任务A和B的完成。由此,任务A与任务C、任务B与任务C存在串行关系,任务A和任务B存在并行关系。由此,可以首先并行执行任务A和B,然后执行任务C。在又一个串行和并行组合任务链中,以任务A,B,C为例,任务A和B不依赖其它任务的完成,任务C依赖任务A或B的完成。也就是说任务A完成或任务B完成,皆可以触发任务C的执行。由此,可以首先并行执行任务A和B,然后执行任务C。在一个复杂串行和并行组合任务链中,以任务A,B,C,D,E,F为例,任务A不依赖其它任务的完成,任务B和任务C依赖任务A的完成,任务D依赖任务B的完成,任务E依赖任务C的完成,任务F依赖任务D和/或任务E的完成。由此,可以实现复杂的串行和并行组合任务链。本发明可以实现更多的任务编排方式,在此不予赘述。
进一步地,通过任务编排,从而可以封装单个任务和多个任务,对单个任务而言,便于任务信息的获取,对于多个任务而言,以任务链的形式确定任务的执行顺序可以提高任务下发和任务执行效率,同时,便于任务管理,避免由于先后顺序出错导致的任务错误执行。
下面参见图3,图3示出了根据本申请具体实施例的根据所述任务的任务类型,确定下发所述任务的任务下发方式的流程图。图3共示出如下步骤:
步骤S1511:判断所述任务的任务类型为同步任务或异步任务;
若步骤S1511判断所述任务的任务类型为同步任务,则执行步骤S1512:确定所述任务下发方式为:直接根据所述任务信息确定执行所述任务的算法应用端,响应于执行所述任务的算法应用端的确定,将所述任务下发至所确定的算法应用端。
若步骤S1511判断所述任务的任务类型为异步任务,则执行步骤S1513:确定所述任务下发方式为:将所述任务的任务信息储存至一任务队列,以供自动确定函数自所述任务队列消费任务信息,并根据所述任务信息确定所述任务的算法应用端,响应于执行所述任务的算法应用端的确定,将所述任务下发至所确定的算法应用端。
由此,在本实施例中,考虑到同步任务的实时性和效率要求更高,因此,不采用任务队列,而是直接查询执行该任务的算法应用端,以便于提高下发速度。而异步任务的实时性和效率要求更低,为了避免查询执行该任务的算法应用端的操作高并发,导致系统负载较高,因此,采用任务队列的方式,通过一自动确定函数,根据任务信息与算法应用端的匹配,来查找和确定算法应用端。进一步地,采用任务队列还可以应用任务队列的失败重试机制,以提高能够下发的任务数量。
进一步地,考虑到同步任务的实时性要求较高,若所述任务的任务类型为同步任务,则接收所确定的算法应用端反馈所述任务的执行结果后,根据所述执行顺序,对下一任务执行所述任务下发步骤。考虑到异步任务的实时性要求较低,若所述任务的任务类型为异步任务,则对所述任务执行所述任务下发步骤后,即刻根据所述执行顺序,对下一任务执行所述任务下发步骤。其中,所述异步任务的算法复杂度大于所述同步任务的算法复杂度,由此,可以实现任务执行的负载平衡,避免由于同步任务的算法复杂度高,从而导致调度等到任务执行的等待时间过长;而异步任务无需等待执行,因此,可以将异步任务设置为复杂度较高的任务。
在上述实施例的一个具体实现中,所要调度和执行的任务为视频任务。任务应用端下发视频分析任务到调度平台(执行如上所述的调度方法),当业务需求是单任务时,调度平台可以按照分析规则封装、编排生成一个符合算法要求的单任务。判断该单任务是否为异步任务。如果是异步任务则先将任务信息保存至队列,然后根据任务属性、算法类型和算法供应商查询到任何一个符合条件的算法应用端,若没有查询到满足条件的算法应用端,则进入重试机制继续查询直到找到符合条件的算法应用端的异步接口,这个过程可以通过自动确定函数来执行。若该单任务为同步任务,则根据条件匹配到算法应用端,即刻下发任务,直到获取分析结果返回。若为匹配到算法应用端,则返回未发现算法注册告警信息。当业务需求是多任务时,根据任务信息确定任务依赖关系,从而形成任务链,根据任务链确定任务的执行顺序,根据任务的执行顺序将任务按与单任务相同的方式来进行处理和下发。上述过程描述对任务应用端下发视频任务进行编排和下发,实现对算法应用端灵活调度策略,不仅实现应用和算法解耦,而且提高了系统实用性。
在调度过程中,可以针对视频任务做分片处理,包括离线视频文件、历史视频和监控设备实时视频。由于离线视频中没有时间戳,可以根据视频大小进行分片后再下发到解析引擎处理。历史任务按照分片可以根据时间长度进行分片处理。如下分两种情况:第一种是长任务,实时视频分析任务,进行视频结构化获取处理结果,推送分析结果;第二种是短任务,历史视频和离线视频任务,解析平台进行视频分片处理。分片规则例如可以是历史视频总时长除以总资源数,小于2分钟按两分钟分片,大于2分钟时,分片数=时间长度/并发路数。离线视频大小除以指定分片大小得到分片数。算法应用端接收到任务分片任务进行解析输出目标对象和分析进度,分别推送给调度平台回调。
以上仅仅是示意性地描述本申请的一种应用方式,在此不予赘述。
下面参见图4,图4示出了根据本申请具体实施例的合并执行档案的流程图。本实施例中,至少一个任务的任务数量大于1个,图4共示出如下步骤:
步骤S161:将所述任务链转化为串行任务链。
具体而言,步骤S161用于确定一依次相连的任务顺序。若任务链为串行任务链,则步骤S161无需进行转化。若任务链为并行任务链或组合式的任务链,则步骤S161可以自其中确定一主任务,并按任一顺序将其它任务排序在该主任务之后。
步骤S162:获取所述串行任务链的第一个任务的算法应用端反馈的执行结果。
步骤S163:将所述执行结果合并至一执行档案中。
步骤S164:将所述执行档案按所述串行任务链的顺序,依次在对应的算法应用端执行任务时发送至对应的算法应用端,供各算法应用端根据所述执行档案进行其执行结果的置信度计算。
步骤S165:按所述串行任务链的顺序,依次接收各算法应用端发送的置信度大于预定阈值的执行结果,并将所述执行结果合并至所述执行档案中。
具体而言,各算法应用端返回的执行结果还包括各算法应用端的标识,以便于进行区分。
具体而言,上述步骤S162至步骤S165用于避免由于多个算法应用端执行同一对象的任务,导致对同一对象生成了多个执行档案,不容易进行管理的情况。在本实施例中,任务执行和执行档案的发送是并行的。换言之,在算法应用端执行任务时就将前一算法应用端处理后的执行档案,发送到当前算法应用端,当前算法应用端执行完后依据执行结果计算置信度,并按预定阈值判断是否需要合并,然后将处理后的执行档案和串行任务链的下一任务一起到下一算法应用端。因此,可以通过上述步骤,确定任务的顺序,从而依次依据置信度来合并执行档案,最终对同一对象仅保存一个执行档案,便于管理。
进一步地,在上述实施例中,若各所述算法应用端反馈不同类型的执行结果,则按所述串行任务链的顺序,依次接收各算法应用端发送的置信度大于预定阈值的执行结果,并将所有接收的所述执行结果合并至所述执行档案中。例如,不同算法应用端执行行人的不同属性的识别,由此,可以根据上述方式,依次进行执行度的判断,从而将不同属性的识别结果合并至同一执行档案中。
进一步地,在上述实施例中,若各所述算法应用端反馈相同类型的执行结果,则按所述串行任务链的顺序,依次接收各算法应用端发送的置信度大于预定阈值的执行结果,并根据置信度自所接收的所述执行结果中选取一个执行结果合并至所述执行档案中。例如,不同算法应用端执行行人的同一属性的识别,由此,无需合并所有的算法应用端返回的执行结果,仅将置信度更高的一个或多个执行结果进行合并,以获得较高置信度的执行档案。
下面参见图5,图5示出了根据本申请具体实施例的任务下发调度算法的流程图。图5共示出如下步骤:
步骤S1531:获取所述任务的复杂度类型,所述复杂度类型包括复杂任务和简单任务,所述复杂任务和简单任务由任务复杂度阈值划分。
任务复杂度阈值可以按需设定,在此不予赘述。
步骤S1532:获取所确定的算法应用端的负载时间属性,所述负载时间属性包括忙时时间段以及闲时时间段,所述忙时时间段以及所述闲时时间段根据所确定的算法应用端的历史任务执行数据分析获得。
在一些实施例中,可以根据算法应用端的历史任务执行数据,将平均执行任务量/资源使用量大于设定阈值的时间段作为忙时时间段;将平均执行任务量/资源使用量小于等于设定阈值的时间段作为闲时时间段。设定阈值可以按需设置,在此不予赘述。示意性地,可以将夜晚(如22:00-6:00)作为闲时时间段;将白天(如6:00-22:00)作为忙时时间段。在一些变化例中,还可以利用机器学习模型对算法应用端的历史任务执行数据进行学习和分析,从而获得算法应用端的忙时时间段以及闲时时间段。本申请可以实现更多的变化方式,在此不予赘述。
步骤S1533:将复杂任务于闲时时间段下发至所确定的算法应用端,将简单任务于忙时时间段下发至所确定的算法应用端。
由此可以实现任务执行的负载均衡,使得复杂任务在闲时执行,简单任务在忙时执行,提高任务执行的效率。
在本申请的多个实施例中,可以实现任务编排。当应用任务端下发多个任务,就需要算法对多任务分类处理再进行分析工作,这样会降低算法的执行效率,从而会影响整个系统的实用性。应用任务端通过调度平台调度下发任务到算法应用端,分任务层级,组成任务链的形式。调度平台接收到应用下发的任务,根据任务类型、任务优先级等进行编排和保存到优先级队列,方便后面进行灵活调度应用算法端做准备,无论是单任务还是多任务都能高效的处理完成,很大程度上提高了系统的实用性。
在本申请的多个实施例中,可以支持多算法引擎调度。根据业务需求现场会出现多算法情况,调用多个算法应用端可能存在一对象多个执行档案。本申请可以采用多算法引擎调度解决这类问题。调度平台将执行任务链的第一个任务的算法应用端作为主要的算法应用端返回的置信结果合并进调度平台关于该对象的执行档案中,将执行档案分发给其他算法应用端来进行执行结果的置信度的计算。具体而言,例如可以将执行档案中的信息与执行结果进行的比对,来计算当前算法应用端的执行结果的置信度。若置信度大于阈值,则算法应用端将执行结果推送给调度平台合并。若置信度小于等于阈值,则将执行档案下发至下一算法应用端,进行执行结果置信度的计算。直到该任务链的所有的任务的算法应用端皆置信度计算完毕。将最终获得的执行档案由调度平台进行管理,由此可以通过服务的形式为应用调度多种标准处理任务的多引擎聚类算法接口,以某一算法为主聚类(主聚类算法和辅助聚类算法,可根据实际聚类结果判别,采取择优原则),其他为辅聚类,设计出一套多算法引擎结构。采用统一集成多算法服务框架,定义算法统一接口和运行规范,将多算法应用端擎整合应用,做多引擎聚类。
在本申请的多个实施例中,可以实现潮汐调度(将复杂任务于闲时时间段下发至所确定的算法应用端,将简单任务于忙时时间段下发至所确定的算法应用端)。针对诸如视频图像的海量任务,调度平台对算法任务调度做了潮汐调度策略,如突发任务(如大量历史视频分析)、忙时任务(如车辆/人像实时分析)、闲时任务(如目标聚类分析),可根据系统各类分析任务负载的时间特性,实现潮汐调度,灵活调整计算资源,支持CPU/GPU解析资源的灵活调度,充分利用空闲资源。保证GPU计算资源可以得到最大的利用率,避免空闲资源的浪费。
在本申请的多个实施例中,可以实现任务优先级调度。具体而言,任务优先级调度可以实现应用任务及算法的智能调度解析,将智能任务分派到最合适的算法引擎上,并且支持短分析任务按优先级调度。可根据任务模型动态调整任务的资源占比分配,保证优先级高的任务优先占有资源执行,低优先级任务可动态释放资源。任务优先级处理例如可以以如下两种方式实现:1)如果有优先级低的任务在运行,当发现高优先级任务时,立即停止低优先级的任务,开始执行高优先级任务;2)当没有任务在执行时,同时发现高、低优先级任务,服务会按照比例分配资源(比如高优先级任务占比80%,低优先级任务占比20%),本发明并非以此为限制。
在本申请的多个实施例中,可以实现调度平台任务启动、暂停和取消操作。当调度平台发起取消任务时,首先,通过判断任务的状态,如果是调度中、排队中的,直接将数据库的任务状态更改为已取消,由此,当该任务执行时,判断任务是已取消状态,则可以直接取消该任务的执行。如果是执行中,则调用算法的取消接口,判断算法返回的状态,如果是成功取消,则更新任务的状态为已取消,如果是取消失败了,那么任务的状态不进行变更,保留原来的状态。暂停任务的流程与取消任务流程一致,在此不予赘述。
以上示例性地示出本申请的多个实现方式,本申请并非以此为限制,各实施方式中,步骤的增加、省略、顺序变换皆在本申请的保护范围之内;各实施方式可以单独或组合来实现。
下面结合图6描述本申请提供的任务调度装置200。任务调度装置200包括注册模块210、接收模块220、编排模块230、执行顺序确定模块240以及任务下发模块250。
注册模块210用于接收算法应用端的注册信息。
接收模块220用于接收任务应用端发送的至少一个任务。
编排模块230用于根据所述至少一个任务的任务信息,对所述至少一个任务进行任务编排。
执行顺序确定模块240用于根据任务编排,确定所述至少一个任务的执行顺序。
任务下发模块250用于根据所述至少一个任务的执行顺序,对所述任务执行任务下发步骤,所述任务下发步骤包括:
根据所述任务的任务类型,确定下发所述任务的任务下发方式;
根据所述任务的任务信息以及所述算法应用端的注册信息,确定执行所述任务的算法应用端;
按所确定的任务下发方式,将所述任务下发至所确定的算法应用端。
本申请可以通过软件、硬件、固件及其任意结合的方式实现任务调度装置200。图6仅仅是示意性的示出本申请提供的任务调度装置200,在不违背本申请构思的前提下,模块的拆分、合并、增加都在本申请的保护范围之内。
下面结合图7描述本申请提供的任务调度系统。任务调度系统包括任务应用端310、算法应用端320以及任务调度装置200(模块图如图6所示)。由此,任务应用端310可以向任务调度装置200发布任务,并由任务调度装置200进行管理和调度,以调用算法应用端320进行任务的执行。
其中,图7仅仅是示意性地示出任务应用端310、算法应用端320以及任务调度装置200。任务应用端310、算法应用端320的数量并非以此为限制。
本申请提供的任务调度装置以及系统中,相较于传统的解析模块应用和算法之间存在依赖关系相互控制,前者变化后者必然要发生改变才能维护系统安全,本申请通过执行任务调度的平台进行任务调度,并未使得任务应用端以及算法应用端具有唯一的绑定关系,从而使任务应用端以及算法应用端解耦,同一任务可以由不同的算法应用端执行;通过任务编排确定任务执行顺序,以便于进行任务执行的管理和灵活下发;通过任务类型确定下发形式,以适应不同类型的任务场景,由此,提高任务执行效率,灵活满足各种任务执行需求。
图8示出了根据本申请实施例的任务调度系统的架构图。
在本实施例中,任务调度平台利用分层架构实现系统在纵向上的低耦合,利用Spring Cloud(是一系列框架的有序集合)开源框架进一步确保纵向分层的具体实现,开发便利巧妙地简化了分布式系统基础设施的开发,按照服务功能划分子系统来实现横向上的低耦合。任务调度平台能够提供服务统一接口,资源统一调度,结果统一汇聚技术功能,应用、算法模块系统快速集成,共同达成智能分析服务需求。
任务调度系统由外部应用系统和内部系统两个部分组成。视频图像应用平台410、、视图库服务440、算法引擎430(可以调用云存储、新媒体等服务,其中,新媒体服务可以通过RTSP协议为算法引擎提供视频码流)属于外部应用。视频图像应用平台,负责根据图像、视频等信息发起任务到任务调度平台,任务调度平台430调度算法引擎处理任务,视频图像应用平台410接收任务调度平台430回调分析结果,将返回的特征数据展示等;云存储用来提供存储功能。视图库440提供采集图像功能,以及数据服务接口。
图中任务调度平台部分包括注册模块431、网关路由432、智能调度服务(例如由编排模块433来实现)。外部算法引擎通过rest接口或者sdk方式进行注册服务,注册模块431定期发送服务心跳续约保活,并且提供查询接口查看注册示例信息和关联信息(包括ip地址,端口,app类型,算法厂商等)。注册模块431支持算法多节点注册,针对不同的任务能够同时调用不同算法服务进行工作,并且互不干扰,对于多个任务需要用到同一个算法引擎时,算法会开多路并发处理。网关路由432的网关服务主要提供了统一入口、鉴权校验、动态路由,网关过滤器功能主要是用于身份鉴权认证,日志的记录等工作;网关的容错主要是针对服务之间的超时异常处理,其他的服务返回信息包括异常返回都不会触发网关的异常逻辑;网关服务转发其内部集成了ribbon(基于HTTP和TCP的客户端负载均衡工具),实现了负载均衡的策略,同时网关实现了限流策略。智能调度服务读取应用任务,根据任务数量、任务类型等信息进行编排、存储,根据算法注册信息调度相应算法引擎,减小任务平均延迟,增加调度成功率,提高任务公平性。任务下发模块434负责下发任务;结果接收模块435负责接收算法引擎执行任务的结果。
具体而言,任务调度平台430可以提供智能调度服务(例如由编排模块433来实现)、网关路由服务和注册服务(例如分别由网关路由432和注册模块431来实现),智能调度服务负责调度任务和算法,网关服务负责将不同网络段中的使用不同传输协议的数据进行互相的翻译转换,注册服务用来注册算法引擎和本地智能调度服务,并进行保活功能。
任务调度平台430采用智能调度服务、服务注册中心、请求路由网关技术等做到一键启动和部署。服务注册中心提供其他被注册服务地址之间映射关系,当任务调度平台430的调度服务可以从中获取对应app的地址信息和注册信息进行动态调用。路由网关技术为系统全部服务提供一个唯一的入口,对服务注册中心的算法引擎430(算法应用端)进行鉴权校验,识别每个请求的权限,拒绝不符合要求的请求,保障了后台服务的安全性。任务调度平台430可以设置异常机机制对异常类统一截取,服务宕机、网络中断有网关统一处理,业务异常解析平台统一截取异常并处理,可快速发现和定位问题进行动态调整。
任务调度平台430作为应用平台410和算法引擎430之间沟通桥梁,负责接收应用派发的视图任务,根据任务类型进行任务编排,按照分析规则封装、创建智能分析任务(首先接收应用下发原始任务,然后根据业务需求和分析规则对任务进行封装,比如对任务是多任务还是单任务,处理同步还是异步,确定任务优先级,添加任务唯一标识等,最后创建成符合算法分析要求的任务,称之为智能分析任务),然后根据任务类型、算法类型、算法应用类型等灵活调度算法,下发任务到算法引擎,以协议方式或其他自定义方式进行推送分析任务给算法引擎,再将分析结果推送给应用或者视图库(提供采集图像功能以及数据服务接口);算法引擎首先进行注册到服务注册中心,接下来就由任务调度平台进行统一调度。算法引擎负责接收智能解析任务,以协议方式或其他自定义方式进行推送分析任务及结果给任务调度平台430。将视频图像任务流转于应用和算法引擎之间,将应用和算法解耦。
当上述实施例应用于静态人脸分析任务调度分析时,可以通过如下方式实现:首先,视频图像应用平台410下发任务,提供静态库给任务调度平台430,任务调度平台430根据静态库标识订阅视图库,然后将订阅的静态库信息写入消息队列,,然后,下发任务通知算法引擎消费消息队列进行人脸分析,算法引擎430获取静态人脸数据并将静态人脸分析结果写入本地消息队列,最后由任务调度平台430消费二次人脸分析数据并写入视图库440,完成人脸分析入库任务。以上仅仅是示意性地描述本申请的应用场景,在此不予赘述。
在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被例如处理器执行时可以实现上述任意一个实施例中所述任务调度方法的步骤。在一些可能的实施方式中,本申请的各个方面还可以实现为一种程序产品的形式,其包括程序代码,若所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述任务调度方法部分中描述的根据本申请各种示例性实施方式的步骤。
参考图9所示,描述了根据本申请的实施方式的用于实现上述方法的程序产品800,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本申请的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适若的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本申请操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在租户计算设备上执行、部分地在租户设备上执行、作为一个独立的软件包执行、部分在租户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到租户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
在本公开的示例性实施例中,还提供一种电子设备,该电子设备可以包括处理器,以及用于存储所述处理器的可执行指令的存储器。其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一个实施例中所述任务调度方法的步骤。
所属技术领域的技术人员能够理解,本申请的各个方面可以实现为系统、方法或程序产品。因此,本申请的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
下面参照图10来描述根据本申请的这种实施方式的电子设备600。图10显示的电子设备600仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图10所示,电子设备600以通用计算设备的形式表现。电子设备600的组件可以包括但不限于:至少一个处理单元610、至少一个存储单元620、连接不同系统组件(包括存储单元620和处理单元610)的总线630、显示单元640等。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元610执行,使得所述处理单元610执行本说明书上述任务调度方法部分中描述的根据本申请各种示例性实施方式的步骤。例如,所述处理单元610可以执行如图1中所示的步骤。
所述存储单元620可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)6201和/或高速缓存存储单元6202,还可以进一步包括只读存储单元(ROM)6203。
所述存储单元620还可以包括具有一组(至少一个)程序模块6205的程序/实用工具6204,这样的程序模块6205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线630可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备600也可以与一个或多个外部设备700(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得租户能与该电子设备600交互的设备通信,和/或与使得该电子设备600能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口650进行。并且,电子设备600还可以通过网络适配器660与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器660可以通过总线630与电子设备600的其它模块通信。应若明白,尽管图中未示出,可以结合电子设备600使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、或者网络设备等)执行根据本公开实施方式的上述任务调度方法。
上述的电子设备和储存介质,相较于传统的解析模块应用和算法之间存在依赖关系相互控制,前者变化后者必然要发生改变才能维护系统安全,本申请通过执行任务调度的平台进行任务调度,并未使得任务应用端以及算法应用端具有唯一的绑定关系,从而使任务应用端以及算法应用端解耦,同一任务可以由不同的算法应用端执行;通过任务编排确定任务执行顺序,以便于进行任务执行的管理和灵活下发;通过任务类型确定下发形式,以适应不同类型的任务场景,由此,提高任务执行效率,灵活满足各种任务执行需求。
本领域技术人员在考虑说明书及实践这里公开的申请后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由所附的权利要求指出。

Claims (10)

1.一种任务调度方法,其特征在于,包括:
接收算法应用端的注册信息;
接收任务应用端发送的至少一个任务;
根据所述至少一个任务的任务信息,对所述至少一个任务进行任务编排;
根据任务编排,确定所述至少一个任务的执行顺序:
根据所述至少一个任务的执行顺序,对所述任务执行任务下发步骤,所述任务下发步骤包括:
根据所述任务的任务类型,确定下发所述任务的任务下发方式;
根据所述任务的任务信息以及所述算法应用端的注册信息,确定执行所述任务的算法应用端;
按所确定的任务下发方式,将所述任务下发至所确定的算法应用端。
2.如权利要求1所述的任务调度方法,其特征在于,所述根据所述至少一个任务的任务信息,对所述至少一个任务进行任务编排包括:
判断所述至少一个任务的任务数量是否大于1个;
若否,则按单任务对所述任务进行编排;
若是,则:
根据各所述任务的任务信息,确定各任务之间的依赖关系;
根据所确定的依赖关系将多个任务编排成任务链,所述任务链包括如下形式中的一种或多种:串行任务链、并行任务链、串行和并行组合任务链。
3.如权利要求1所述的任务调度方法,其特征在于,所述根据所述任务的任务类型,确定下发所述任务的任务下发方式包括:
判断所述任务的任务类型为同步任务或异步任务;
若所述任务的任务类型为同步任务,则所述任务下发方式为:直接根据所述任务信息确定执行所述任务的算法应用端,响应于执行所述任务的算法应用端的确定,将所述任务下发至所确定的算法应用端;
若所述任务的任务类型为异步任务,则所述任务下发方式为:将所述任务的任务信息储存至一任务队列,以供自动确定函数自所述任务队列消费任务信息,并根据所述任务信息确定所述任务的算法应用端,响应于执行所述任务的算法应用端的确定,将所述任务下发至所确定的算法应用端。
4.如权利要求3所述的任务调度方法,其特征在于,
若所述任务的任务类型为同步任务,则接收所确定的算法应用端反馈所述任务的执行结果后,根据所述执行顺序,对下一任务执行所述任务下发步骤;
若所述任务的任务类型为异步任务,则对所述任务执行所述任务下发步骤后,即刻根据所述执行顺序,对下一任务执行所述任务下发步骤,
所述异步任务的算法复杂度大于所述同步任务的算法复杂度。
5.如权利要求2所述的任务调度方法,其特征在于,所述至少一个任务的任务数量大于1个时,根据多个任务的执行顺序,对所述任务执行任务下发步骤,所述任务下发步骤之后还包括:
将所述任务链转化为串行任务链;
获取所述串行任务链的第一个任务的算法应用端反馈的执行结果;
将所述执行结果合并至一执行档案中;
将所述执行档案按所述串行任务链的顺序,依次发送至对应的算法应用端,供各算法应用端根据所述执行档案进行其执行结果的置信度计算;
按所述串行任务链的顺序,依次接收各算法应用端发送的置信度大于预定阈值的执行结果,并将所述执行结果合并至所述执行档案中。
6.如权利要求5所述的任务调度方法,其特征在于,
若各所述算法应用端反馈不同类型的执行结果,则按所述串行任务链的顺序,依次接收各算法应用端发送的置信度大于预定阈值的执行结果,并将所有接收的所述执行结果合并至所述执行档案中;
若各所述算法应用端反馈相同类型的执行结果,则按所述串行任务链的顺序,依次接收各算法应用端发送的置信度大于预定阈值的执行结果,并根据置信度自所接收的所述执行结果中选取一个执行结果合并至所述执行档案中。
7.如权利要求1所述的任务调度方法,其特征在于,所述按所确定的任务下发方式,将所述任务下发至所确定的算法应用端还包括:
获取所述任务的复杂度类型,所述复杂度类型包括复杂任务和简单任务,所述复杂任务和简单任务由任务复杂度阈值划分;
获取所确定的算法应用端的负载时间属性,所述负载时间属性包括忙时时间段以及闲时时间段,所述忙时时间段以及所述闲时时间段根据所确定的算法应用端的历史任务执行数据分析获得;
将复杂任务于闲时时间段下发至所确定的算法应用端,将简单任务于忙时时间段下发至所确定的算法应用端。
8.一种任务调度装置,其特征在于,包括:
注册模块,用于接收算法应用端的注册信息;
接收模块,用于接收任务应用端发送的至少一个任务;
编排模块,用于根据所述至少一个任务的任务信息,对所述至少一个任务进行任务编排;
执行顺序确定模块,用于根据任务编排,确定所述至少一个任务的执行顺序:
任务下发模块,用于根据所述至少一个任务的执行顺序,对所述任务执行任务下发步骤,所述任务下发步骤包括:
根据所述任务的任务类型,确定下发所述任务的任务下发方式;
根据所述任务的任务信息以及所述算法应用端的注册信息,确定执行所述任务的算法应用端;
按所确定的任务下发方式,将所述任务下发至所确定的算法应用端。
9.一种任务调度系统,其特征在于,包括:
任务应用端;
算法应用端;以及
如权利要求8所述的任务调度装置。
10.一种电子设备,其特征在于,所述电子设备包括:
处理器;
存储器,其上存储有计算机程序,所述计算机程序被所述处理器运行时执行如权利要求1至7任一项所述的任务调度方法。
CN202110290105.5A 2021-03-18 2021-03-18 任务调度方法、装置、系统及电子设备 Active CN112882813B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110290105.5A CN112882813B (zh) 2021-03-18 2021-03-18 任务调度方法、装置、系统及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110290105.5A CN112882813B (zh) 2021-03-18 2021-03-18 任务调度方法、装置、系统及电子设备

Publications (2)

Publication Number Publication Date
CN112882813A true CN112882813A (zh) 2021-06-01
CN112882813B CN112882813B (zh) 2022-07-22

Family

ID=76042785

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110290105.5A Active CN112882813B (zh) 2021-03-18 2021-03-18 任务调度方法、装置、系统及电子设备

Country Status (1)

Country Link
CN (1) CN112882813B (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113542807A (zh) * 2021-09-14 2021-10-22 杭州博雅鸿图视频技术有限公司 基于数字视网膜平台的资源管理调度方法以及系统
CN113641482A (zh) * 2021-08-31 2021-11-12 联通(广东)产业互联网有限公司 Ai算法离线调度方法、系统、计算机设备及存储介质
CN113703947A (zh) * 2021-09-01 2021-11-26 上海漫酷网络技术有限公司 一种分布式任务处理系统、方法、计算机设备和存储介质
CN113867145A (zh) * 2021-09-29 2021-12-31 中国第一汽车股份有限公司 一种应用控制方法、装置、电子设备及存储介质
CN114356542A (zh) * 2021-11-30 2022-04-15 杭州光云科技股份有限公司 海量任务异步处理方法、装置、计算机设备及存储介质
CN114416346A (zh) * 2021-12-23 2022-04-29 广州市玄武无线科技股份有限公司 一种多节点任务调度方法、装置、设备及存储介质
CN114827155A (zh) * 2022-03-14 2022-07-29 南京邮电大学 一种分布式监控视频质量分析系统及其资源调度方法
CN114880131A (zh) * 2022-07-11 2022-08-09 中科雨辰科技有限公司 一种基于任务的动态编排系统
CN114995898A (zh) * 2022-05-13 2022-09-02 Oppo广东移动通信有限公司 目标对象处理方法、装置以及电子设备
WO2023040330A1 (zh) * 2021-09-14 2023-03-23 超聚变数字技术有限公司 数据处理的方法、装置以及系统
CN116661969A (zh) * 2023-06-07 2023-08-29 上海汉朔信息科技有限公司 一种基于消息队列的业务处理方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090199192A1 (en) * 2008-02-05 2009-08-06 Robert Laithwaite Resource scheduling apparatus and method
CN108268319A (zh) * 2016-12-31 2018-07-10 中国移动通信集团河北有限公司 任务调度方法、装置及系统
CN110096342A (zh) * 2019-05-08 2019-08-06 深圳乐信软件技术有限公司 任务处理方法、装置、服务器和存储介质
CN112416562A (zh) * 2020-12-11 2021-02-26 深圳市思迪信息技术股份有限公司 一种分布式任务调度引擎的方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090199192A1 (en) * 2008-02-05 2009-08-06 Robert Laithwaite Resource scheduling apparatus and method
CN108268319A (zh) * 2016-12-31 2018-07-10 中国移动通信集团河北有限公司 任务调度方法、装置及系统
CN110096342A (zh) * 2019-05-08 2019-08-06 深圳乐信软件技术有限公司 任务处理方法、装置、服务器和存储介质
CN112416562A (zh) * 2020-12-11 2021-02-26 深圳市思迪信息技术股份有限公司 一种分布式任务调度引擎的方法及装置

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113641482A (zh) * 2021-08-31 2021-11-12 联通(广东)产业互联网有限公司 Ai算法离线调度方法、系统、计算机设备及存储介质
CN113641482B (zh) * 2021-08-31 2024-03-22 联通(广东)产业互联网有限公司 Ai算法离线调度方法、系统、计算机设备及存储介质
CN113703947A (zh) * 2021-09-01 2021-11-26 上海漫酷网络技术有限公司 一种分布式任务处理系统、方法、计算机设备和存储介质
WO2023040330A1 (zh) * 2021-09-14 2023-03-23 超聚变数字技术有限公司 数据处理的方法、装置以及系统
CN113542807B (zh) * 2021-09-14 2022-02-22 杭州博雅鸿图视频技术有限公司 基于数字视网膜平台的资源管理调度方法以及系统
CN113542807A (zh) * 2021-09-14 2021-10-22 杭州博雅鸿图视频技术有限公司 基于数字视网膜平台的资源管理调度方法以及系统
CN113867145A (zh) * 2021-09-29 2021-12-31 中国第一汽车股份有限公司 一种应用控制方法、装置、电子设备及存储介质
WO2023051315A1 (zh) * 2021-09-29 2023-04-06 中国第一汽车股份有限公司 应用控制方法、装置、电子设备及存储介质
CN114356542A (zh) * 2021-11-30 2022-04-15 杭州光云科技股份有限公司 海量任务异步处理方法、装置、计算机设备及存储介质
CN114416346A (zh) * 2021-12-23 2022-04-29 广州市玄武无线科技股份有限公司 一种多节点任务调度方法、装置、设备及存储介质
CN114827155A (zh) * 2022-03-14 2022-07-29 南京邮电大学 一种分布式监控视频质量分析系统及其资源调度方法
CN114995898A (zh) * 2022-05-13 2022-09-02 Oppo广东移动通信有限公司 目标对象处理方法、装置以及电子设备
CN114880131A (zh) * 2022-07-11 2022-08-09 中科雨辰科技有限公司 一种基于任务的动态编排系统
CN116661969A (zh) * 2023-06-07 2023-08-29 上海汉朔信息科技有限公司 一种基于消息队列的业务处理方法及系统
CN116661969B (zh) * 2023-06-07 2024-03-12 上海汉朔信息科技有限公司 一种基于消息队列的业务处理方法及系统

Also Published As

Publication number Publication date
CN112882813B (zh) 2022-07-22

Similar Documents

Publication Publication Date Title
CN112882813B (zh) 任务调度方法、装置、系统及电子设备
CN110825535B (zh) 一种作业调度的方法和系统
CN107729139B (zh) 一种并发获取资源的方法和装置
CN107291547B (zh) 一种任务调度处理方法、装置及系统
CN106844198B (zh) 一种分布式调度自动化测试平台及方法
US9038068B2 (en) Capacity reclamation and resource adjustment
US7844969B2 (en) Goal-oriented predictive scheduling in a grid environment
US20150067028A1 (en) Message driven method and system for optimal management of dynamic production workflows in a distributed environment
US7085831B2 (en) Intelligent system control agent for managing jobs on a network by managing a plurality of queues on a client
US11311722B2 (en) Cross-platform workload processing
US9323591B2 (en) Listening for externally initiated requests
US7996507B2 (en) Intelligent system control agent for managing jobs on a network by managing a plurality of queues on a client
CN115840631B (zh) 基于raft的高可用分布式任务调度方法和设备
CN113051019A (zh) 流程任务执行管控方法、装置以及设备
KR101416280B1 (ko) 이벤트 처리 시스템 및 방법
CN110611707A (zh) 一种任务调度的方法及装置
US20220179711A1 (en) Method For Platform-Based Scheduling Of Job Flow
CN113703997A (zh) 集成多种消息代理的双向异步通信中间件系统及实现方法
US11231967B2 (en) Dynamically allocating and managing cloud workers
CN112799908B (zh) 基于边缘计算的智能终端安全监控方法、设备和介质
CN114201294A (zh) 一种任务处理方法、装置、系统、电子设备及存储介质
US20230333884A1 (en) Method and system for performing domain level scheduling of an application in a distributed multi-tiered computing environment using reinforcement learning
US20230333880A1 (en) Method and system for dynamic selection of policy priorities for provisioning an application in a distributed multi-tiered computing environment
CN113472638B (zh) 边缘网关控制方法及系统、装置、电子设备、存储介质
WO2023116276A1 (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