一种任务调度执行方法及装置与流程

文档序号:21361566发布日期:2020-07-04 04:35阅读:155来源:国知局
一种任务调度执行方法及装置与流程

本发明涉及大数据平台应用领域,尤其涉及一种任务调度执行方法及装置。



背景技术:

在大数据平台下,为确保平台内任务的有效执行,平台通常搭建任务调度平台对任务进行管理。任务调度系统依据任务间依赖关系、资源约束、优先级等调度参数精准控制任务的执行。

通用任务调度平台,具备对不同任务类型任务的执行能力,依据实现配置的任务调度参数:依赖关系、优先级、资源预估占用、运行周期等,实现任务的可控执行。处于通用性和可扩展性考虑,调度平台通常由任务派发、任务执行等服务构成。传统任务调度为了避免任务实例派发的冲突,通常以单机模式进行部署。

当多任务需要并发派发执行时,任务调度一般根据事先配置的任务优先级,依据可用的平台资源(主机cpu、网络、内存等)来派发任务实例,即在有可用资源的基础上,优先级高的任务优先执行。但仅通过优先级静态地、简单地比较当前待执行任务的优先级大小来决定执行资源的分配,无法保障核心任务执行的时效性:当遇到任务高并发时段时,出现任务争抢资源的情况,往往会导致优先级相对不高的任务,执行时间长且长期占用资源,而优先级高的核心紧急任务因无法获得资源而导致任务调度执行的时效性差的问题。



技术实现要素:

本发明实施例提供一种任务调度执行方法及装置,以解决现有的任务调度执行方法时效性差的问题。

为了解决上述技术问题,本发明是这样实现的:

第一方面,本发明实施例提供了一种任务调度执行方法,包括:每隔第一预设周期,获取待执行的第一任务列表;

根据深度优先搜索dfs算法确定所述第一任务列表中优先执行的第二任务列表;

调度执行资源执行所述第二任务列表中的任务。

第二方面,本发明实施例提供了一种任务调度执行装置,包括:

获取模块,用于每隔第一预设时长,获取待执行的第一任务列表;

确定模块,用于根据深度优先搜索dfs算法确定所述第一任务列表中优先执行的第二任务列表;

调度模块,用于调度执行资源执行所述第二任务列表中的任务。

第三方面,本发明实施例提供了一种任务调度执行装置,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述任一项任务调度执行方法的步骤。

第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项任务调度执行方法的步骤。

本发明实施例通过每隔第一预设时长获取待执行的第一任务列表,并根据深度优先搜索算法确定优先执行的第二任务列表,优先调度执行资源执行已确定的第二任务列表,能够实现在任务高并发时间段优先调度执行资源执行优先级高的核心紧急任务,提升了任务调度执行的时效性。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的任务调度执行方法的流程图;

图2是本发明实施例提供的第一任务列表中部分任务的示意图;

图3是本发明实施例提供的任务节点图之一;

图4是本发明实施例提供的任务节点图之二;

图5是本发明实施例提供的任务调度执行装置的结构示意图之一;

图6是本发明实施例提供的任务调度执行装置的结构示意图之二;

图7是本发明实施例提供的网络侧设备的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

参见图1,图1是本发明实施例提供的一种任务调度执行方法的流程图,如图1所示,包括以下步骤:

步骤101、每隔第一预设时长,获取待执行的第一任务列表。

其中,上述第一任务列表为当前时段需要调度执行的任务,如业务数据报表加工及共享清单等任务。上述步骤101用于定时更新待执行的第一任务列表。

在本发明实施例中,上述第一任务列表可以在经过配置后通过ignite分布式缓存进行存储,从而便于高效读存,同时提升了存储的可靠性。

步骤102、根据深度优先搜索dfs算法确定所述第一任务列表中优先执行的第二任务列表。

本发明实施例中,上述深度优先搜索(depth-first-search,简称dfs)算法用于遍历基于第一任务列表建立的有向无环图(directedacyclicgraph,简称dag),根据全图的优先级最终确定上述第二任务列表。

步骤103、调度执行资源执行所述第二任务列表中的任务。

其中,上述执行资源可以为基于分布式架构下的多个执行器,通过调用执行器执行上述第二任务列表中的任务。

本发明实施例通过每隔第一预设时长获取待执行的第一任务列表,并根据深度优先搜索算法确定优先执行的第二任务列表,优先调度执行资源执行已确定的第二任务列表,能够实现在任务高并发时间段优先调度执行资源执行优先级高的核心紧急任务,提升了任务调度执行的时效性。

进一步的,在上述步骤102之前,上述方法还包括:

根据有向无环图模型建立至少一个任务节点图,所述任务节点图与所述第一任务列表一一对应,每一所述任务节点图包括目标任务或者目标任务和所述目标任务关联的前置任务形成的至少一条任务路径,所述目标任务为所述第一任务列表中的任一项任务。

在本发明实施例中,上述任务节点图即可以看作有向无环图,上述任务节点图中的任务节点间的指向关系即代表了任务节点之间的依赖关系。上述目标任务关联的前置任务为执行上述目标任务前必要执行的任务,即前置任务可以为一个或多个,且包括执行目标任务关联的前置任务前必要执行的任务。换句话说,上述目标任务与目标任务关联的前置任务间的依赖关系为,目标任务依赖目标任务关联的前置任务。

上述任务路径可以包括至少一个任务节点,该至少一个任务节点包括上述第一目标任务中的目标任务对应的任务节点。在上述任务路径包括至少两个任务节点时,该至少两个任务节点包括目标任务对应的任务节点与目标任务关联的前置任务对应的任务节点。

本发明实施例根据有向无环图模型建立任务节点图,从而便于通过深度优先搜索算法确定上述第二任务列表。

进一步的,上述步骤102具体包括:

每隔第二预设时长,遍历所述第一任务列表中各任务节点图,确定各任务节点图内优先执行的最优路径,所述最优路径为所述任务节点图内任务路径权值最大的任务路径,所述任务路径权值为任务路径中相邻任务节点的连接权值之和,所述相邻任务节点的连接权值由所述相邻任务节点的优先级确定;

确定全图优先级最高的第一任务节点图,所述全图优先级为所述任务节点图内各任务路径权值之和,所述第一任务节点图中最优路径的任务组成所述第二任务列表。

在本发明实施例中,上述连接权值由两个直接关联的任务的预设优先级确定,且两个任务中,一任务为另一任务的前置任务。若两任务的预设优先级之和越高,则两任务之间的连接权值越高。

举例说明,若上述一任务节点图中存在目标任务a,目标任务a的前置任务b与前置任务c,而前置任务c又存在前置任务d,则目标任务a与前置任务b形成任务路径x,目标任务a、前置任务c与前置任务d形成任务路径y。其中,若目标任务a与目标任务b的连接权值为4,则任务路径x的权值为4;若前置任务d与前置任务c的连接权值为1,任务a与任务c的连接权值为2,则任务路径y的权值为2+1=3。即在本任务节点图中的最优任务路径为任务路径x,本任务节点图的全图优先级为4+3=7。若另一任务节点图的全图优先级为6,则在两任务节点图中优先确保全图优先级为7的任务节点图的执行资源。而在全图优先级为7的任务节点图中,优先确保任务路径x的执行资源。

本发明实施例通过深度优先搜索算法为基础的自动识别高优先级任务路径机制,以动态“最优任务路径”优先级替代静态的“任务”优先级,通过定时检查全量任务,动态识别最高优先级任务路径,进而通过确保高优先级任务路径的资源来保障核心紧急任务的执行,从而提高优先级高的任务执行时效性。

需要说明的是,上述任务路径权值基于上述任务路径中各任务节点对应的优先级计算得到,即上述任务路径权值可以为上述任务路径中相邻任务节点的连接权值之和,也可以为各任务节点对应的优先级之和,在此不作进一步的限定。

进一步的,上述方法还包括:

在执行资源不足的情况下,通过增加额外执行器以在线扩展执行资源;

在执行资源充足的情况下,注册所述第二任务列表中的任务。

在本发明实施例中,可以对资源情况进行评估,进而进行资源调配。在资源充足的情况下,可以直接通过调用任务注册服务器将上述第二任务列表中的任务注册写入任务池。而在执行资源不足的情况下,可以通过增加额外的执行器以在线扩展执行资源。

进一步的,上述步骤103具体包括:

在zookeeper集群中创建所述第二任务列表中的任务对应的任务实例节点;

轮询查看各任务实例节点的占用状态;

根据预设策略执行所述第二任务列表中的任务,所述预设策略为,

在所述任务实例节点的占用状态为未占用时,调度所述执行资源执行所述任务实例节点对应的任务;

在所述任务实例节点对应的任务被执行时,修改所述任务实例节点的占用状态为被占用。

本发明实施例通过zookeeper的分布式锁机制,可以防止同一任务占用执行器,防止资源的浪费。同时zookeeper的分布式协调集群可在无重启(不中断调度服务)情况下增加执行器,实现不影响运行任务来增加调度任务量,达到减少生产风险的同时也方便了运行维护。

为了更好的理解本发明,以下将以一具体实施方式为例,详细阐述本发明的具体实现过程。

上述任务调度执行方法可以通过一分布式调度架构实现,该分布式调度架构可以解耦为统一任务配置中心、统一调度中心和执行中心三个模块。

其中,任务配置中心主要通过haproxy+keepalive方式实现了高可用负载均衡,保障相关服务的高可用性。服务主要包含了任务配置管理、任务运行管理、任务监控与告警管理以及统一调度日志查询。

在本发明实施例中,任务配置中心用于执行定时获取第一任务列表的步骤,并可以对第一任务列表中的任务预先进行配置管理,而后将第一任务列表存储于ignite分布式缓存中。

统一调度中心承载着资源分配、优先级排序、依赖关系满足判断以及任务注册,为解决传统调度派发的弊端,引入了深度优先搜索算法来自动识别高优先级任务树机制,通过该算法定时周期性遍历任务执行资源占用、历时、依赖和原始优先级等信息。通过深度学习获得最优路径的方式,自动识别出最高优先级任务树,进而通过确保高优先级任务树的资源来保障核心紧急任务的执行。

在本发明实施例中,统一调度中心用于执行根据深度优先搜索算法确定所述第一任务列表中优先执行的第二任务列表的步骤,

若以图2-图4为例,参照图2,任务4与任务5为上述第一任务列表中的两目标任务,由图中的箭头指向可以看出目标任务与前置任务形成的任务路径,而箭头上的数字为根据箭头连接的两任务的预设任务优先级确定的连接权值。其中,图3的任务节点图包括任务4及其前置任务,图4的任务节点图包括任务5及其前置任务。

遍历图3及图4,可以确定,图3中的最优路径为任务0-任务1-任务3-任务4,其任务路径权值为3+3+2=8,全图优先级为1+3+1+3+2=10。图4中的最优路径为任务0-任务1-任务3-任务5,其任务路径权值为3+3+3=9,全图优先级为1+3+3+3+3=13。由于图4的全图优先级高于图3的全图优先级,则优先确保图4的执行资源,而在图4中,优先确保最优路径任务0-任务1-任务3-任务5的执行资源。在执行资源充足的情况下,将最优路径任务0-任务1-任务3-任务5作为上述第二任务列表注册写入任务池。

执行中心主要通过配合zookeeper分布式锁,获取任务池中注册的待执行任务,随后将待执行任务交给对应的执行器执行,最后由其反馈执行信息。由于执行器的服务采用分布式部署,当部分执行器主机宕机或者执行服务异常的时候,并不会影响调度整体的运转,保障了高可用性,同时由于执行服务和调度派发是解耦的,通过任务池中间件交互,因此当执行器不满足预估资源时,可实现无感知(无需重启调度)在线扩展来解决资源瓶颈问题,实现无感知的在线扩展。

其中,基于协调服务zookeeper集群的分布式锁机制具体为:

在将上述第二任务列表注册写入任务池之后,即在zookeeper集群中创建对应的任务实例节点,同时在任务实例节点下创建两个子节点state和lock节点,其中lock节点是有序节点。

执行中心中各个执行器轮询查看各个任务实例节点下的state节点(状态为0表示该任务实例还没有被抢占,如果state为1表示任务实例已经被执行器抢占在任务准备状态,如果state为2表示已经有执行器在执行该任务实例),当特定执行器发现有任务实例的state节点为0的时候,就将state节点改为1,同时在lock节点下创建一个标识节点,确保该任务实例已经被改执行器抢占,即获得了该实例的锁,此时其他执行器将不能够再获取该任务实例。当执行中心执行任务成功,修改任务实例状态为2。

本发明实施例实现了以深度优先搜索算法为基础的自动识别最优路径机制,以动态“最优路径”优先级替代静态的“任务”优先级,通过定时检查全量任务,动态识别最高优先级任务路径,进而通过确保高优先级任务路径的资源来保障核心紧急任务的执行,从而提高优先级高的任务执行时效性。

同时,以基于zookeeper的分布式协调集群,实现了任务调度在线扩展能力,当调度任务导致执行器均达到性能瓶颈时,可在无重启(不中断调度服务)情况下增加执行器,实现不影响运行任务来增加调度任务量,达到减少生产风险的同时也方便了运行维护。所有环节的服务均是分布式方式部署,分布式架构的方式也保障了架构的高可用性,在很大程度上增加了架构的安全性。

需要说明的是,本发明实施例中介绍的多种可选的实施方式,彼此可以相互结合实现,也可以单独实现,对此本发明实施例不作限定。

参见图5,图5是本发明实施例提供的任务调度执行装置500的结构图,如图5所示,任务调度执行装置500包括:

获取模块501,用于每隔第一预设时长,获取待执行的第一任务列表;

确定模块502,用于根据深度优先搜索算法确定所述第一任务列表中优先执行的第二任务列表;

调度模块503,用于调度执行资源执行所述第二任务列表中的任务。

进一步的,上述任务调度执行装置500还包括:

建立模块,用于根据有向无环图模型建立至少一个任务节点图,所述任务节点图与所述第一任务列表一一对应,每一所述任务节点图包括目标任务或者目标任务和所述目标任务关联的前置任务形成的至少一条任务路径,所述目标任务为所述第一任务列表中的任一项任务。

进一步的,上述确定模块502包括:

第一确定单元,用于每隔第二预设时长,遍历所述第一任务列表中各任务节点图,确定各任务节点图内优先执行的最优路径,所述最优路径为所述任务节点图内任务路径权值最大的任务路径,所述任务路径权值为任务路径中相邻任务节点的连接权值之和,所述相邻任务节点的连接权值由所述相邻任务节点的优先级确定;

第二确定单元,用于确定全图优先级最高的第一任务节点图,所述全图优先级为所述任务节点图内各任务路径权值之和,所述第一任务节点图中最优路径的任务组成所述第二任务列表。

进一步的,上述任务调度执行装置500还包括:

扩展模块,用于在执行资源不足的情况下,通过增加额外执行器以在线扩展执行资源;

注册模块,用于在执行资源充足的情况下,注册所述第二任务列表中的任务。

进一步的,上述调度模块503包括:

创建单元,用于在zookeeper集群中创建所述第二任务列表中的任务对应的任务实例节点;

查询单元,用于轮询查看各任务实例节点的占用状态;

执行单元,用于根据预设策略执行所述第二任务列表中的任务,所述预设策略为,

在所述任务实例节点的占用状态为未占用时,调度所述执行资源执行所述任务实例节点对应的任务;

在所述任务实例节点对应的任务被执行时,修改所述任务实例节点的占用状态为被占用。

本发明实施例提供的任务调度执行装置500能够实现图1的方法实施例中任务调度执行装置实现的各个过程,为避免重复,这里不再赘述。

图6为实现本发明各个实施例的一种任务调度执行装置的硬件结构示意图。

该任务调度执行装置600包括但不限于:射频单元601、网络模块602、音频输出单元603、输入单元604、传感器605、显示单元606、用户输入单元607、接口单元608、存储器609、处理器610、以及电源611等部件。本领域技术人员可以理解,图6中示出的任务调度执行装置结构并不构成对任务调度执行装置的限定,任务调度执行装置可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。在本发明实施例中,任务调度执行装置包括但不限于手机、平板电脑、笔记本电脑、掌上电脑、车载终端、可穿戴设备、以及计步器等。

其中,处理器610,用于每隔第一预设时长,获取待执行的第一任务列表;

根据深度优先搜索dfs算法确定所述第一任务列表中优先执行的第二任务列表;

调度执行资源执行所述第二任务列表中的任务。

在本发明实施例中,通过每隔第一预设时长获取待执行的第一任务列表,并根据深度优先搜索算法确定优先执行的第二任务列表,优先调度执行资源执行已确定的第二任务列表,能够实现在任务高并发时间段优先调度执行资源执行优先级高的核心紧急任务,提升了任务调度执行的时效性。

应理解的是,本发明实施例中,射频单元601可用于收发信息或通话过程中,信号的接收和发送,具体的,将来自基站的下行数据接收后,给处理器610处理;另外,将上行的数据发送给基站。通常,射频单元601包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器、双工器等。此外,射频单元601还可以通过无线通信系统与网络和其他设备通信。

任务调度执行装置通过网络模块602为用户提供了无线的宽带互联网访问,如帮助用户收发电子邮件、浏览网页和访问流式媒体等。

音频输出单元603可以将射频单元601或网络模块602接收的或者在存储器609中存储的音频数据转换成音频信号并且输出为声音。而且,音频输出单元603还可以提供与任务调度执行装置600执行的特定功能相关的音频输出(例如,呼叫信号接收声音、消息接收声音等等)。音频输出单元603包括扬声器、蜂鸣器以及受话器等。

输入单元604用于接收音频或视频信号。输入单元604可以包括图形处理器(graphicsprocessingunit,gpu)6041和麦克风6042,图形处理器6041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。处理后的图像帧可以显示在显示单元606上。经图形处理器6041处理后的图像帧可以存储在存储器609(或其它存储介质)中或者经由射频单元601或网络模块602进行发送。麦克风6042可以接收声音,并且能够将这样的声音处理为音频数据。处理后的音频数据可以在电话通话模式的情况下转换为可经由射频单元601发送到移动通信基站的格式输出。

任务调度执行装置600还包括至少一种传感器605,比如光传感器、运动传感器以及其他传感器。具体地,光传感器包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板6061的亮度,接近传感器可在任务调度执行装置600移动到耳边时,关闭显示面板6061和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别任务调度执行装置姿态(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;传感器605还可以包括指纹传感器、压力传感器、虹膜传感器、分子传感器、陀螺仪、气压计、湿度计、温度计、红外线传感器等,在此不再赘述。

显示单元606用于显示由用户输入的信息或提供给用户的信息。显示单元606可包括显示面板6061,可以采用液晶显示器(liquidcrystaldisplay,lcd)、有机发光二极管(organiclight-emittingdiode,oled)等形式来配置显示面板6061。

用户输入单元607可用于接收输入的数字或字符信息,以及产生与任务调度执行装置的用户设置以及功能控制有关的键信号输入。具体地,用户输入单元607包括触控面板6071以及其他输入设备6072。触控面板6071,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板6071上或在触控面板6071附近的操作)。触控面板6071可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器610,接收处理器610发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板6071。除了触控面板6071,用户输入单元607还可以包括其他输入设备6072。具体地,其他输入设备6072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。

进一步的,触控面板6071可覆盖在显示面板6061上,当触控面板6071检测到在其上或附近的触摸操作后,传送给处理器610以确定触摸事件的类型,随后处理器610根据触摸事件的类型在显示面板6061上提供相应的视觉输出。虽然在图6中,触控面板6071与显示面板6061是作为两个独立的部件来实现任务调度执行装置的输入和输出功能,但是在某些实施例中,可以将触控面板6071与显示面板6061集成而实现任务调度执行装置的输入和输出功能,具体此处不做限定。

接口单元608为外部装置与任务调度执行装置600连接的接口。例如,外部装置可以包括有线或无线头戴式耳机端口、外部电源(或电池充电器)端口、有线或无线数据端口、存储卡端口、用于连接具有识别模块的装置的端口、音频输入/输出(i/o)端口、视频i/o端口、耳机端口等等。接口单元608可以用于接收来自外部装置的输入(例如,数据信息、电力等等)并且将接收到的输入传输到任务调度执行装置600内的一个或多个元件或者可以用于在任务调度执行装置600和外部装置之间传输数据。

存储器609可用于存储软件程序以及各种数据。存储器609可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器609可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

处理器610是任务调度执行装置的控制中心,利用各种接口和线路连接整个任务调度执行装置的各个部分,通过运行或执行存储在存储器609内的软件程序和/或模块,以及调用存储在存储器609内的数据,执行任务调度执行装置的各种功能和处理数据,从而对任务调度执行装置进行整体监控。处理器610可包括一个或多个处理单元;优选的,处理器610可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器610中。

任务调度执行装置600还可以包括给各个部件供电的电源611(比如电池),优选的,电源611可以通过电源管理系统与处理器610逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。

另外,任务调度执行装置600包括一些未示出的功能模块,在此不再赘述。

优选的,本发明实施例还提供一种移动终端,包括处理器710,存储器709,存储在存储器709上并可在所述处理器710上运行的计算机程序,该计算机程序被处理器710执行时实现上述任务调度执行方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。

本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述任务调度执行方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(read-onlymemory,简称rom)、随机存取存储器(randomaccessmemory,简称ram)、磁碟或者光盘等。

请参阅图7,图7是本发明实施例提供的网络侧设备的结构图,能够实现上述实施例中任务调度执行方法的细节,并达到相同的效果。如图7所示,网络侧设备700包括:处理器701、收发机702、存储器703、用户接口704和总线接口,其中:

处理器701,用于读取存储器703中的程序,执行下列过程:

每隔第一预设时长,获取待执行的第一任务列表;

根据深度优先搜索dfs算法确定所述第一任务列表中优先执行的第二任务列表;

调度执行资源执行所述第二任务列表中的任务。

在图7中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器701代表的一个或多个处理器和存储器703代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。收发机702可以是多个元件,即包括发送机和接收机,提供用于在传输介质上与各种其他装置通信的单元。针对不同的用户设备,用户接口704还可以是能够外接内接需要设备的接口,连接的设备包括但不限于小键盘、显示器、扬声器、麦克风、操纵杆等。

处理器701负责管理总线架构和通常的处理,存储器703可以存储处理器701在执行操作时所使用的数据。

可选的,程序被处理器701执行时还可实现如下步骤:

根据有向无环图模型建立至少一个任务节点图,所述任务节点图与所述第一任务列表一一对应,每一所述任务节点图包括目标任务和所述目标任务关联的前置任务形成的至少一条任务路径,所述目标任务为所述第一任务列表中的任一项任务。

可选的,上述根据深度优先搜索dfs算法确定所述第一任务列表中优先执行的第二任务列表的过程具体包括:

每隔第二预设时长,遍历所述第一任务列表中各任务节点图,确定各任务节点图内优先执行的最优路径,所述最优路径为所述任务节点图内任务路径权值最大的任务路径,所述任务路径权值为任务路径中相邻任务节点的连接权值之和,所述相邻任务节点的连接权值由所述相邻任务节点的优先级确定;

确定全图优先级最高的第一任务节点图,所述全图优先级为所述任务节点图内各任务路径权值之和,所述第一任务节点图中最优路径的任务组成所述第二任务列表。

可选的,程序被处理器701执行时还可实现如下步骤:

在执行资源不足的情况下,通过增加额外执行器以在线扩展执行资源;

在执行资源充足的情况下,注册所述第二任务列表中的任务。

可选的,上述调度执行资源执行所述第二任务列表中的任务的过程具体包括:

在zookeeper集群中创建所述第二任务列表中的任务对应的任务实例节点;

轮询查看各任务实例节点的占用状态;

根据预设策略执行所述第二任务列表中的任务,所述预设策略为,

在所述任务实例节点的占用状态为未占用时,调度所述执行资源执行所述任务实例节点对应的任务;

在所述任务实例节点对应的任务被执行时,修改所述任务实例节点的占用状态为被占用。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1