[发明专利]分布式任务调度方法、装置、电子设备、存储介质在审
申请号: | 201810970188.0 | 申请日: | 2018-08-23 |
公开(公告)号: | CN110858158A | 公开(公告)日: | 2020-03-03 |
发明(设计)人: | 陈东伟 | 申请(专利权)人: | 北京京东金融科技控股有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48 |
代理公司: | 北京律智知识产权代理有限公司 11438 | 代理人: | 袁礼君;阚梓瑄 |
地址: | 100176 北京市经济技*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 分布式 任务 调度 方法 装置 电子设备 存储 介质 | ||
本发明提供一种分布式任务调度方法、装置、电子设备、存储介质,分布式任务调度方法包括:根据任务链条中各任务的依赖关系的顺序,对所述任务链条的每个任务:根据当前任务的观察状态及当前任务所依赖的所有任务的执行状态触发当前任务的执行;以及在当前任务执行完成时触发变更依赖当前任务的所有任务的观察状态。本发明提供的方法及装置可以提高任务执行效率。
技术领域
本发明涉及计算机应用技术领域,尤其涉及一种分布式任务调度方法、装置、电子设备、存储介质。
背景技术
目前,各个系统的后台都会有具有处理相应任务的工作机,通常每个工作机都是独立的,相互之间没有依赖关系。对于具有简单的依赖的工作机,通常会由一个工作机调度来实现。
目前通用单机的方案是使用spring(开放源代码的设计层面框架)scheduler(调度程序)或者quartz(实现定时任务的开源项目)定时执行工作机,且并不支持复杂任务调度。
然而,在各系统的具体实现中,通常需要工作机处理多个任务,且多个任务之间会有复杂的依赖关系。现有的任务处理方式会预估各任务的执行时间,若当前任务所依赖的任务已经执行到预估执行时间时,预估当前任务的执行时间,并执行当前任务。这样的实现方式会使整个任务链条的执行时间很长,或者是当前任务未执行完,依赖当前任务的下一个任务就执行了,由此,导致生产事故。同时,这样的实现方式,配置复杂而且需要经常查看任务执行时长,再次去调整各个任务的时间,耗时费力,无法保证真正的正确按照流程执行。
发明内容
本发明为了克服上述相关技术存在的缺陷,提供一种分布式任务调度方法、装置、电子设备、存储介质,进而至少在一定程度上克服由于相关技术的限制和缺陷而导致的一个或者多个问题。
根据本发明的一个方面,提供一种分布式任务调度方法,应用于包括多个工作机的分布式任务执行系统,所述分布式任务调度方法包括:
根据任务链条中各任务的依赖关系的顺序,对所述任务链条的每个任务:
根据当前任务的观察状态及当前任务所依赖的所有任务的执行状态触发当前任务的执行;以及
在当前任务执行完成时触发变更依赖当前任务的所有任务的观察状态。
可选地,在执行所述任务链条中的任务之前,还包括:
获取所述任务链条中各任务的依赖关系,其中,所述任务链条中各任务的观察状态设置预设为不允许被观察;
设置所述任务链条的起始任务的观察状态为允许被观察。
可选地,所述获取任务链条中各任务的依赖关系的步骤,由抢占到所述任务链条的分布式初始化锁的工作机执行。
可选地,所述根据当前任务的观察状态及当前任务所依赖的所有任务的执行状态触发当前任务的执行的步骤包括:
若当前任务的观察状态为允许被观察,且当前任务依赖的所有任务被执行完成时,则将当前任务下发至任务数据库;
自任务数据库表抢占到当前任务对应的分布式任务锁的工作机,根据任务数据库中储存的当前任务的任务配置信息执行当前任务。
可选地,自任务数据库表抢占到依赖同一任务的不同任务对应的分布式任务锁的多个工作机并行执行。
可选地,所述任务数据库储存有任务流程表,所述任务流程表至少储存各任务的任务标识、执行状态、观察状态。
可选地,所述将当前任务下发至任务数据库的步骤,由抢占到当前任务的任务分发锁的工作机执行;
抢占到当前任务的任务分发锁的工作机还监控当前任务的执行状态,并将当前任务的执行状态更新至所述任务流程表中以供当前任务的执行状态被观察。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京京东金融科技控股有限公司,未经北京京东金融科技控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810970188.0/2.html,转载请声明来源钻瓜专利网。