支持异常时任务重跑的调度方法、系统、设备及存储介质技术方案

技术编号:35016408 阅读:10 留言:0更新日期:2022-09-21 15:20
本发明专利技术涉及一种支持异常时任务重跑的调度方法、系统、设备及存储介质,其技术方案要点是:根据预设配置规则对多个任务进行配置形成工作流;从工作流中调度满足预设执行条件的任务形成待执行任务集合,根据不满足预设执行条件的任务形成未执行任务集合;将待执行任务集合中的各个任务分发给对应的任务执行终端执行;判断所有任务执行结果信息是否均为任务执行成功,若为否,则将所有执行失败的任务均记为失败任务,将所有失败任务和未执行任务集合中的任务合并形成工作流;本申请具有在出现任务的失败的情况下,能对失败的任务和未执行任务进行自动重跑,大大降低了开发以及运维人员在修复任务时需要人工操作的复杂度的效果。在修复任务时需要人工操作的复杂度的效果。在修复任务时需要人工操作的复杂度的效果。

【技术实现步骤摘要】
支持异常时任务重跑的调度方法、系统、设备及存储介质


[0001]本专利技术涉及计算机任务重跑
,更具体地说,它涉及一种支持异常时任务重跑的调度方法、系统、设备及存储介质。

技术介绍

[0002]随着互联网的高速发展,数据的日益增加,许多公司都建立各自的大数据部门对目前已有的数据进行离线分析统计,为业务提供数据支撑。
[0003]一般情况下,开发人员通常会在开发平台内编写离线统计任务,编写验证测试通过后需要上线配置调度运行。配置调度成功后,调度系统就会按照用户配置的的周期在指定的时间内唤起任务进行执行。
[0004]在复杂情况下,有部分离线任务需要依赖其他上游任务运行完成才可以开始,无法立即执行。即使到了调度时间,如果上游任务还未完成,需要阻塞等待上游任务运行完成后才能开始运行,此时如果上游任务出现异常,下游任务由于依赖的任务异常,就不会正常运行,导致数据缺失。且任务在运行中,除了本身任务执行失败外,也会存在一些外在因素(如网络中断,无权限)等原因,导致任务失败。这时下游任务无法正常运行,在传统的调度系统中,修复数据时需要人工一个个手动的重新启动所有未正常执行的任务,效率低下,且由于修复操作需要通过人工进行,容易遗漏,进一步导致数据的不准确甚至缺失,不利于数据使用方观测业务情况,甚至提供错误的数据误导使用方,造成严重的后果。

技术实现思路

[0005]针对现有技术存在的不足,本专利技术的目的在于提供一种支持异常时任务重跑的调度方法、系统、设备及存储介质,具有具有在出现任务的失败的情况下,能对失败的任务和未执行任务进行自动重跑,大大降低了开发以及运维人员在修复任务时需要人工操作的复杂度的功能优点。
[0006]本专利技术的上述技术目的是通过以下技术方案得以实现的:
[0007]一种支持异常时任务重跑的调度方法,包括:
[0008]S1、根据预设配置规则对多个任务进行配置形成工作流,其中,所述工作流的多个任务之间存在执行依赖顺序;
[0009]S2、根据所述执行依赖顺序从工作流中调度满足预设执行条件的任务形成待执行任务集合,根据不满足预设执行条件的任务形成未执行任务集合;
[0010]S3、将所述待执行任务集合中的各个任务分发给对应的任务执行终端执行,并接收所有所述任务执行终端反馈的任务执行结果信息;其中,所述任务执行结果信息为任务执行成功或任务执行失败;
[0011]S4、判断所有任务执行结果信息是否均为任务执行成功,若为否,则将所有执行失败的任务均记为失败任务,并执行步骤S5;若为是,则将所有执行成功的任务均记为成功任务,并执行步骤S6;
[0012]S5、将所有失败任务和所述未执行任务集合中的任务合并形成工作流,并返回执行步骤S2;
[0013]S6、判断所述未执行任务集合是否为空,若为否,则将所述未执行任务集合作为工作流,并返回执行步骤S2;若为是,则完成调度。
[0014]可选的,所述任务包括:任务事件;所述预设配置规则,包括:
[0015]根据所述任务事件将所有任务进行分类得到多个分类集合;
[0016]根据预设任务执行逻辑将各个所述分类集合中的任务进行排序得到有序集合,所述有序集合的所有任务之间存在执行顺序;
[0017]根据预设任务依赖关系在多个有序集合的任务之间建立依赖关系形成工作流,所述工作流的多个任务之间存在执行依赖顺序。
[0018]可选的,所述任务还包括:任务时间;在所述根据预设任务执行逻辑将各个所述分类集合中的任务进行排序得到有序集合之后,还包括:
[0019]将所述有序集合中排序最前的任务对应的任务时间作为该有序集合的执行时间。
[0020]可选的,所述所述工作流的多个任务之间存在执行依赖顺序是指所述工作流的多个任务之间存在前置执行依赖关系或后置执行依赖关系。
[0021]可选的,判断所述工作流中的任务是否满足预设执行条件的方法,包括:
[0022]判断所有有序集合的执行时间是否均小于当前时间;
[0023]若是,则判定所有有序集合中的任务均为不满足预设执行条件的任务,并返回执行所述判断所有有序集合的时间是否均小于当前时间步骤;
[0024]若否,则将所有执行时间不小于当前时间的有序集合均记为待启动集合,将所有执行时间小于当前时间的有序集合均记为未启动集合,将所有未启动集合中的任务判定为不满足预设执行条件的任务,判断所有待启动集合中的任务是否有与其具有前置执行依赖关系的上游任务,若是,则将所有待启动集合中有上游任务的任务判定为不满足预设执行条件的任务,将所有待启动集合中没有上游任务的任务判定为满足预设执行条件的任务,并记为待执行任务,若否,则将所有待启动集合中的任务均判定为满足预设执行条件的任务,并记为待执行任务。
[0025]可选的,所述将所有失败任务和所述未执行任务集合中的任务合并形成工作流,包括:根据所述执行依赖顺序将所有失败任务和所述未执行任务集合中的任务合并形成工作流。
[0026]一种支持异常时任务重跑的调度系统,包括:
[0027]任务配置模块,用于根据预设配置规则对多个任务进行配置形成工作流,其中,所述工作流的多个任务之间存在执行依赖顺序;
[0028]任务调度模块,用于根据所述执行依赖顺序从工作流中调度满足预设执行条件的任务形成待执行任务集合,根据不满足预设执行条件的任务形成未执行任务集合;
[0029]任务分发模块,用于将所述待执行任务集合中的各个任务分发给对应的任务执行终端执行,并接收所有所述任务执行终端反馈的任务执行结果信息;其中,所述任务执行结果信息为任务执行成功或任务执行失败;
[0030]第一判断模块,用于判断所有任务执行结果信息是否均为任务执行成功,若为否,则将所有执行失败的任务均记为失败任务,并启动任务合并模块;若为是,则将所有执行成
功的任务均记为成功任务,并启动第二判断模块;
[0031]任务合并模块,用于将所有失败任务和所述未执行任务集合中的任务合并形成工作流,并返回启动任务调度模块;
[0032]第二判断模块,用于判断所述未执行任务集合是否为空,若为否,则将所述未执行任务集合作为工作流,并启动任务调度模块;若为是,则完成调度。
[0033]可选的,所述任务包括:任务事件;所述任务配置模块包括:
[0034]任务分类单元,用于根据所述任务事件将所有任务进行分类得到多个分类集合;
[0035]任务排序单元,用于根据预设任务执行逻辑将各个所述分类集合中的任务进行排序建立有序集合,所述有序集合的所有任务之间存在执行顺序;
[0036]关系建立单元,用于根据预设任务依赖关系在多个有序集合的任务之间建立依赖关系形成工作流,所述工作流的多个任务之间存在执行依赖顺序。
[0037]一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述的方法的步骤。
[0038本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种支持异常时任务重跑的调度方法,其特征在于,包括:S1、根据预设配置规则对多个任务进行配置形成工作流,其中,所述工作流的多个任务之间存在执行依赖顺序;S2、根据所述执行依赖顺序从工作流中调度满足预设执行条件的任务形成待执行任务集合,根据不满足预设执行条件的任务形成未执行任务集合;S3、将所述待执行任务集合中的各个任务分发给对应的任务执行终端执行,并接收所有所述任务执行终端反馈的任务执行结果信息;其中,所述任务执行结果信息为任务执行成功或任务执行失败;S4、判断所有任务执行结果信息是否均为任务执行成功,若为否,则将所有执行失败的任务均记为失败任务,并执行步骤S5;若为是,则将所有执行成功的任务均记为成功任务,并执行步骤S6;S5、将所有失败任务和所述未执行任务集合中的任务合并形成工作流,并返回执行步骤S2;S6、判断所述未执行任务集合是否为空,若为否,则将所述未执行任务集合作为工作流,并返回执行步骤S2;若为是,则完成调度。2.根据权利要求1所述的支持异常时任务重跑的调度方法,其特征在于,所述任务包括:任务事件;所述预设配置规则,包括:根据所述任务事件将所有任务进行分类得到多个分类集合;根据预设任务执行逻辑将各个所述分类集合中的任务进行排序得到有序集合,所述有序集合的所有任务之间存在执行顺序;根据预设任务依赖关系在多个有序集合的任务之间建立依赖关系形成工作流,所述工作流的多个任务之间存在执行依赖顺序。3.根据权利要求2所述的支持异常时任务重跑的调度方法,其特征在于,所述任务还包括:任务时间;在所述根据预设任务执行逻辑将各个所述分类集合中的任务进行排序得到有序集合之后,还包括:将所述有序集合中排序最前的任务对应的任务时间作为该有序集合的执行时间。4.根据权利要求3所述的支持异常时任务重跑的调度方法,其特征在于,所述所述工作流的多个任务之间存在执行依赖顺序是指所述工作流的多个任务之间存在前置执行依赖关系或后置执行依赖关系。5.根据权利要求4所述的支持异常时任务重跑的调度方法,其特征在于,判断所述工作流中的任务是否满足预设执行条件的方法,包括:判断所有有序集合的执行时间是否均小于当前时间;若是,则判定所有有序集合中的任务均为不满足预设执行条件的任务,并返回执行所述判断所有有序集合的时间是否均小于当前时间步骤;若否,则将所有执行时间不小于当前时间的有序集合均记为待启动集合,将所有执行时间小于当前时间的有序集合均记为未启动集合,将所有未启动集合中的任务判定为不满足预设执行条件的任务,判断所有待启动集合中的任务是否有与其具有前...

【专利技术属性】
技术研发人员:陈钟浩姚海杰黄婷殷萧鹏
申请(专利权)人:上海致景信息科技有限公司
类型:发明
国别省市:

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

1