【技术实现步骤摘要】
任务调度方法、装置、计算机存储介质及电子设备
[0001]本申请涉及云计算
,具体而言,涉及一种任务调度方法
、
任务调度装置
、
计算机存储介质及电子设备
。
技术介绍
[0002]随着操作系统的逐步发展,越来越多的任务调度系统应运而生,由于所遇到的场景基本都是分布式场景,因此需要一套在分布式环境下高性能
、
高可用
、
可扩展的分布式任务调度系统
。
[0003]目前经常使用的分布式任务调度系统有开源框架
Airflow
等等,
Airflow
是基于有向无环图的任务调度系统,支持流程定义
python
脚本执行,但是其只支持单点部署,并且不能灵活配置回滚函数,进而无法保证任务的原子性
。
技术实现思路
[0004]本申请的实施例提供了一种任务调度方法
、
任务调度装置
、
计算机存储介质及电子设备,进而至少在一定程度上可以灵活配置回滚函数,确保批量任务执行的原子性,并且还可以将无法处理的任务回滚后重新插入到任务队列中等待其它节点消费并执行,保证了任务的顺利执行,提高了分布式任务调度系统的可靠性
。
[0005]本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得
。
[0006]第一方面,本申请的实施例提供了一种任务调度方法,应用于分布式任务调度系统中的节 ...
【技术保护点】
【技术特征摘要】
1.
一种任务调度方法,应用于分布式任务调度系统中的节点,所述分布式任务调度系统中注册有与所述节点对应的子任务版本号集;其特征在于,所述方法包括:从任务队列中获取任务,并顺序执行所述任务所包含的多级子任务,其中各级所述子任务具有不同的版本号;将所述子任务的版本号与所述子任务版本号集进行比对;当所述子任务版本号集中不包含目标子任务的版本号时,倒序回滚已执行子任务,并将回滚成功后的所述任务重新插入至所述任务队列中
。2.
根据权利要求1所述的方法,其特征在于,所述任务包含
N
级子任务;所述顺序执行所述任务所包含的多级子任务,包括:调用与第一级子任务对应的任务执行函数以执行所述第一级子任务,在所述第一级子任务执行成功后,调用与第二级子任务对应的任务执行函数以执行所述第二级子任务;在所述第二级子任务执行成功后,重复上述流程,直至第
N
级子任务执行成功,其中,
N
为大于1的正整数
。3.
根据权利要求1所述的方法,其特征在于,所述目标子任务为所述任务中的第
n
级子任务,其中,
n<N
,
N
为所述任务包含子任务的总量,并且
n、N
均为正整数;所述倒序回滚已执行子任务,包括:调用与第
(n
‑
i)
级子任务对应的回滚函数以将所述第
(n
‑
i)
级子任务回滚至初始状态;重复上述流程,直至第一级子任务回滚至初始状态,其中
i
=
1,2,3
,
…
(n
‑
1)。4.
根据权利要求1所述的方法,其特征在于,各级所述子任务对应的版本号随所述子任务等级的增加而增加
。5.
根据权利要求1所述的方法,其特征在于,所述将所述子任务的版本号与所述子任务版本号集进行比对,包括:当执行所述目标子任务时,获取与所述目标子任务对应的版本号;将所述目标子任务的版本号与所述子任务版本号集中的版本号进行对比;或者获取所有所述子任务的版本号,并将所述子任务的版本号分别与所述子任务版本号集中的版本号进行对比
。6.
根据权利要求1所述的方法,其特征在于,所述方法还包括:当所述子任务版本号集中不包含所述目标子任务的版本号时,倒序回滚已执行子任务,并基于远程过程调用协议将回滚成功后的所述任务推送至目标节点;其中,所述目标节点对应的子任务版本号集包含所述任务中各子任务的版本号
。7.
根据权利要求1所述的方法,其特征在于,在将回滚成功后的所述任务重新插入至所述任务队列中时,所述方法还包括:记录所述目标任务的流转次数,并将所述流转次数与预设阈值进行对比;当所述流转次数等于所述预设阈值时,丢弃所述目标任务并告警
。8.
根据权利要求1所述的方法,其...
【专利技术属性】
技术研发人员:刘国旭,
申请(专利权)人:腾讯科技深圳有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。