一种任务处理方法、装置、电子设备和存储介质制造方法及图纸

技术编号:28372981 阅读:250 留言:0更新日期:2021-05-08 00:00
本发明专利技术实施例提供一种任务处理方法、装置、电子设备和存储介质,该方法包括:获取到至少一个初始源头任务;对所述至少一个初始源头任务中每一个初始源头任务生成对应的依赖关系信息;根据所述依赖关系信息对所述至少一个初始源头任务进行合并处理,得到至少一个最终源头任务;对所述至少一个最终源头任务及对应的全部下游任务均进行冻结处理,以停止所述至少一个最终源头任务及对应的全部下游任务的运行。本发明专利技术可以协助快速地进行数据故障恢复,极大的减少了修复数据的时间,同时还高效的保证了修复数据的正确性。

【技术实现步骤摘要】
一种任务处理方法、装置、电子设备和存储介质
本公开涉及数据库
,特别涉及一种任务处理方法、装置、电子设备和存储介质。
技术介绍
目前,基于数据仓库技术(Extract-Transform-Load,ETL)进行数据处理,通常将一个数据处理流程分成多个任务步骤来完成。这个多个任务之间存在复杂的依赖关系,一个任务的上游任务运行成功,且到达该任务的运行时间后才可以运行该任务。相关技术中,当出现大量数据错误时,寻找出一个或多个最上游的数据出错的任务,根据该任务及其下游已经运行的任务得到该任务对应的有向无环图(Directedacyclicgraph,DAG),根据DAG从上游到下游重跑一遍,进行数据修复。然而,上述方案在进行数据修复的过程中,到达下游未运行的任务对应的运行时间,会基于上游任务对应的数据运行该下游任务,导致新的数据错误。
技术实现思路
本专利技术实施例提供一种任务处理方法、装置、电子设备和存储介质,用以将修复数据的任务全部冻结,以解决修复数据过程中下游任务数据产出不正确和数据修复效率低的问题。第一方面,本专利技术实施例提供一种任务处理方法,该方法包括:获取到至少一个初始源头任务;对所述至少一个初始源头任务中每一个初始源头任务生成对应的依赖关系信息;根据所述依赖关系信息对所述至少一个初始源头任务进行合并处理,得到至少一个最终源头任务;对所述至少一个最终源头任务及对应的全部下游任务均进行冻结处理,以停止所述至少一个最终源头任务及对应的全部下游任务的运行。在一种可能的实施方式中,根据所述依赖关系信息对所述至少一个初始源头任务进行合并处理,包括:根据所述依赖关系信息,确定存在上下游任务关系的多个初始源头任务;将所述多个初始源头任务中最上游的初始源头任务,及不存在上下游任务关系的初始源头任务作为最终源头任务。本专利技术实施例提供的任务处理方法,对初始源头任务进行合并处理,以避免对相同的下游任务重复进行冻结处理。在一种可能的实施方式中,对所述至少一个最终源头任务均进行冻结处理之前,还包括:根据所述依赖关系信息,确定所述至少一个最终源头的不同上游任务对应共同的下游任务时,将所述共同的下游任务进行合并。本专利技术实施例提供的任务处理方法,将多个共同的下游任务合并处理为一个下游任务,比避免对相同的下游任务进行重复的处理。在一种可能的实施方式中,对所述每一个初始源头任务生成对应的依赖关系信息,包括:采用DFS/BFS算法,确定每个初始源头任务对应的DAG任务实例图;在每个初始源头任务对应的DAG任务实例图的基础上,增加所述初始源头任务的未到达执行时间的下游任务,得到所述依赖关系信息。本专利技术实施例提供任务处理方法,所生成依赖关系信息中不仅包括产生任务实例的下游任务,还包括未到达执行时间的下游任务,从而避免在后续下游任务在到达执行时间时,由于上游任务未完成修复而导致下游任务数据产出不正确。在一种可能的实施方式中,该方法还包括:响应于任务解冻指令,从所述至少一个最终源头任务开始,按照从上游任务至下游任务,待上游任务全部完成解除冻结处理时执行下游任务解除冻结处理的方式进行解冻,以恢复对解冻后任务的调度运行。本专利技术实施例提供的任务处理方法,下游任务的执行依赖于上游任务的全部解冻,从而可以控制在上游任务完成修复时解冻,再执行下游任务,解决下游任务数据产出不正确的问题。在一种可能的实施方式中,采用如下方式对执行解除冻结处理的待解冻任务进行解冻:若所述待解冻任务已产生任务实例,重运行所述待解冻任务的任务实例,重运行成功后确定所述待解冻任务完成解除冻结处理;或者若所述待解冻任务未产生任务实例,直接解除对所述待解冻任务的冻结处理。本专利技术实施例提供的任务处理方法,对产生任务实例的任务在解冻时进行重运行,在出错的任务在重运行成功时再执行解冻操作,以解决下游任务数据产出不正确的问题。在一种可能的实施方式中,重运行所述待解冻任务的任务实例后,还包括:确定重运行失败时进行解冻失败提示;待收到强制解冻指令时,解除所述解冻指令指示的待解冻任务的冻结处理。本专利技术实施例提供的任务处理方法,支持对重运行失败的任务的修复,可以根据解冻失败提示进行修复,修复后通过强制解冻指令解冻。在一种可能的实施方式中,该方法还包括:将用于对任务进行冻结处理的冻结池状态标识为生成中,并将所述至少一个最终源头任务和对应的全部下游任务加入到所述冻结池;待将所述冻结池中的全部任务冻结处理完成时,标识所述冻结池的状态为已冻结。在一种可能的实施方式中,对所述冻结池中的任务进行解冻时,将所述冻结池的状态标识为解冻中;待所述冻结池中的任务全部解冻时,将所述冻结池的状态标识为已解冻。本专利技术实施例提供的任务处理方法,提出了在冻结过中将任务加入冻结池进行管理的方案,且可以通过冻结池的状态确定任务冻结处理进程。在一种可能的实施方式中,该方法还包括:响应于暂停解冻指令,确定当前执行解冻的待解冻任务;暂停对所述待解冻任务进行解冻,并将所述冻结池的状态标识为已暂停。本专利技术实施例提供的任务处理方法,提供暂停冻结功能,以满足运维过程中“停止”数据修复的需求。在一种可能的实施方式中,该方法还包括:响应于恢复解冻指令,确定已暂停的冻结池中,未解冻且处于最上游的至少一个待解冻任务;从所述至少一个待解冻任务开始,按照从上游任务至下游任务,待上游任务全部完成解除冻结处理时执行下游任务解除冻结处理的方式进行解冻。本专利技术实施例提供的任务处理方法,提供恢复解冻功能,以满足运维过程中“恢复”数据修复的需求。在一种可能的实施方式中,暂停对所述待解冻任务进行解冻之后,还包括:响应于任务删除指令,确定所述任务删除指令所指示的源头任务;确定所指示的源头任务及对应的全部下游任务,均不依赖于除所述源头任务外其它的最终源头任务时,将所指示的最终源头任务及其对应的全部下游任务解冻并删除;否则,保留依赖于其它的最终源头任务的任务,将所指示的源头任务及其全部下游任务中除保留的任务外的其他任务解冻并删除。本专利技术实施例提供的任务处理方法,提供了对冻结池中任务进行删除的功能,实现对冻结池的更新。在一种可能的实施方式中,暂停对所述待解冻任务进行解冻之后,还包括:响应于任务添加指令,确定所述任务添加指令所指示的源头任务;确定所指示的源头任务及其全部下游任务中,与所述至少一个最终源头任务及其对应全部下游任务不存在相同任务,将所指示的源头任务及其全部下游任务进行冻结处理,以停止所指示的源头任务及其全部下游任务的运行。本专利技术实施例提供的任务处理方法,提出在冻结池中增加与冻结池中任务没有交集的任务增加方式,实现对冻结池的更新。在一种可能的实施方式中,确定所指示的源头任务及其全部下游本文档来自技高网...

【技术保护点】
1.一种任务处理方法,其特征在于,包括:/n获取到至少一个初始源头任务;/n对所述至少一个初始源头任务中每一个初始源头任务生成对应的依赖关系信息;/n根据所述依赖关系信息对所述至少一个初始源头任务进行合并处理,得到至少一个最终源头任务;/n对所述至少一个最终源头任务及对应的全部下游任务均进行冻结处理,以停止所述至少一个最终源头任务及对应的全部下游任务的运行。/n

【技术特征摘要】
1.一种任务处理方法,其特征在于,包括:
获取到至少一个初始源头任务;
对所述至少一个初始源头任务中每一个初始源头任务生成对应的依赖关系信息;
根据所述依赖关系信息对所述至少一个初始源头任务进行合并处理,得到至少一个最终源头任务;
对所述至少一个最终源头任务及对应的全部下游任务均进行冻结处理,以停止所述至少一个最终源头任务及对应的全部下游任务的运行。


2.根据权利要求1所述的方法,其特征在于,根据所述依赖关系信息对所述至少一个初始源头任务进行合并处理,包括:
根据所述依赖关系信息,确定存在上下游任务关系的多个初始源头任务;
将所述多个初始源头任务中最上游的初始源头任务,及不存在上下游任务关系的初始源头任务作为最终源头任务。


3.根据权利要求1所述的方法,其特征在于,对所述至少一个最终源头任务均进行冻结处理之前,还包括:
根据所述依赖关系信息,确定所述至少一个最终源头的不同上游任务对应共同的下游任务时,将所述共同的下游任务进行合并。


4.根据权利要求1所述的方法,其特征在于,对所述每一个初始源头任务生成对应的依赖关系信息,包括:
采用DFS/BFS算法,确定每个初始源头任务对应的DAG任务实例图;
在每个初始源头任务对应的DAG任务实例图的基础上,增加所述初始源头任务的未到达执行时间的下游任务,得到所述依赖关系信息。


5.根据权利要求1所述的方法,其特征在于,还包括:
响应于任务解冻指令,从所述至少一个最终源头任务开始,按照从上游任务至下游任务,待上游任务全部完成解除冻结处...

【专利技术属性】
技术研发人员:余利华郭忆李卓豪陈苏安汪源
申请(专利权)人:网易杭州网络有限公司
类型:发明
国别省市:浙江;33

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

1