一种任务调度方法、装置及设备制造方法及图纸

技术编号:21140629 阅读:18 留言:0更新日期:2019-05-18 05:02
本申请公开了一种任务调度方法、装置及设备,其中方法包括:获取调度请求,所述调度请求用于请求调度存储于数据库中工作流中的任务;所述工作流包括多个任务;响应于获取到的所述调度请求,从所述数据库中调度出所述工作流中的第一任务,且将所述第一任务存入消息队列;判断所述第一任务是否为空闲的任务,如果所述第一任务是空闲的任务,则执行所述第一任务,并将所述第一任务的执行状态写入到所述数据库中;从所述数据库中查询所述第一任务的执行状态,如果所述第一任务执行成功,则从所述数据库中调度出第二任务;所述第二任务为所述工作流中所述第一任务的下游任务。采用本申请,可提高机器学习系统的资源利用率。

A Task Scheduling Method, Device and Equipment

【技术实现步骤摘要】
一种任务调度方法、装置及设备
本申请涉及机器学习
,尤其涉及一种任务调度方法、装置及设备。
技术介绍
随着机器学习的广泛应用,机器学习受到了业界的广泛关注。机器学习过程包含数据集预处理、特征处理、模型训练及模型部署等步骤,例如,算法工程师建立数据模型时,先编写个脚本做数据预处理,之后再写一个脚本做特征处理、模型训练脚本最后到模型训练部署的脚本编辑结束为止。可见,每次需要花费大量时间和精力重新构建不同的机器学习步骤来完成机器学习框架的搭建,这不仅提高了机器学习使用门槛,降低算法工程师的工作效率,而且降低了机器学习系统的资源利用率。
技术实现思路
本申请提供一种任务调度方法、装置及设备,通过组成一个包括第一任务、第二任务的工作流,第一任务成功执行完成之后,自动执行第一任务的下游任务(第二任务),一方面,可自动且迅速构建不同的机器学习步骤以完成学习框架的搭建,降低了机器学习使用门槛,提高了算法工程师的工作效率;另一方面,在第一任务成功执行完成之后,自动执行第一任务的下游任务,因而,执行工作流中任务的CPU资源几乎不会闲置,进而提高了机器学习系统的资源利用率。第一方面,本申请提供了一种任务调度方法,该方法包括:获取调度请求,所述调度请求用于请求调度存储于数据库中工作流中的任务,其中,所述工作流包括多个任务;响应于获取到的所述调度请求,从所述数据库中调度出所述工作流中的第一任务,且将所述第一任务存入消息队列;判断所述第一任务是否为空闲的任务,如果所述第一任务是空闲的任务,则执行所述第一任务,并将所述第一任务的执行状态写入到所述数据库中;从所述数据库中查询所述第一任务的执行状态,如果所述第一任务执行成功,则从所述数据库中调度出第二任务;所述第二任务为所述工作流中所述第一任务的下游任务。结合第一方面,在一些可能的实施例中,所述从所述数据库中查询所述第一任务的执行状态之后,还包括:如果所述第一任务执行失败,则清空所述消息队列中的任务。结合第一方面,在一些可能的实施例中,所述如果所述第一任务执行成功,则从所述数据库中调度出第二任务,包括:如果所述第一任务执行成功,则判断包含所述第一任务的工作流是否运行成功;如果运行成功,则判断所述第一任务是否存在下游任务,如果存在,则从所述数据库中调度出第二任务;所述第二任务为所述工作流中所述第一任务的下游任务。结合第一方面,在一些可能的实施例中,所述获取调度请求,包括:接收调度请求或查询调度请求。结合第一方面,在一些可能的实施例中,所述从所述数据库中调度出所述工作流中的第一任务之前,还包括:对通过由互联网端拖拉组件形成的工作流进行解析;将解析后的所述由互联网端拖拉组件形成的工作流存储于所述数据库。结合第一方面,在一些可能的实施例中,所述从所述数据库中调度出所述工作流中的第一任务之前,还包括:通过基于py文件定义的工作流进行解析;将解析后的所述基于py文件定义的工作流存储于所述数据库。结合第一方面,在一些可能的实施例中,所述从所述数据库中调度出所述工作流中的第一任务,且将所述第一任务存入消息队列,包括:从所述数据库中调度出一个或多个入度为零的第一任务,且将所述一个或多个入度为零的第一任务存入消息队列。第二方面,本申请提供了一种装置,该装置包括:获取单元,用于获取调度请求,所述调度请求用于请求调度存储于数据库中工作流中的任务,其中,所述工作流包括多个任务;调度单元,用于响应于获取到的所述调度请求,从所述数据库中调度出所述工作流中的第一任务,且将所述第一任务存入消息队列;判断单元,用于判断所述第一任务是否为空闲的任务,如果所述第一任务是空闲的任务,则执行所述第一任务,并将所述第一任务的执行状态写入到所述数据库中;查询单元,用于从所述数据库中查询所述第一任务的执行状态;所述调度单元,还用于如果所述第一任务执行成功,则从所述数据库中调度出第二任务;所述第二任务为所述工作流中所述第一任务的下游任务。结合第二方面,在一些可能的实施例中,获取单元,具体用于:接收调度请求或查询调度请求。结合第二方面,在一些可能的实施例中,调度单元,具体还用于:如果所述第一任务执行成功,则判断包含所述第一任务的工作流是否运行成功;如果运行成功,则判断所述第一任务是否存在下游任务,如果存在,则从所述数据库中调度出第二任务;所述第二任务为所述工作流中所述第一任务的下游任务。结合第二方面,在一些可能的实施例中,所述装置还可以包括:解析单元。解析单元,用于:从所述数据库中调度出所述工作流中的第一任务之前,对通过由互联网端拖拉组件形成的工作流进行解析;或者,从所述数据库中调度出所述工作流中的第一任务之前,对基于py文件定义的工作流进行解析。所述装置还可以包括:清理单元,具体用于:在查询单元从所述数据库中查询所述第一任务的执行状态之后,如果第一任务执行失败,则清空所述消息队列中的任务。第三方面,本申请提供了一种设备,包括输入设备、输出设备、处理器和存储器,所述处理器、输入设备、输出设备和存储器相互连接,其中,所述存储器用于存储支持设备执行上述方法的应用程序代码,所述处理器被配置用于执行上述第一方面的任务调度方法。第四方面,本申请提供了一种计算机可读的存储介质,用于存储一个或多个计算机程序,上述一个或多个计算机程序包括指令,当上述计算机程序在计算机上运行时,上述指令用于执行上述第一方面的任务调度方法。第五方面,本申请提供了一种计算机程序,该计算机程序包括任务调度指令,当该计算机程序在计算机上执行时,上述利用任务调度指令用于执行上述第一方面提供的任务调度方法。本申请提供了一种任务调度方法、装置及设备。首先,获取调度请求,调度请求用于请求调度存储于数据库中工作流中的任务,其中,工作流包括多个任务。进而,响应于获取到的所述调度请求,从数据库中调度出工作流中的第一任务,且将第一任务存入消息队列。然后,判断第一任务是否为空闲的任务,如果第一任务是空闲的任务,则执行第一任务,并将第一任务的执行状态写入到数据库中。最后,从数据库中查询第一任务的执行状态,如果第一任务执行成功,则从数据库中调度出第二任务;第二任务所述工作流中第一任务的下游任务。采用本申请,通过组成一个包括第一任务、第二任务的工作流,第一任务成功执行完成之后,自动执行第一任务的下游任务(第二任务),一方面,可自动且迅速构建不同的机器学习步骤以完成学习框架的搭建,降低了机器学习使用门槛,提高了算法工程师的工作效率;另一方面,在第一任务成功执行完成之后,自动执行第一任务的下游任务,因而,执行工作流中任务的CPU资源几乎不会闲置,进而提高了机器学习系统的资源利用率。附图说明为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本申请提供的一种任务调度系统的架构的示意流程图;图2是本申请提供的一种工作流的示意图;图3是本申请提供的一种任务调度方法的示意图;图4是本申请提供的一种工作流的任务的处理过程的示意图;图5是本申请提供的一种装置的示意性框图;图6是本申请提供的一种设备示意性框图。具体实施方式下本文档来自技高网...

【技术保护点】
1.一种任务调度方法,其特征在于,包括:获取调度请求,所述调度请求用于请求调度存储于数据库中工作流中的任务,其中,所述工作流包括多个任务;响应于获取到的所述调度请求,从所述数据库中调度出所述工作流中的第一任务,且将所述第一任务存入消息队列;判断所述第一任务是否为空闲的任务,如果所述第一任务是空闲的任务,则执行所述第一任务,并将所述第一任务的执行状态写入到所述数据库中;从所述数据库中查询所述第一任务的执行状态,如果所述第一任务执行成功,则从所述数据库中调度出第二任务;所述第二任务为所述工作流中所述第一任务的下游任务。

【技术特征摘要】
1.一种任务调度方法,其特征在于,包括:获取调度请求,所述调度请求用于请求调度存储于数据库中工作流中的任务,其中,所述工作流包括多个任务;响应于获取到的所述调度请求,从所述数据库中调度出所述工作流中的第一任务,且将所述第一任务存入消息队列;判断所述第一任务是否为空闲的任务,如果所述第一任务是空闲的任务,则执行所述第一任务,并将所述第一任务的执行状态写入到所述数据库中;从所述数据库中查询所述第一任务的执行状态,如果所述第一任务执行成功,则从所述数据库中调度出第二任务;所述第二任务为所述工作流中所述第一任务的下游任务。2.根据权利要求1所述的方法,其特征在于,所述从所述数据库中查询所述第一任务的执行状态之后,还包括:如果所述第一任务执行失败,则清空所述消息队列中的任务。3.根据权利要求1所述的方法,其特征在于,所述如果所述第一任务执行成功,则从所述数据库中调度出第二任务,包括:如果所述第一任务执行成功,则判断包含所述第一任务的工作流是否运行成功;如果运行成功,则判断所述第一任务是否存在下游任务,如果存在,则从所述数据库中调度出第二任务;所述第二任务为所述工作流中所述第一任务的下游任务。4.根据权利要求1所述的方法,其特征在于,所述获取调度请求,包括:接收调度请求或查询调度请求。5.根据权利要求1所述的方法,其特征在于,所述从所述数据库中调度出所述工作流中的第一任务之前,还包括:对通过由互联网端拖拉组件形成的工作流进行解析;将解析后的所述由互联网端拖拉组件形成的工作流存储于所述数据库。6.根据权利要求1所述的方法,其特征在于,所述从所述数据库中调度出所述工作流中的第一任...

【专利技术属性】
技术研发人员:郑海刚张宾吕旭涛王孝宇
申请(专利权)人:深圳云天励飞技术有限公司
类型:发明
国别省市:广东,44

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

1