一种基于Actor模型的任务调度方法、装置及存储介质制造方法及图纸

技术编号:22101648 阅读:23 留言:0更新日期:2019-09-14 03:14
本申请公开了一种基于Actor模型的任务调度方法、任务调度装置及计算机可读存储介质,应用于数据处理领域,其中方法包括:检测任务集群中是否存在新增的目标任务;在检测到任务集群中存在新增的目标任务的情况下,为目标任务创建Actor模型,Actor模型包括多个工作节点,多个工作节点包括一个调度节点和至少一个任务节点;利用调度节点通过消息传递的方式调用至少一个任务节点执行目标任务;在检测到目标任务完成之后,在任务集群中删除目标任务。本申请提供了一种基于Actor模型的任务调度方法,由于调度节点和任务节点都是Actor节点,使得本申请不需要锁便能完成任务调度,大大的提高了任务调度的效率。

A Task Scheduling Method, Device and Storage Medium Based on Actor Model

【技术实现步骤摘要】
一种基于Actor模型的任务调度方法、装置及存储介质
本申请涉及任务调度领域,尤其涉及一种任务调度方法、装置及计算机可读存储介质。
技术介绍
任务调度常常因为多线程或多进程并发访问某个临界资源而陷入死锁,这时可通过对该临界资源进行加锁,来建立线程或进程之间的互斥同步机制,以保障临界资源的完整性和一致性。单机的进程同步和线程同步有很多可用的互斥方案,比如互斥锁、信号量和条件变量等。但这些单机下的互斥方案在多机上是无法使用的,因为分布式系统的组件运行在不同的机器上,使得其不在统一的运行环境中。分布式任务调度中,常常通过分布式锁解决对临界资源的互斥访问,比如Redis分布式锁和Zookeeper分布式锁的等。但是分布式锁的实现比较复杂,且维护比较麻烦,需要较多维护成本,因此分布式锁不是一个解决分布式任务调度的死锁问题的理想方案,还是缺少了一种可以更高效的分布式任务调度方法。
技术实现思路
本申请实施例提供一种任务调度方法,可以不使用锁便实现分布式任务调度和处理。第一方面,本申请实施例提供了一种任务调度方法,该方法包括:检测任务集群中是否存在新增的目标任务;在检测到所述任务集群中存在新增的目标任务的情况下,为所述目标任务创建Actor模型,所述Actor模型包括多个工作节点,所述多个工作节点之间通过消息传递的方式通信,所述多个工作节点中至少存在两个工作节点分别分布于不同的终端上,所述多个工作节点包括一个调度节点和至少一个任务节点,所述调度节点用于调用所述任务节点执行任务;利用所述调度节点通过所述消息传递的方式调用所述至少一个任务节点执行所述目标任务;在检测到所述目标任务完成之后,在所述任务集群中删除所述目标任务。第二方面,本申请实施例提供了一种任务调度装置,该任务调度装置包括用于执行上述第一方面的任务调度方法的单元,该任务调度装置包括:检测单元,用于检测任务集群中是否存在新增的目标任务;创建单元,用于在检测到任务集群中存在新增的目标任务的情况下,为所述目标任务创建Actor模型,所述Actor模型包括多个工作节点,所述多个工作节点之间通过消息传递的方式通信,所述多个工作节点中至少存在两个工作节点分别分布于不同的终端上,所述多个工作节点包括一个调度节点和至少一个任务节点,所述调度节点用于调用所述任务节点执行任务;执行单元,用于利用所述调度节点通过所述消息传递的方式调用所述至少一个任务节点执行所述目标任务;删除单元,用于在检测到所述目标任务完成之后,在所述任务集群中删除所述目标任务。第三方面,本申请实施例提供了另一种任务调度装置,包括处理器和存储器,所述处理器和存储器相互连接,其中,所述存储器用于存储支持任务调度装置执行上述任务调度方法的计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,用以执行上述第一方面至第一方面的任意一种实现方式的任务调度方法。第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行,用以执行上述第一方面至第一方面的任意一种实现方式的任务调度方法。本申请每当检测到目标任务,就为该目标任务建立包括调度节点和任务节点的Actor模型,并利用调度节点来调度任务节点执行目标任务,在检测到目标任务完成之后,删除该目标任务,可见,本申请所提供的任务调度方法中,由于调度节点和任务节点都是Actor,于是调度节点和任务节点是通过信息传递的方式进行通信的,而信息传递的好处就是不会产生数据竞争的问题,在处理任务的时候无需同步阻塞等待,于是本申请也便不需要借助于锁便可以实现复杂的分布式任务调度,并且大大提高分布式任务处理的并发性能,可见,本申请提供了一种高效的任务调度方法。附图说明为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。图1是本申请实施例提供的一种任务调度方法的示意流程图;图2是本申请另一实施例提供的一种任务调度方法的示意流程图;图3是本申请实施例提供的一种任务调度装置的示意性框图;图4是本申请实施例提供的一种任务调度装置的结构性框图。具体实施方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。本申请主要应用于任务调度装置,该任务调度装置可以是传统任务调度装置、大型存储系统、台式电脑、笔记本电脑、平板电脑、掌上电脑、智能手机、便携式数字播放器、智能手表以及智能手环等等,本申请对此不做限制。本申请实施例中描述的终端包括但不限于带通讯功能的设备、智能手机、平板电脑、笔记本电脑、台式电脑、便携式数字播放器、智能手环以及智能手表等。当终端向任务调度装置发送数据的时候,按照预设格式进行对数据的特性进行记录并传送,其中,数据的特性包括时间、地点、类型等。参见图1,是本申请实施例提供一种任务调度方法的示意流程图,如图1所示任务调度方法可包括:101:检测任务集群中是否存在新增的目标任务。在本申请实施例中,检测任务集群中是否存在新增的任务,若存在新增的任务,则将该新增的任务作为目标任务。其中,任务集群指的是待处理的任务的集合,且该任务集群中的不同任务可能由不同的终端所提出,而任务集群中的任务可能是由多个终端共同处理的分布式任务,也可能是仅由一个终端处理的单机任务,检测的过程指的是,本端的任务调度装置定时检测任务集群中是否存在新增的任务,或者任务集群中新增一个任务,本端装置便能接收到用于指示任务集群中新增任务的消息。在另一种可实施的方式中,上述目标任务不是任务集群中新增的任意任务,而是任务集群中新增的分布式任务,具体的,上述检测任务集群中是否存在新增的目标任务指的是,检测任务集群中的新增的任务,若确定该新增的任务为分布式任务,则确定检测到任务集群中存在新增的目标任务。在本申请实施例中,上述检测任务集群中新增的任务为分布式任务的过程指的是,获取上述任务集群中新增的任务的类型,若该新增的任务的类型为分布式任务,则表示该新增的任务的类型为分布式任务,或者,获取上述新增的任务的难度等级,若确定该新增的任务的难度等级超过预设级别,则说明该新增的任务需要占用较多的计算资源,并确定该新增的任务为分布式任务,也即是将该难度级别超过预设级别的任务作为目标任务,并接下来采用分布式任务的处理方法对其进行处理。可见,本申请实施例只有在确定任务集群新增了分布式任务的时候,才确定任务集群中有新增的目标任务,上述检测到的任务集群中新增的分布式任务即目标任务。102:在检测到上述任务集群中存在新增的目标任务的情况下,为该目标任务创建Actor模型,Actor模型包括多个工作节点,多个工作节点包括一个调度节点和至少一个任务节点。在本申请实施例中,Actor模型为一个用于任务处理的模型,具体来说Actor模型是一个概念模型,用于处理并发计算,它定义了一系列系统组件应该如何动作和交互的通用规则。Actor模型中包含了多个Actor,Actor在本申请实施例中被称为工作节点,每个工作节点是Actor模型中进行任务处理的最基本的计算单元,它能接收一个消息并且基于其执行计算。于是上述根据该目标任务的执行内容创建包含多个工作节点的Actor模型指的是,对目标任务进行分解,本文档来自技高网...

【技术保护点】
1.一种基于Actor模型的任务调度方法,其特征在于,包括:检测任务集群中是否存在新增的目标任务;在检测到所述任务集群中存在新增的目标任务的情况下,为所述目标任务创建Actor模型,所述Actor模型包括多个工作节点,所述多个工作节点之间通过消息传递的方式通信,所述多个工作节点中至少存在两个工作节点分别分布于不同的终端上,所述多个工作节点包括一个调度节点和至少一个任务节点,所述调度节点用于调用所述任务节点执行任务;利用所述调度节点通过所述消息传递的方式调用所述至少一个任务节点执行所述目标任务;在检测到所述目标任务完成之后,在所述任务集群中删除所述目标任务。

【技术特征摘要】
1.一种基于Actor模型的任务调度方法,其特征在于,包括:检测任务集群中是否存在新增的目标任务;在检测到所述任务集群中存在新增的目标任务的情况下,为所述目标任务创建Actor模型,所述Actor模型包括多个工作节点,所述多个工作节点之间通过消息传递的方式通信,所述多个工作节点中至少存在两个工作节点分别分布于不同的终端上,所述多个工作节点包括一个调度节点和至少一个任务节点,所述调度节点用于调用所述任务节点执行任务;利用所述调度节点通过所述消息传递的方式调用所述至少一个任务节点执行所述目标任务;在检测到所述目标任务完成之后,在所述任务集群中删除所述目标任务。2.根据权利要求1所述的方法,其特征在于,所述多个工作节还包括至少一个备用调度节点,所述备用调度节点用于替换宕机的调度节点,所述方法还包括:若检测到所述调度节点宕机,则从所述至少一个备用调度节点中选取一个备用调度节点作为新的调度节点。3.根据权利要求2所述的方法,其特征在于,所述从所述至少一个备用调度节点中选取一个备用调度节点作为新的调度节点,包括:分别获取所述至少一个备用调度节点的创建时间,并确定所述至少一个备用调度节点中创建时间最早的调度节点;将所述创建时间最早的备用调度节点作为所述新的调度节点。4.根据权利要求2所述的方法,其特征在于,所述为所述目标任务创建Actor模型,包括:获取所述目标任务的标签,所述标签用于指示所述目标任务的重要程度;获取所述目标任务的标签对应的目标数量,所述目标数量用于指示所述Actor模型中的备用调度节点的个数;创建包括所述目标数量的备用调度节点的Actor模型。5.根据权利要求1所述的方法,其特征在于,所述多个工作节点还包括至少一个监控节点,所述监控节点用于初始化宕机的调度节点,所述方法还包括:若检测到所述调度节点宕机,则利用所述监控节点对所述宕机的调度节点进行初始化,...

【专利技术属性】
技术研发人员:袁康
申请(专利权)人:平安科技深圳有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1