一种大数据工作流调度系统复杂周期任务依赖构建的方法与流程
- 国知局
- 2024-07-31 22:59:15
本发明涉及大数据,特别涉及一种大数据工作流调度系统复杂周期任务依赖构建的方法。
背景技术:
1、在大数据平台中,周期任务是一类重要的任务类型,它们具有固定的调度周期,如天、小时、分钟、周、月等。
2、大数据平台任务工作流调度系统作为大数据开发平台的核心组件。负责将各种相互之间有前后依赖关系的周期任务依据一定的策略进行调度。因此,在调度周期任务实例时,工作流调度系统需要同时检查一个任务的上游依赖是否满足,以确保任务的执行顺序正确,避免出现错误。只有当所有的依赖任务都已经执行完毕时,才会触发当前任务的执行。
3、常见的大数据任务调度系统,通常只能处理相同调度频率周期定义的任务之间的依赖关系。对于不等调度频率周期任务之间的依赖关系,通常无法支持,或者只能定制化的支持有限的特殊的场景。
4、例如azkaban,dolphin scheduler等常见的开源工作流调度系统,都需要先定义一个工作流dag,将有依赖关系的任务添加到这个工作流中,然后为工作流内的所有任务,整体设置一个相同的调度开始时间和调度频率周期:比如每天早上两点开始一天运行一次,或者每个小时运行一次。
5、但对于相互依赖的任务有不同的频率周期定义的情况,比如,一个每天跑一次的汇总统计任务,需要依赖上游每小时跑一次的任务,在一天内的24个任务实例都运行完才能开始运行,这种不等频率,不同实例个数的任务之间的依赖关系,就很难支持了。
6、常见的大数据任务调度系统,即使对于相同调度频率的任务,通常也只能支持在同一个周期内的实例之间的依赖,比如一个每天都运行一次的a任务依赖于另一个每天都运行一次的b任务,两者都必须是同一天的任务实例才能互相依赖,不支持a任务依赖于前一天或前几天的b任务之类的情况。
7、对于频率周期不相同的任务之间的依赖关系,还会有更多新的需求,需要被满足,按照天任务依赖小时任务来举例,比如:
8、对具体依赖策略的选择:天任务是依赖于一天内所有的24个小时任务都执行成功,还是只需要依赖最后一个小时任务执行成功即可,还是任意一个小时任务执行成功都可以。
9、对依赖时间范围的选择:天任务是依赖一天0点到24点范围内的小时任务,还是依赖前一天8点到今天8点范围的小时任务?(比如游戏行业,跨时区的业务等会有这类需求)。
技术实现思路
1、本发明的目的在于提供一种大数据工作流调度系统复杂周期任务依赖构建的方法,以克服现有技术中的不足。
2、为实现上述目的,本发明提供如下技术方案:
3、本申请公开了一种大数据工作流调度系统复杂周期任务依赖构建的方法,包括如下步骤:
4、s1:对若干个不等周期任务的业务覆盖范围进行计算;
5、s2:对每个任务的依赖关系进行计算、处理;
6、s3:设定业务时间依赖偏移量,并根据业务时间依赖偏移量对实例进行支持;
7、s4:设定自定义依赖策略,并根据自定义依赖策略对实例进行支持。
8、作为优选,所述s1包括如下内容:通过标准cron表达式对任务的调度周期频率、时间点进行定义,进而对任务中的每个具体的实例的业务覆盖时间范围进行计算。
9、作为优选,所述每个具体的实例的业务覆盖时间范围的计算方法包括如下子步骤:
10、s11:识别cron表达式中出现的第一个”*”以及”?”标记位;
11、s12:根据s11识别的标记位结合cron表达式计算获取任务的执行频率;
12、s13:根据cron表达式的数据获取任务的起始时间和周期单位。
13、作为优选,所述s2包括如下内容:根据存在依赖关系的依赖任务、被依赖任务两个任务分成若干个实例,根据每个实例的业务覆盖时间范围对依赖任务的实例、被依赖任务的实例之间的依赖关系进行判断。
14、作为优选,所述s2还包括如下内容:依赖任务、被依赖任务所分成的实例均包括一个时间集合,当依赖任务的实例的时间集合属于被依赖关系的实例的时间集合时,则判定依赖任务的该实例依赖于被依赖任务的对应实例。
15、作为优选,所述s3包括如下子步骤:
16、s31:设定业务时间依赖偏移量;
17、s32:根据业务时间依赖偏移量对业务覆盖时间范围进行调整;
18、s33:根据调整后的业务覆盖范围时间进行依赖关系的计算、处理。
19、作为优选,所述s4包括如下子步骤:
20、s41:设定自定义依赖策略;
21、s42:根据自定义依赖策略选择不同的执行模式;
22、s43:根据执行模式对依赖关系进行计算、处理。
23、作为优选,自定义依赖策略包括如下内容:all策略,选取符合依赖关系的所有实例;last策略,选取符合依赖关系的最后一个实例;any策略,选取符合依赖关系的任意一个实例。
24、本申请还公开了一种大数据工作流调度系统复杂周期任务依赖构建的装置,包括存储器和一个或多个处理器,所述存储器中存储有可执行代码,所述一个或多个处理器执行所述可执行代码时,用于实现上述的一种大数据工作流调度系统复杂周期任务依赖构建的方法。
25、本申请还公开了一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,实现上述的一种大数据工作流调度系统复杂周期任务依赖构建的方法
26、本发明的有益效果:
27、(1)、本发明提出了一种新的工作流调度系统任务依赖关系构建方法,来支持复杂的不等周期任务之间的依赖关系的定义和调度策略构建,能够支持不同周期任务之间的调度依赖关系,能够以标准通用的定义,来灵活支持各种不同的场景需求;这种方法的优势在于,它能够根据周期任务的周期表达式定义,自动识别其调度周期类型,并对其依赖关系进行正确的识别和相应的调度;
28、(2)通过cron表达式定义任务调度时间和频率周期,根据表达式计算业务时间覆盖范围,然后根据业务时间覆盖范围的重叠关系,自动计算任务实例的依赖关系。在此基础上,添加业务时间范围位移偏移量和依赖策略选择,用于灵活自定义依赖关系;通过这种方式,可以大大简化工作流的管理和调度过程,使得工作流调度系统能够更加灵活地处理不等周期任务之间的依赖关系,满足业务的需求。
29、本发明的特征及优点将通过实施例结合附图进行详细说明。
技术特征:1.一种大数据工作流调度系统复杂周期任务依赖构建的方法,其特征在于:包括如下步骤:
2.如权利要求1所述的一种大数据工作流调度系统复杂周期任务依赖构建的方法,其特征在于:所述s1包括如下内容:通过标准cron表达式对任务的调度周期频率、时间点进行定义,进而对任务中的每个具体的实例的业务覆盖时间范围进行计算。
3.如权利要求2所述的一种大数据工作流调度系统复杂周期任务依赖构建的方法,其特征在于:所述每个具体的实例的业务覆盖时间范围的计算方法包括如下子步骤:
4.如权利要求1所述的一种大数据工作流调度系统复杂周期任务依赖构建的方法,其特征在于:所述s2包括如下内容:根据存在依赖关系的依赖任务、被依赖任务两个任务分成若干个实例,根据每个实例的业务覆盖时间范围对依赖任务的实例、被依赖任务的实例之间的依赖关系进行判断。
5.如权利要求1所述的一种大数据工作流调度系统复杂周期任务依赖构建的方法,其特征在于:所述s2还包括如下内容:依赖任务、被依赖任务所分成的实例均包括一个时间集合,当依赖任务的实例的时间集合属于被依赖关系的实例的时间集合时,则判定依赖任务的该实例依赖于被依赖任务的对应实例。
6.如权利要求1所述的一种大数据工作流调度系统复杂周期任务依赖构建的方法,其特征在于:所述s3包括如下子步骤:
7.如权利要求1所述的一种大数据工作流调度系统复杂周期任务依赖构建的方法,其特征在于:所述s4包括如下子步骤:
8.如权利要求7所述的一种大数据工作流调度系统复杂周期任务依赖构建的方法,其特征在于:自定义依赖策略包括如下内容:all策略,选取符合依赖关系的所有实例;last策略,选取符合依赖关系的最后一个实例;any策略,选取符合依赖关系的任意一个实例。
9.一种大数据工作流调度系统复杂周期任务依赖构建的装置,其特征在于:包括存储器和一个或多个处理器,所述存储器中存储有可执行代码,所述一个或多个处理器执行所述可执行代码时,用于实现权利要求1~8任一项所述的一种大数据工作流调度系统复杂周期任务依赖构建的方法。
10.一种计算机可读存储介质,其特征在于:其上存储有程序,该程序被处理器执行时,实现权利要求1~8任一项所述的一种大数据工作流调度系统复杂周期任务依赖构建的方法。
技术总结本发明公开了一种大数据工作流调度系统复杂周期任务依赖构建的方法,包括如下步骤:S1:对若干个不等周期任务的业务覆盖范围进行计算;S2:对每个任务的依赖关系进行计算、处理;S3:设定业务时间依赖偏移量,并根据业务时间依赖偏移量对实例进行支持;S4:设定自定义依赖策略,并根据自定义依赖策略对实例进行支持。技术研发人员:刘旭辉,唐晨,苏杭,张万新受保护的技术使用者:杭州云之重器科技有限公司技术研发日:技术公布日:2024/7/29本文地址:https://www.jishuxx.com/zhuanli/20240730/195612.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表