一种处理任务的方法及装置制造方法及图纸

技术编号:18458583 阅读:19 留言:0更新日期:2018-07-18 12:37
本申请公开了一种处理任务的方法及装置,所述方法包括:管理服务器根据获取的任务,确定所述任务中的各子任务间的依赖关系;所述管理服务器根据所述各子任务间的依赖关系,确定所述各子任务的前置任务;所述管理服务器将前置任务状态为完成或无前置任务的子任务,确定为待处理的子任务;所述管理服务器将所述待处理的子任务发送给执行服务器,并接收所述执行服务器反馈的所述待处理的子任务的执行结果;所述管理服务器在所述待处理的子任务的执行结果为成功时,更新关联子任务的前置任务状态,所述待处理的子任务为所述关联子任务的前置任务;返回至确定为待处理的子任务的步骤,直至所述任务中的各子任务执行完成。

A method and device for dealing with tasks

The present application discloses a method and device for dealing with a task. The method includes: the management server determines the dependencies among the sub tasks in the task according to the acquired task; the management server determines the pre task of the sub tasks according to the dependencies between the respective sub tasks; the management service is the management service. The server identifies the pre task status as a subtask that is completed or without a pre task, which is determined to be a subtask to be processed; the management server sends the subtasks to be processed to the execution server and receives the execution results of the proposed sub task feedback from the executive server; the management server is waiting to be described. When the execution results of the processed subtasks are successful, the pre task status of the associated subtask is updated. The subtask to be treated is the pre task of the related subtask; it returns to the steps determined as the subtask to be processed, until the sub tasks in the task are executed.

【技术实现步骤摘要】
一种处理任务的方法及装置
本申请涉及计算机领域,特别涉及一种处理任务的方法及装置。
技术介绍
现有技术中的任务调度主要为单机调度,任务的管理和执行都在同一个节点上,只能在一台服务器上部署。随着互联网业务的发展,单机很难再负荷存储和计算的性能要求。另外,随着调度任务数量的增加,任务处理时间的增长,任务间的关系越来越复杂,有些任务的前置任务多达几十个,任务无法在规定时间内全部执行完毕,比如一个数据中心无法在24小时之内处理完当天的计算任务,或者云服务无法在短时间内完成服务切换、弹性扩容,将会对业务带来极大的影响。因此我们需要对任务的处理方法具备更好的策略和更高的响应能力。因此,目前亟需解决现有技术中任务调度方法处理能力小,且分布式系统的资源利用率低的问题。
技术实现思路
本申请实施例提供一种处理任务的方法及装置,提高了任务调度的工作效率和资源利用率,增大了分布式系统的处理能力。本申请实施例提供一种处理任务的方法,所述方法包括:管理服务器根据获取的任务,确定所述任务中的各子任务间的依赖关系;所述管理服务器根据所述各子任务间的依赖关系,确定所述各子任务的前置任务;所述管理服务器将前置任务状态为完成或无前置任务的子任务,确定为待处理的子任务;所述管理服务器将所述待处理的子任务发送给执行服务器,并接收所述执行服务器反馈的所述待处理的子任务的执行结果;所述管理服务器在所述待处理的子任务的执行结果为成功时,更新关联子任务的前置任务状态,所述待处理的子任务为所述关联子任务的前置任务;返回至确定为待处理的子任务的步骤,直至所述任务中的各子任务执行完成。一种可能的实现方式,所述管理服务器根据所述各子任务间的依赖关系,确定所述各子任务的前置任务,包括:所述管理服务器按照所述各子任务间的依赖关系,将所述各子任务加入子任务队列,所述子任务队列中,子任务的前置任务位于该子任务之前;所述管理服务器将前置任务状态为完成或无前置任务的子任务,确定为待处理的子任务,包括:所述管理服务器从所述子任务队列中获取子任务,在确定所述子任务的前置任务状态为完成或无前置任务时,确定所述子任务为待处理的子任务。一种可能的实现方式,所述管理服务器按照所述各子任务间的依赖关系,将所述各子任务加入子任务队列,包括:所述管理服务器确定所述任务中的各任务节点对应的任务组,并按照各任务节点之间的执行依赖关系将所述各任务组加入任务组队列;所述管理服务器针对所述任务组队列中的任一任务组,确定该任务组中的各子任务;按照各子任务间的依赖关系,将所述各子任务加入该任务组的子任务队列;所述管理服务器将前置任务状态为完成或无前置任务的子任务,确定为待处理的子任务,包括:所述管理服务器将前置任务状态为完成或无前置任务组的任务组,确定为待处理的任务组;所述任务组的前置任务状态根据所述任务组的前置任务组内各子任务的任务状态确定;所述管理服务器从所述待处理的任务组的子任务队列中,获取子任务,在确定所述子任务的前置任务状态为完成或无前置任务时,确定所述子任务为待处理的子任务。一种可能的实现方式,所述方法还包括:所述管理服务器若确定所述待处理的子任务的执行结果为失败,则将所述待处理的子任务的执行次数加一,并将所述待处理的子任务重新加入至所述子任务队列中;所述管理服务器若确定所述待处理的子任务的执行次数超过预设阈值,则将所述待处理的子任务的任务状态确定为失败。一种可能的实现方式,所述管理服务器将所述待处理的子任务发送给执行服务器,包括:所述管理服务器通过分布式服务器集群向各执行服务器发送所述待处理的子任务;所述各执行服务器用于并行执行各待处理的子任务。本申请实施例提供一种处理任务的装置,所述装置包括:获取单元,用于获取任务;处理单元,用于根据获取的所述任务,确定所述任务中的各子任务间的依赖关系;根据所述各子任务间的依赖关系,确定所述各子任务的前置任务;将前置任务状态为完成或无前置任务的子任务,确定为待处理的子任务;将所述待处理的子任务发送给执行服务器,并接收所述执行服务器反馈的所述待处理的子任务的执行结果;在所述待处理的子任务的执行结果为成功时,更新关联子任务的前置任务状态,所述待处理的子任务为所述关联子任务的前置任务;返回至确定为待处理的子任务的步骤,直至所述任务中的各子任务执行完成。一种可能的实现方式,所述处理单元还用于:按照所述各子任务间的依赖关系,将所述各子任务加入子任务队列,所述子任务队列中,子任务的前置任务位于该子任务之前;从所述子任务队列中获取子任务,在确定所述子任务的前置任务状态为完成或无前置任务时,确定所述子任务为待处理的子任务。一种可能的实现方式,所述处理单元还用于:确定所述任务中的各任务节点对应的任务组,并按照各任务节点之间的执行依赖关系将所述各任务组加入任务组队列;针对所述任务组队列中的任一任务组,确定该任务组中的各子任务;按照各子任务间的依赖关系,将所述各子任务加入该任务组的子任务队列;将前置任务状态为完成或无前置任务组的任务组,确定为待处理的任务组;所述任务组的前置任务状态根据所述任务组的前置任务组内各子任务的任务状态确定;从所述待处理的任务组的子任务队列中,获取子任务,在确定所述子任务的前置任务状态为完成或无前置任务时,确定所述子任务为待处理的子任务。一种可能的实现方式,所述装置还包括:所述管理服务器若确定所述待处理的子任务的执行结果为失败,则将所述待处理的子任务的执行次数加一,并将所述待处理的子任务重新加入至所述子任务队列中;所述管理服务器若确定所述待处理的子任务的执行次数超过预设阈值,则将所述待处理的子任务的任务状态确定为失败。一种可能的实现方式,所述处理单元还用于:通过分布式服务器集群向各执行服务器发送所述待处理的子任务;所述各执行服务器用于并行执行各待处理的子任务。本申请实施例中,管理服务器根据获取的任务,确定所述任务中的各子任务间的依赖关系;所述管理服务器根据所述各子任务间的依赖关系,确定所述各子任务的前置任务;所述管理服务器将前置任务状态为完成或无前置任务的子任务,确定为待处理的子任务;所述管理服务器将所述待处理的子任务发送给执行服务器,并接收所述执行服务器反馈的所述待处理的子任务的执行结果;任务的执行服务器可以设置为多个,实现任务的并行处理,提高了分布式系统的工作效率。分布式系统的处理能力为多个执行服务器的处理能力,增大了分布式系统的处理能力。所述管理服务器在所述待处理的子任务的执行结果为成功时,更新关联子任务的前置任务状态,所述待处理的子任务为所述关联子任务的前置任务;返回至确定为待处理的子任务的步骤,直至所述任务中的各子任务执行完成;避免了通过需要轮询的方式,在每个任务的执行时都要进行多次数据库服务器的读写操作,来判断每个子任务是否为待处理任务的判断过程,极大的减少了任务处理的时间复杂度,提高了任务调度的效率。解决了现有技术中任务调度方法处理能力小,且分布式系统的资源利用率低的问题。附图说明图1为本申请实施例提供的处理任务的架构示意图;图2为本申请实施例提供的处理任务的方法的流程示意图;图3为本申请实施例提供的一种处理任务的方法的流程示意图;图4为本申请实施例提供的一种处理任务的装置的结构示意图。具体实施方式目前系统架构无论是前端的业本文档来自技高网...

【技术保护点】
1.一种处理任务的方法,其特征在于,所述方法包括:管理服务器根据获取的任务,确定所述任务中的各子任务间的依赖关系;所述管理服务器根据所述各子任务间的依赖关系,确定所述各子任务的前置任务;所述管理服务器将前置任务状态为完成或无前置任务的子任务,确定为待处理的子任务;所述管理服务器将所述待处理的子任务发送给执行服务器,并接收所述执行服务器反馈的所述待处理的子任务的执行结果;所述管理服务器在所述待处理的子任务的执行结果为成功时,更新关联子任务的前置任务状态,所述待处理的子任务为所述关联子任务的前置任务;返回至确定为待处理的子任务的步骤,直至所述任务中的各子任务执行完成。

【技术特征摘要】
1.一种处理任务的方法,其特征在于,所述方法包括:管理服务器根据获取的任务,确定所述任务中的各子任务间的依赖关系;所述管理服务器根据所述各子任务间的依赖关系,确定所述各子任务的前置任务;所述管理服务器将前置任务状态为完成或无前置任务的子任务,确定为待处理的子任务;所述管理服务器将所述待处理的子任务发送给执行服务器,并接收所述执行服务器反馈的所述待处理的子任务的执行结果;所述管理服务器在所述待处理的子任务的执行结果为成功时,更新关联子任务的前置任务状态,所述待处理的子任务为所述关联子任务的前置任务;返回至确定为待处理的子任务的步骤,直至所述任务中的各子任务执行完成。2.如权利要求1所述的方法,其特征在于,所述管理服务器根据所述各子任务间的依赖关系,确定所述各子任务的前置任务,包括:所述管理服务器按照所述各子任务间的依赖关系,将所述各子任务加入子任务队列,所述子任务队列中,子任务的前置任务位于该子任务之前;所述管理服务器将前置任务状态为完成或无前置任务的子任务,确定为待处理的子任务,包括:所述管理服务器从所述子任务队列中获取子任务,在确定所述子任务的前置任务状态为完成或无前置任务时,确定所述子任务为待处理的子任务。3.如权利要求1所述的方法,其特征在于,所述管理服务器按照所述各子任务间的依赖关系,将所述各子任务加入子任务队列,包括:所述管理服务器确定所述任务中的各任务节点对应的任务组,并按照各任务节点之间的执行依赖关系将所述各任务组加入任务组队列;所述管理服务器针对所述任务组队列中的任一任务组,确定该任务组中的各子任务;按照各子任务间的依赖关系,将所述各子任务加入该任务组的子任务队列;所述管理服务器将前置任务状态为完成或无前置任务的子任务,确定为待处理的子任务,包括:所述管理服务器将前置任务状态为完成或无前置任务组的任务组,确定为待处理的任务组;所述任务组的前置任务状态根据所述任务组的前置任务组内各子任务的任务状态确定;所述管理服务器从所述待处理的任务组的子任务队列中,获取子任务,在确定所述子任务的前置任务状态为完成或无前置任务时,确定所述子任务为待处理的子任务。4.如权利要求3所述的方法,其特征在于,所述方法还包括:所述管理服务器若确定所述待处理的子任务的执行结果为失败,则将所述待处理的子任务的执行次数加一,并将所述待处理的子任务重新加入至所述子任务队列中;所述管理服务器若确定所述待处理的子任务的执行次数超过预设阈值,则将所述待处理的子任务的任务状态确定为失败。5....

【专利技术属性】
技术研发人员:唐翌飞赵晓庆吴锋海
申请(专利权)人:联动优势科技有限公司
类型:发明
国别省市:北京,11

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

1