CN111309464A - 一种任务调度方法及系统 - Google Patents

一种任务调度方法及系统 Download PDF

Info

Publication number
CN111309464A
CN111309464A CN202010088514.2A CN202010088514A CN111309464A CN 111309464 A CN111309464 A CN 111309464A CN 202010088514 A CN202010088514 A CN 202010088514A CN 111309464 A CN111309464 A CN 111309464A
Authority
CN
China
Prior art keywords
task
dependent
script data
execution
executing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202010088514.2A
Other languages
English (en)
Inventor
苏承祥
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Tuya Information Technology Co Ltd
Original Assignee
Hangzhou Tuya Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou Tuya Information Technology Co Ltd filed Critical Hangzhou Tuya Information Technology Co Ltd
Priority to CN202010088514.2A priority Critical patent/CN111309464A/zh
Publication of CN111309464A publication Critical patent/CN111309464A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及一种任务调度方法,包括以下步骤:获取当前任务以及对应当前任务的所有依赖任务;根据每个依赖任务在线编辑对应依赖任务的脚本数据;根据预设触发条件执行对应依赖任务的脚本数据;所有依赖任务执行完成后,执行当前任务。在本发明的技术方案中,解决了DAG任务内部依赖的限制,所有任务之间都能进行依赖,并且任务支持在线实时编辑。

Description

一种任务调度方法及系统
技术领域
本发明涉及任务调度技术领域,尤其涉及一种任务调度方法及系统。
背景技术
随着近年来互联网技术的迅速发展,由于有些数据需要定时计算,人们对任务调度系统的依赖越来越大。但是大部分任务调度系统都是无法进行任务之间的细粒度依赖和无法在线实时编辑,导致任务开发者把大量的子任务写到一个任务中或者使用定时的方式实现。这样做的话增加了使用者的维护与开发成本,并且对任务的准确性也有影响。
目前较出名的airflow调度以及azkaban都对于任务的依赖都是使用硬编码实现,每次任务的编辑都需要重新发布系统,难以动态维护。并且由于其硬编码的特性,只能支持到DAG内部任务之间的依赖,如果想要跨DAG之间的任务依赖,就需要升级到最新版本和编写更加复杂的代码,更新和维护成本巨大。
发明内容
本发明旨在至少解决现有技术或相关技术中存在的技术问题之一。
为此,本发明的目的在于提供一种任务调度方法及系统,解决了DAG任务内部依赖的限制,所有任务之间都能进行依赖,并且任务支持在线实时编辑。
为实现上述目的,本发明第一方面的技术方案提供了一种任务调度方法,包括以下步骤:获取当前任务以及对应当前任务的所有依赖任务;根据每个依赖任务在线编辑对应依赖任务的脚本数据;根据预设触发条件执行对应依赖任务的脚本数据;所有依赖任务执行完成后,执行当前任务。
在上述技术方案中,优选地,预设触发条件为定时触发、依赖触发和手动触发中的至少一种。
在上述任一技术方案中,优选地,根据预设触发条件执行对应依赖任务的脚本数据,包括以下步骤:将脚本数据存入mysql数据库;根据预设触发条件获取mysql数据库中对应依赖任务的最新脚本数据;利用执行工具执行对应依赖任务的最新脚本数据。
在上述任一技术方案中,优选地,执行工具执行最新脚本数据为将最新脚本数据写入执行工具的执行文件上。
在上述任一技术方案中,优选地,采用dos2unix命令使脚本数据兼容win系统/linux系统/mac系统。
本发明第二方面的技术方案提供了一种任务调度系统,包括:获取模块,被设置为用于获取当前任务以及对应当前任务的所有依赖任务;在线编辑模块,被设置为用于根据每个依赖任务在线编辑对应依赖任务的脚本数据;依赖任务执行模块,被设置为用于根据预设触发条件执行对应依赖任务的脚本数据;当前任务执行模块,被设置为用于所有依赖任务执行完成后,执行当前任务。
在上述技术方案中,优选地,预设触发条件为定时触发、依赖触发和手动触发中的至少一种。
在上述任一技术方案中,优选地,依赖任务执行模块包括:mysql数据库,被设置为用于存储脚本数据;获取单元,被设置为用于根据预设触发条件获取mysql数据库中对应依赖任务的最新脚本数据;脚本执行单元,被设置为用于利用执行工具执行对应依赖任务的最新脚本数据。
在上述任一技术方案中,优选地,依赖任务执行模块还包括:写入单元,被设置为用于将最新脚本数据写入执行工具的执行文件上。
在上述任一技术方案中,优选地,还包括:兼容模块,被设置为用于采用dos 2unix命令使脚本数据兼容win系统/linux系统/mac系统。
本发明提供的任务调度方法及系统与现有技术相比的优点在于:没有airflow和azkaban类似的DAG任务内部的依赖的限制,实现所有任务之间的相互依赖,而不是DAG内部的任务依赖,支持任务的在线编辑,实时发布。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1示出了本发明一个实施例所涉及任务调度方法的流程框图;
图2示出了本发明实施例所涉及步骤S3的流程框图;
图3示出了本发明另一个实施例所涉及任务调度系统的结构框图;
图4示出了本发明另一些实施例所涉及依赖任务执行模块的结构框图;
图5示出了本发明再一些实施例所涉及依赖任务执行模块的结构框图;
图6示出了本发明再一个实施例所涉及任务调度系统的结构框图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不限于下面公开的具体实施例的限制。
下面参照图1至图6描述根据本发明一些实施例的任务调度方法及系统。
如图1所示,按照本发明一个实施例的任务调度方法,包括以下步骤:
S1,获取当前任务以及对应当前任务的所有依赖任务;
S2,根据每个依赖任务在线编辑对应依赖任务的脚本数据;
S3,根据预设触发条件执行对应依赖任务的脚本数据;
在该步骤中,预设触发条件为定时触发、依赖触发和手动触发中的至少一种。
S4,所有依赖任务执行完成后,执行当前任务。
如图2所示,在本发明一些可能的实施例中,在步骤S3,根据预设触发条件执行对应依赖任务的脚本数据,包括以下步骤:
S31,将脚本数据存入mysql数据库;
在该步骤中,用户在线编辑脚本数据,点击保存按钮后,把用户的脚本内容存到mysql数据库。
S32,根据预设触发条件获取mysql数据库中对应依赖任务的最新脚本数据;
在该步骤中,在依赖任务达到预设触发条件的时候(定时触发、依赖触发和手动触发中至少一个条件),执行前首先从mysql数据库获取依赖任务的最新脚本内容。
S33,利用执行工具执行对应依赖任务的最新脚本数据。
在该步骤中,将脚本数据写入到执行器的一个执行文件上,以此来保证执行的是用户编辑后的最新的脚本。
在上述任一实施例中,优选地,采用dos 2unix命令使脚本数据兼容win系统/linux系统/mac系统。
在该实施例中,对脚本数据使用dos 2unix命令进行换行替换以兼容win/linux/mac等不同系统的文件格式。
如图3所示,按照本发明另一个实施例的任务调度系统100,包括:
获取模块10,被设置为用于获取当前任务以及对应当前任务的所有依赖任务;
在线编辑模块20,被设置为用于根据每个依赖任务在线编辑对应依赖任务的脚本数据;
依赖任务执行模块30,被设置为用于根据预设触发条件执行对应依赖任务的脚本数据;
其中,预设触发条件为定时触发、依赖触发和手动触发中的至少一种。
当前任务执行模块40,被设置为用于所有依赖任务执行完成后,执行当前任务。
如图4所示,在本发明另一些可能的实施例中,依赖任务执行模块30包括:
mysql数据库31,被设置为用于存储脚本数据;
获取单元32,被设置为用于根据预设触发条件获取mysql数据库中对应依赖任务的最新脚本数据;
脚本执行单元33,被设置为用于利用执行工具执行对应依赖任务的最新脚本数据。
如图5所示,在本发明再一些可能的实施例中,依赖任务执行模块30包括:
mysql数据库31,被设置为用于存储脚本数据;
获取单元32,被设置为用于根据预设触发条件获取mysql数据库中对应依赖任务的最新脚本数据;
脚本执行单元33,被设置为用于利用执行工具执行对应依赖任务的最新脚本数据;
写入单元34,被设置为用于将最新脚本数据写入执行工具的执行文件上。
如图6所示,按照本发明再一个实施例的任务调度系统100,包括:
获取模块10,被设置为用于获取当前任务以及对应当前任务的所有依赖任务;
在线编辑模块20,被设置为用于根据每个依赖任务在线编辑对应依赖任务的脚本数据;
依赖任务执行模块30,被设置为用于根据预设触发条件执行对应依赖任务的脚本数据;
其中,预设触发条件为定时触发、依赖触发和手动触发中的至少一种。
当前任务执行模块40,被设置为用于所有依赖任务执行完成后,执行当前任务;
兼容模块50,被设置为用于采用dos 2unix命令使脚本数据兼容win系统/linux系统/mac系统。
基于上述如图1和图2所示方法,相应的,本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一实施例的任务调度方法的步骤。
基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施场景的方法。
基于上述如图1和图2所示的方法,以及图3至图6所示的虚拟装置实施例,为了实现上述目的,本申请实施例还提供了一种计算机设备,包括存储介质和处理器;存储介质,用于存储计算机程序;处理器,用于执行计算机程序以实现上述任一实施例的任务调度方法的步骤。
可选地,该计算机设备还可以包括用户接口、网络接口、摄像头、射频(RadioFrequency,RF)电路,传感器、音频电路、WI-FI模块等等。用户接口可以包括显示屏(Display)、输入单元比如键盘(Keyboard)等,可选用户接口还可以包括USB接口、读卡器接口等。网络接口可选的可以包括标准的有线接口、无线接口(如蓝牙接口、WI-FI接口)等。
本领域技术人员可以理解,本实施例提供的一种计算机设备结构并不构成对该计算机设备的限定,可以包括更多或更少的部件,或者组合某些部件,或者不同的部件布置。
存储介质中还可以包括操作系统、网络通信模块。操作系统是管理和保存计算机设备硬件和软件资源的程序,支持信息处理程序以及其它软件和/或程序的运行。网络通信模块用于实现存储介质内部各组件之间的通信,以及与该实体设备中其它硬件和软件之间通信。
本发明提供的任务调度方法及系统与现有技术相比的优点在于:没有airflow和azkaban类似的DAG任务内部的依赖的限制,实现所有任务之间的相互依赖,而不是DAG内部的任务依赖,支持任务的在线编辑,实时发布。
在本发明中,术语“第一”、“第二”、“第三”仅用于描述的目的,而不能理解为指示或暗示相对重要性;术语“多个”则指两个或两个以上,除非另有明确的限定。术语“安装”、“相连”、“连接”、“固定”等术语均应做广义理解,例如,“连接”可以是固定连接,也可以是可拆卸连接,或一体地连接;“相连”可以是直接相连,也可以通过中间媒介间接相连。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
本发明的描述中,需要理解的是,术语“上”、“下”、“左”、“右”、“前”、“后”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或单元必须具有特定的方向、以特定的方位构造和操作,因此,不能理解为对本发明的限制。
在本说明书的描述中,术语“一个实施例”、“一些实施例”、“具体实施例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或实例。而且,描述的具体特征、结构、材料或特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种任务调度方法,其特征在于,包括以下步骤:
获取当前任务以及对应所述当前任务的所有依赖任务;
根据每个所述依赖任务在线编辑对应所述依赖任务的脚本数据;
根据预设触发条件执行对应所述依赖任务的所述脚本数据;
所有所述依赖任务执行完成后,执行所述当前任务。
2.根据权利要求1所述的任务调度方法,其特征在于:所述预设触发条件为定时触发、依赖触发和手动触发中的至少一种。
3.根据权利要求1或2所述的任务调度方法,其特征在于,根据预设触发条件执行对应所述依赖任务的所述脚本数据,包括以下步骤:
将所述脚本数据存入mysql数据库;
根据所述预设触发条件获取所述mysql数据库中对应所述依赖任务的最新所述脚本数据;
利用执行工具执行对应所述依赖任务的最新所述脚本数据。
4.根据权利要求3所述的任务调度方法,其特征在于:执行工具执行最新所述脚本数据为将最新所述脚本数据写入所述执行工具的执行文件上。
5.根据权利要求1或2所述的任务调度方法,其特征在于:采用dos2unix命令使所述脚本数据兼容win系统/linux系统/mac系统。
6.一种任务调度系统,其特征在于,包括:
获取模块,被设置为用于获取当前任务以及对应所述当前任务的所有依赖任务;
在线编辑模块,被设置为用于根据每个所述依赖任务在线编辑对应所述依赖任务的脚本数据;
依赖任务执行模块,被设置为用于根据预设触发条件执行对应所述依赖任务的所述脚本数据;
当前任务执行模块,被设置为用于所有所述依赖任务执行完成后,执行所述当前任务。
7.根据权利要求6所述的任务调度系统,其特征在于:所述预设触发条件为定时触发、依赖触发和手动触发中的至少一种。
8.根据权利要求6或7所述的任务调度系统,其特征在于,所述依赖任务执行模块包括:
mysql数据库,被设置为用于存储所述脚本数据;
获取单元,被设置为用于根据所述预设触发条件获取所述mysql数据库中对应所述依赖任务的最新所述脚本数据;
脚本执行单元,被设置为用于利用执行工具执行对应所述依赖任务的最新所述脚本数据。
9.根据权利要求8所述的任务调度系统,其特征在于,所述依赖任务执行模块还包括:
写入单元,被设置为用于将最新所述脚本数据写入所述执行工具的执行文件上。
10.根据权利要求6或7所述的任务调度系统,其特征在于,还包括:
兼容模块,被设置为用于采用dos 2unix命令使所述脚本数据兼容win系统/linux系统/mac系统。
CN202010088514.2A 2020-02-12 2020-02-12 一种任务调度方法及系统 Pending CN111309464A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010088514.2A CN111309464A (zh) 2020-02-12 2020-02-12 一种任务调度方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010088514.2A CN111309464A (zh) 2020-02-12 2020-02-12 一种任务调度方法及系统

Publications (1)

Publication Number Publication Date
CN111309464A true CN111309464A (zh) 2020-06-19

Family

ID=71156474

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010088514.2A Pending CN111309464A (zh) 2020-02-12 2020-02-12 一种任务调度方法及系统

Country Status (1)

Country Link
CN (1) CN111309464A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111857970A (zh) * 2020-07-29 2020-10-30 北京思特奇信息技术股份有限公司 一种基于多依赖进程的调度方法和系统
CN113268318A (zh) * 2021-04-07 2021-08-17 北京思特奇信息技术股份有限公司 一种任务调度的方法和分布式系统

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104965754A (zh) * 2015-03-31 2015-10-07 腾讯科技(深圳)有限公司 任务调度方法及任务调度装置
CN107016479A (zh) * 2016-01-28 2017-08-04 五八同城信息技术有限公司 任务调度管理方法、装置及系统
CN107608774A (zh) * 2017-09-08 2018-01-19 新智云数据服务有限公司 一种任务调度方法、装置、设备及存储介质
US20180039512A1 (en) * 2016-08-08 2018-02-08 American Express Travel Related Services Company, Inc. System and method for automated continuous task triggering
CN109445926A (zh) * 2018-11-09 2019-03-08 杭州玳数科技有限公司 数据任务调度方法及数据任务调度系统
CN109491777A (zh) * 2018-11-12 2019-03-19 北京字节跳动网络技术有限公司 任务执行方法、装置、设备及存储介质
CN110069334A (zh) * 2019-05-05 2019-07-30 重庆天蓬网络有限公司 一种基于包管理的分布式数据作业调度的方法和系统
CN110427252A (zh) * 2019-06-18 2019-11-08 平安银行股份有限公司 基于任务依赖关系的任务调度方法、装置及存储介质
CN110704173A (zh) * 2019-09-29 2020-01-17 深圳前海环融联易信息科技服务有限公司 任务调度方法、调度系统、电子设备及计算机存储介质
CN110737516A (zh) * 2018-07-20 2020-01-31 网宿科技股份有限公司 一种执行数据处理任务的方法和装置

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104965754A (zh) * 2015-03-31 2015-10-07 腾讯科技(深圳)有限公司 任务调度方法及任务调度装置
CN107016479A (zh) * 2016-01-28 2017-08-04 五八同城信息技术有限公司 任务调度管理方法、装置及系统
US20180039512A1 (en) * 2016-08-08 2018-02-08 American Express Travel Related Services Company, Inc. System and method for automated continuous task triggering
CN107608774A (zh) * 2017-09-08 2018-01-19 新智云数据服务有限公司 一种任务调度方法、装置、设备及存储介质
CN110737516A (zh) * 2018-07-20 2020-01-31 网宿科技股份有限公司 一种执行数据处理任务的方法和装置
CN109445926A (zh) * 2018-11-09 2019-03-08 杭州玳数科技有限公司 数据任务调度方法及数据任务调度系统
CN109491777A (zh) * 2018-11-12 2019-03-19 北京字节跳动网络技术有限公司 任务执行方法、装置、设备及存储介质
CN110069334A (zh) * 2019-05-05 2019-07-30 重庆天蓬网络有限公司 一种基于包管理的分布式数据作业调度的方法和系统
CN110427252A (zh) * 2019-06-18 2019-11-08 平安银行股份有限公司 基于任务依赖关系的任务调度方法、装置及存储介质
CN110704173A (zh) * 2019-09-29 2020-01-17 深圳前海环融联易信息科技服务有限公司 任务调度方法、调度系统、电子设备及计算机存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111857970A (zh) * 2020-07-29 2020-10-30 北京思特奇信息技术股份有限公司 一种基于多依赖进程的调度方法和系统
CN113268318A (zh) * 2021-04-07 2021-08-17 北京思特奇信息技术股份有限公司 一种任务调度的方法和分布式系统

Similar Documents

Publication Publication Date Title
KR101790190B1 (ko) 애플리케이션 시나리오 식별 방법, 전력 소비 관리 방법, 장치 및 단말기 장치
CN110362483B (zh) 性能数据采集方法、装置、设备及存储介质
KR101816589B1 (ko) 서비스형 소프트웨어 목록 갱신 방법 및 이를 위한 시스템
CN111555938B (zh) 一种信息处理的方法以及相关装置
CN108600311B (zh) 客户端模拟接口数据的方法及装置
US8782674B2 (en) Wait on address synchronization interface
CN111309464A (zh) 一种任务调度方法及系统
CN111111201B (zh) 一种基于游戏的技能创建方法、装置、服务器及介质
CN108304676A (zh) 装配体三维模型自动重建方法、终端设备及存储介质
US20240131424A1 (en) Method and system for incremental topological update within a data flow graph in gaming
CN111399810A (zh) 一种iOS应用程序动态组件化开发方法及其系统和设备
CN107133072B (zh) 一种操作执行方法和装置
CN110727422B (zh) 一种基于前端同构框架下的多语言性能提升方法及系统
CN114022105A (zh) 数据处理方法、装置、电子设备和可读存储介质
CN111737784B (zh) 基于数字化三维的zxmp s385子架的板卡选型配置方法及设备
CN111026657B (zh) 对移动终端中的应用进行测试的方法、计算设备及介质
CN112685279A (zh) 脚本录制方法、装置、终端设备
TWI446234B (zh) 無線觸控顯示系統及其方法
CN110333883A (zh) 一种更新持久化数据的方法及装置
CN110865937A (zh) 一种应用测试方法、装置和存储介质
JP2007164532A (ja) タスク表示装置、タスク表示方法及びタスク表示プログラム
JP2006172065A (ja) チェックポイント採取方法、システム及びプログラム
CN113379385B (zh) 一种临床研究项目计划数据处理方法和装置
CN112328446B (zh) 程序进程的监控方法、装置及计算机设备
CN102779065A (zh) 一种数据处理方法及电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20200619