[发明专利]一种任务调度方法及系统在审
申请号: | 202010088514.2 | 申请日: | 2020-02-12 |
公开(公告)号: | CN111309464A | 公开(公告)日: | 2020-06-19 |
发明(设计)人: | 苏承祥 | 申请(专利权)人: | 杭州涂鸦信息技术有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48 |
代理公司: | 北京崇智专利代理事务所(普通合伙) 11605 | 代理人: | 任小燕;何海英 |
地址: | 310013 浙江省杭*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 任务 调度 方法 系统 | ||
本发明涉及一种任务调度方法,包括以下步骤:获取当前任务以及对应当前任务的所有依赖任务;根据每个依赖任务在线编辑对应依赖任务的脚本数据;根据预设触发条件执行对应依赖任务的脚本数据;所有依赖任务执行完成后,执行当前任务。在本发明的技术方案中,解决了DAG任务内部依赖的限制,所有任务之间都能进行依赖,并且任务支持在线实时编辑。
技术领域
本发明涉及任务调度技术领域,尤其涉及一种任务调度方法及系统。
背景技术
随着近年来互联网技术的迅速发展,由于有些数据需要定时计算,人们对任务调度系统的依赖越来越大。但是大部分任务调度系统都是无法进行任务之间的细粒度依赖和无法在线实时编辑,导致任务开发者把大量的子任务写到一个任务中或者使用定时的方式实现。这样做的话增加了使用者的维护与开发成本,并且对任务的准确性也有影响。
目前较出名的airflow调度以及azkaban都对于任务的依赖都是使用硬编码实现,每次任务的编辑都需要重新发布系统,难以动态维护。并且由于其硬编码的特性,只能支持到DAG内部任务之间的依赖,如果想要跨DAG之间的任务依赖,就需要升级到最新版本和编写更加复杂的代码,更新和维护成本巨大。
发明内容
本发明旨在至少解决现有技术或相关技术中存在的技术问题之一。
为此,本发明的目的在于提供一种任务调度方法及系统,解决了DAG任务内部依赖的限制,所有任务之间都能进行依赖,并且任务支持在线实时编辑。
为实现上述目的,本发明第一方面的技术方案提供了一种任务调度方法,包括以下步骤:获取当前任务以及对应当前任务的所有依赖任务;根据每个依赖任务在线编辑对应依赖任务的脚本数据;根据预设触发条件执行对应依赖任务的脚本数据;所有依赖任务执行完成后,执行当前任务。
在上述技术方案中,优选地,预设触发条件为定时触发、依赖触发和手动触发中的至少一种。
在上述任一技术方案中,优选地,根据预设触发条件执行对应依赖任务的脚本数据,包括以下步骤:将脚本数据存入mysql数据库;根据预设触发条件获取mysql数据库中对应依赖任务的最新脚本数据;利用执行工具执行对应依赖任务的最新脚本数据。
在上述任一技术方案中,优选地,执行工具执行最新脚本数据为将最新脚本数据写入执行工具的执行文件上。
在上述任一技术方案中,优选地,采用dos2unix命令使脚本数据兼容win系统/linux系统/mac系统。
本发明第二方面的技术方案提供了一种任务调度系统,包括:获取模块,被设置为用于获取当前任务以及对应当前任务的所有依赖任务;在线编辑模块,被设置为用于根据每个依赖任务在线编辑对应依赖任务的脚本数据;依赖任务执行模块,被设置为用于根据预设触发条件执行对应依赖任务的脚本数据;当前任务执行模块,被设置为用于所有依赖任务执行完成后,执行当前任务。
在上述技术方案中,优选地,预设触发条件为定时触发、依赖触发和手动触发中的至少一种。
在上述任一技术方案中,优选地,依赖任务执行模块包括:mysql数据库,被设置为用于存储脚本数据;获取单元,被设置为用于根据预设触发条件获取mysql数据库中对应依赖任务的最新脚本数据;脚本执行单元,被设置为用于利用执行工具执行对应依赖任务的最新脚本数据。
在上述任一技术方案中,优选地,依赖任务执行模块还包括:写入单元,被设置为用于将最新脚本数据写入执行工具的执行文件上。
在上述任一技术方案中,优选地,还包括:兼容模块,被设置为用于采用dos 2unix命令使脚本数据兼容win系统/linux系统/mac系统。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州涂鸦信息技术有限公司,未经杭州涂鸦信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010088514.2/2.html,转载请声明来源钻瓜专利网。