CN112764902A - 任务调度方法及系统 - Google Patents
任务调度方法及系统 Download PDFInfo
- Publication number
- CN112764902A CN112764902A CN202110081921.5A CN202110081921A CN112764902A CN 112764902 A CN112764902 A CN 112764902A CN 202110081921 A CN202110081921 A CN 202110081921A CN 112764902 A CN112764902 A CN 112764902A
- Authority
- CN
- China
- Prior art keywords
- task
- module
- request
- script
- parameters
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 32
- 238000012544 monitoring process Methods 0.000 claims abstract description 10
- 238000011161 development Methods 0.000 description 18
- 238000004590 computer program Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 6
- 230000004044 response Effects 0.000 description 4
- 238000011112 process operation Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000036541 health Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
- G06F9/4451—User profiles; Roaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
- G06F9/548—Object oriented; Remote method invocation [RMI]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/544—Remote
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请涉及一种任务调度方法及系统,其中,该任务调度方法包括:任务请求步骤,用于基于一任务调度系统的前端模块创建任务节点及任务工作流,配置任务工作流并提交任务请求;任务接收步骤,用于基于所述任务调度系统的后端模块接收所述任务请求并将所述任务请求存储至一数据库模块;任务脚本生成步骤,用于通过一Zookeeper服务模块监控所述数据库模块中的任务请求并根据所述任务请求生成对应的任务脚本;任务执行步骤,用于通过Jupyter Notebook接收所述任务脚本并执行所述任务脚本,实现任务调度。通过本申请,使开发者不需要写代码即可完成对Jupyter Notebook配置任务调度,大大减少了开发者的工作量,提高工作效率。
Description
技术领域
本申请涉及互联网技术领域,特别是涉及一种基于任务调度系统及JupyterNotebook的任务调度方法及系统。
背景技术
Jupyter Notebook是基于网页的用于交互计算的应用程序。其可被应用于全过程计算:开发、文档编写、运行代码和展示结果。简而言之,Jupyter Notebook是以网页的形式打开,可以在网页页面中直接编写代码和运行代码,代码的运行结果也会直接在代码块下显示。如在编程过程中需要编写说明文档,可在同一个页面中直接编写,便于作及时的说明和解释。
但是,在实际应用过程中,目前很多开发对象会基于Jupiter NoteBook进行开发任务,但是并不能通过Jupiter NoteBook本身进行任务调度,要实现调度任务,需要开发对象单独对调度模块进行开发;进一步的,使用Jupyter Notebook需要手动进行任务执行,其也不能执行定时任务或配置任务工作流,因此,在具体应用时无法有效实现任务调度工作,而需另外的任务调度模块,这样一来,无法完成指定调度任务,无法满足对象需求。
发明内容
本申请实施例提供了一种任务调度方法、系统、计算机设备和计算机可读存储介质,通过整合任务调度系统和Jupiter NoteBook使开发对象可对Jupiter NoteBook配置任务调度,大大减少工作量,提高工作效率。
第一方面,本申请实施例提供了一种任务调度方法,包括:
任务请求步骤,用于基于一任务调度系统的前端模块创建任务节点及任务工作流,配置任务工作流并提交任务请求;
任务接收步骤,用于基于所述任务调度系统的后端模块接收所述任务请求并将所述任务请求以Json字符串的形式存储至一数据库模块;
任务脚本生成步骤,用于通过一Zookeeper服务模块监控所述数据库模块中的任务请求并根据所述任务请求生成对应的任务脚本;
任务执行步骤,用于通过Jupyter Notebook接收所述任务脚本并执行所述任务脚本,实现任务调度。
通过上述步骤,整合Jupyter Notebook和任务调度系统,使开发对象可对JupyterNotebook进行配置任务工作流也能配置定时任务,使开发对象不需要写代码即可完成对Jupyter Notebook配置任务调度,大大减少了开发对象的工作量,提高工作效率。
在其中一些实施例中,所述任务请求步骤进一步包括:
任务工作流创建步骤,用于基于有向无环图DAG(Directed Acyclic Graph,简称DAG)创建任务节点及任务工作流,并设置任务节点参数,具体的,将任务节点拖拽至DAG图里并将所有创建的任务节点串联起来形成待执行任务的工作流,所述任务节点参数包括但不限于基本参数(如节点名称、描述、脚本字段)、运行参数、任务优先级参数、超时告警参数和/或其他自定义参数;可选的,流程运行的优先级,分五个等级:最高HIGHEST,高HIGH,中MEDIUM,低LOW,最低LOWEST。
任务工作流自定义步骤,用于编辑工作流参数,所述工作流参数包括但不限于状态参数、定时管理参数及运行参数,用于管理工作流的上下线状态和实现定时调度工作流运行。
在其中一些实施例中,所述任务脚本生成步骤进一步包括:
任务拆分步骤,用于通过所述Zookeeper服务模块的主节点Master监控所述任务请求并将所任务请求进行任务拆分后通过RPC协议发送至与所述主节点Master对应的从节点Worker;其中,RPC是一种远程过程调用的协议,使用这种协议向另一台计算机上的程序请求服务,不需要了解底层网络技术的协议。
任务脚本获取步骤,用于所述从节点Worker接收所述任务请求并根据所述任务请求的任务工作流的配置数据生成任务脚本。
在其中一些实施例中,所述Jupyter Notebook在Kubernetes容器里进行管理,其中,Kubernetes是用于自动部署,扩展和管理容器化应用程序的开源系统。具体的,每提交一NoteBook任务,Kubernetes容器会为所述NoteBook任务创建一个Pod并执行响应的脚本任务。
在其中一些实施例中,当所述主节点Master的线程数不足时,根据优先级依序执行,级别高的流程在执行队列中会优先执行,相同优先级的流程按照先进先出的顺序执行。
第二方面,本申请实施例提供了一种任务调度系统,包括:
任务请求模块,用于基于一任务调度系统的前端模块创建任务节点及任务工作流,配置任务工作流并提交任务请求;
任务接收模块,用于基于所述任务调度系统的后端模块接收所述任务请求并将所述任务请求以Json字符串的形式存储至一数据库模块;
任务脚本生成模块,用于通过一Zookeeper服务模块监控所述数据库模块中的任务请求并根据所述任务请求生成对应的任务脚本;
任务执行模块,用于通过Jupyter Notebook接收所述任务脚本并执行所述任务脚本,实现任务调度。
通过上述模块,整合Jupyter Notebook和任务调度系统,使开发对象可对JupyterNotebook进行配置任务工作流也能配置定时任务,使开发对象不需要写代码即可完成对Jupyter Notebook配置任务调度,大大减少了开发对象的工作量,提高工作效率。
在其中一些实施例中,所述任务请求模块进一步包括:
任务工作流创建模块,用于基于有向无环图DAG创建任务节点及任务工作流,并设置任务节点参数,具体的,将任务节点拖拽至DAG图里并将所有创建的任务节点串联起来形成待执行任务的工作流,所述任务节点参数包括但不限于基本参数(如节点名称、描述、脚本字段)、运行参数、任务优先级参数、超时告警参数和/或其他自定义参数;可选的,流程运行的优先级分五个等级:最高HIGHEST,高HIGH,中MEDIUM,低LOW,最低LOWEST。
任务工作流自定义模块,用于编辑工作流参数,所述工作流参数包括但不限于状态参数、定时管理参数及运行参数,用于管理工作流的上下线状态和实现定时调度工作流运行。
在其中一些实施例中,所述任务脚本生成模块进一步包括:
任务拆分模块,用于通过所述Zookeeper服务模块的主节点Master监控所述任务请求并将所任务请求进行任务拆分后通过RPC协议发送至与所述主节点Master对应的从节点Worker;
任务脚本获取模块,用于所述从节点Worker接收所述任务请求并根据所述任务请求的任务工作流的配置数据生成任务脚本。
在其中一些实施例中,所述Jupyter Notebook在Kubernetes容器里进行管理,具体的,每提交一NoteBook任务,Kubernetes容器会为所述NoteBook任务创建一个Pod并执行响应的脚本任务。
在其中一些实施例中,当所述主节点Master的线程数不足时,根据优先级依序执行,级别高的流程在执行队列中会优先执行,相同优先级的流程按照先进先出的顺序执行。
第三方面,本申请实施例提供了一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述的任务调度方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述第一方面所述的任务调度方法。
相比于相关技术,本申请实施例提供的任务调度方法、系统、计算机设备和计算机可读存储介质,将任务调度和Jupyter Notebook进行整合,使Jupyter Notebook能够基于任务调度系统完成指定调度任务,如此一来,就能跳过调度任务开发的环节,直接通过在页面上,拖拽任务节点,就能配置调度任务,并可执行定时任务。
本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的任务调度方法的流程图;
图2是根据本申请实施例的任务调度系统的架构图;
图3是根据本申请实施例的任务调度系统的结构框图。
附图说明:
1、任务请求模块;2、任务接收模块;3、任务脚本生成模块;
4、任务执行模块;
101、任务工作流创建模块;102、任务工作流自定义模块;
301、任务拆分模块;302、任务脚本获取模块。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。
除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。
本实施例提供了一种任务调度方法。图1是根据本申请实施例的任务调度方法的流程图,如图1所示,该流程包括如下步骤:
任务请求步骤S1,用于基于一任务调度系统的前端模块创建任务节点及任务工作流,配置任务工作流并提交任务请求;
任务接收步骤S2,用于基于任务调度系统的后端模块接收任务请求并将任务请求以Json字符串的形式存储至一数据库模块;
任务脚本生成步骤S3,用于通过一Zookeeper服务模块监控数据库模块中的任务请求并根据任务请求生成对应的任务脚本;
任务执行步骤S4,用于通过Jupyter Notebook接收任务脚本并执行任务脚本,实现任务调度。可选的,任务日志信息会存储到磁盘上,用户可通过前端界面查看。
通过上述步骤,整合Jupyter Notebook和任务调度系统,使开发对象可对JupyterNotebook进行配置任务工作流也能配置定时任务,使开发对象不需要写代码即可完成对Jupyter Notebook配置任务调度,大大减少了开发对象的工作量,提高工作效率。
在其中一些实施例中,任务请求步骤S1进一步包括:
任务工作流创建步骤S101,用于基于有向无环图DAG创建任务节点及任务工作流,并设置任务节点参数,具体的,将任务节点拖拽至DAG图里并将所有创建的任务节点串联起来形成待执行任务的工作流,使得开发者能够通过拖拽任务节点,对Jupiter NoteBook进行配置任务工作流;任务节点参数包括但不限于基本参数(如节点名称、描述、脚本字段)、运行参数、任务优先级参数、超时告警参数或其他自定义参数;可选的,流程运行的优先级可分五个等级:最高HIGHEST,高HIGH,中MEDIUM,低LOW,最低LOWEST,对应优先级设置优先级参数即可。
任务工作流自定义步骤S102,用于编辑工作流参数,工作流参数包括但不限于状态参数、定时管理参数及运行参数,用于管理工作流的上下线状态和实现定时调度工作流运行。
在其中一些实施例中,任务脚本生成步骤S3进一步包括:
任务拆分步骤S301,用于通过Zookeeper服务模块的主节点Master监控任务请求并将所任务请求进行任务拆分后通过RPC协议发送至与主节点Master对应的从节点Worker;
任务脚本获取步骤S302,用于从节点Worker接收任务请求并根据任务请求的任务工作流的配置数据生成任务脚本。
具体的,主节点Master和从节点Worker实现分布式锁,Zookeeper服务模块监控主节点Master和从节点Worker的健康状态。
在其中一些实施例中,Jupyter Notebook在Kubernetes容器里进行管理,具体的,每提交一NoteBook任务,Kubernetes容器会为NoteBook任务创建一个Pod并执行响应的脚本任务。
在其中一些实施例中,当主节点Master的线程数不足时,根据优先级依序执行,级别高的流程在执行队列中会优先执行,相同优先级的流程按照先进先出的顺序执行。
需要说明的是,在上述流程中或者附图的流程图中示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本实施例还提供了一种任务调度系统,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图2是根据本申请实施例的任务调度系统的架构图,图3是根据本申请实施例的任务调度系统的结构框图。如图2-3所示,该系统包括:
任务请求模块1,用于基于一任务调度系统的前端模块UI创建任务节点及任务工作流,配置任务工作流并提交任务请求;其中,任务请求模块1进一步包括:任务工作流创建模块101,用于基于有向无环图DAG创建任务节点及任务工作流,并设置任务节点参数,具体的,将任务节点拖拽至DAG图里并将所有创建的任务节点串联起来形成待执行任务的工作流,任务节点参数包括但不限于基本参数(如节点名称、描述、脚本字段)、运行参数、任务优先级参数、超时告警参数或其他自定义参数;可选的,流程运行的优先级可分五个等级:最高HIGHEST,高HIGH,中MEDIUM,低LOW,最低LOWEST,对应优先级设置优先级参数即可。任务工作流自定义模块102,用于编辑工作流参数,工作流参数包括但不限于状态参数、定时管理参数及运行参数,用于管理工作流的上下线状态和实现定时调度工作流运行。
任务接收模块2,用于基于任务调度系统的后端模块API接收任务请求并将任务请求以Json字符串的形式存储至一数据库模块DB;
任务脚本生成模块3,用于通过一Zookeeper服务模块监控数据库模块DB中的任务请求并根据任务请求生成对应的任务脚本;其中,任务脚本生成模块3进一步包括:任务拆分模块301,用于通过Zookeeper服务模块的主节点Master监控任务请求并将所任务请求进行任务拆分后通过RPC协议发送至与主节点Master对应的从节点Worker;任务脚本获取模块302,用于从节点Worker接收任务请求并根据任务请求的任务工作流的配置数据生成任务脚本。具体的,主节点Master和从节点Worker实现分布式锁,Zookeeper服务模块监控主节点Master和从节点Worker的健康状态。值得注意的是,当主节点Master的线程数不足时,根据优先级依序执行,级别高的流程在执行队列中会优先执行,相同优先级的流程按照先进先出的顺序执行。
任务执行模块4,用于通过Jupyter Notebook接收任务脚本并执行任务脚本,实现任务调度。可选的,任务日志信息会存储到磁盘上,用户可通过前端界面查看。具体的,Jupyter Notebook在Kubernetes容器里进行管理,具体的,每提交一NoteBook任务,Kubernetes容器会为NoteBook任务创建一个Pod并执行响应的脚本任务。
通过上述模块,整合Jupyter Notebook和任务调度系统,使开发对象可对JupyterNotebook进行配置任务工作流也能配置定时任务,使开发对象不需要写代码即可完成对Jupyter Notebook配置任务调度,大大减少了开发对象的工作量,提高工作效率。
需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。
另外,结合图1描述的本申请实施例任务调度方法可以由计算机设备来实现。计算机设备可以包括处理器以及存储有计算机程序指令的存储器。
具体地,上述处理器可以包括中央处理器(CPU),或者特定集成电路(ApplicationSpecific Integrated Circuit,简称为ASIC),或者可以被配置成实施本申请实施例的一个或多个集成电路。
其中,存储器可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器可包括硬盘驱动器(Hard Disk Drive,简称为HDD)、软盘驱动器、固态驱动器(SolidState Drive,简称为SSD)、闪存、光盘、磁光盘、磁带或通用串行总线(Universal SerialBus,简称为USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器可在数据处理装置的内部或外部。在特定实施例中,存储器是非易失性(Non-Volatile)存储器。在特定实施例中,存储器包括只读存储器(Read-Only Memory,简称为ROM)和随机存取存储器(Random AccessMemory,简称为RAM)。在合适的情况下,该ROM可以是掩模编程的ROM、可编程ROM(ProgrammableRead-Only Memory,简称为PROM)、可擦除PROM(Erasable ProgrammableRead-Only Memory,简称为EPROM)、电可擦除PROM(Electrically Erasable ProgrammableRead-Only Memory,简称为EEPROM)、电可改写ROM(Electrically Alterable Read-OnlyMemory,简称为EAROM)或闪存(FLASH)或者两个或更多个以上这些的组合。在合适的情况下,该RAM可以是静态随机存取存储器(Static Random-Access Memory,简称为SRAM)或动态随机存取存储器(Dynamic Random Access Memory,简称为DRAM),其中,DRAM可以是快速页模式动态随机存取存储器(Fast Page Mode Dynamic Random Access Memory,简称为FPMDRAM)、扩展数据输出动态随机存取存储器(Extended Date Out Dynamic RandomAccess Memory,简称为EDODRAM)、同步动态随机存取内存(Synchronous Dynamic Random-Access Memory,简称SDRAM)等。
存储器可以用来存储或者缓存需要处理和/或通信使用的各种数据文件,以及处理器所执行的可能的计算机程序指令。
处理器通过读取并执行存储器中存储的计算机程序指令,以实现上述实施例中的任意一种任务调度方法。
另外,结合上述实施例中的任务调度方法,本申请实施例可提供一种计算机可读存储介质来实现。该计算机可读存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种任务调度方法。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种任务调度方法,其特征在于,包括:
任务请求步骤,用于基于一任务调度系统的前端模块创建任务节点及任务工作流,配置任务工作流并提交任务请求;
任务接收步骤,用于基于所述任务调度系统的后端模块接收所述任务请求并将所述任务请求存储至一数据库模块;
任务脚本生成步骤,用于通过一Zookeeper服务模块监控所述数据库模块中的任务请求并根据所述任务请求生成对应的任务脚本;
任务执行步骤,用于通过Jupyter Notebook接收所述任务脚本并执行所述任务脚本,实现任务调度。
2.根据权利要求1所述的任务调度方法,其特征在于,所述任务请求步骤进一步包括:
任务工作流创建步骤,用于基于有向无环图DAG创建任务节点及任务工作流,并设置任务节点参数;
任务工作流自定义步骤,用于编辑工作流参数,所述工作流参数包括但不限于状态参数、定时管理参数及运行参数。
3.根据权利要求1或2所述的任务调度方法,其特征在于,所述任务脚本生成步骤进一步包括:
任务拆分步骤,用于通过所述Zookeeper服务模块的主节点Master监控所述任务请求并将所任务请求进行任务拆分后发送至与所述主节点Master对应的从节点Worker;
任务脚本获取步骤,用于所述从节点Worker接收所述任务请求并根据所述任务请求的任务工作流的配置数据生成任务脚本。
4.根据权利要求1所述的任务调度方法,其特征在于,所述Jupyter Notebook在Kubernetes容器里进行管理。
5.根据权利要求1所述的任务调度方法,其特征在于,当所述主节点Master的线程数不足时,根据优先级依序执行,相同优先级的流程按照先进先出的顺序执行。
6.一种任务调度系统,其特征在于,包括:
任务请求模块,用于基于一任务调度系统的前端模块创建任务节点及任务工作流,配置任务工作流并提交任务请求;
任务接收模块,用于基于所述任务调度系统的后端模块接收所述任务请求并将所述任务请求存储至一数据库模块;
任务脚本生成模块,用于通过一Zookeeper服务模块监控所述数据库模块中的任务请求并根据所述任务请求生成对应的任务脚本;
任务执行模块,用于通过Jupyter Notebook接收所述任务脚本并执行所述任务脚本,实现任务调度。
7.根据权利要求6所述的任务调度系统,其特征在于,所述任务请求模块进一步包括:
任务工作流创建模块,用于基于有向无环图DAG创建任务节点及任务工作流,并设置任务节点参数;
任务工作流自定义模块,用于编辑工作流参数,所述工作流参数包括但不限于状态参数、定时管理参数及运行参数。
8.根据权利要求6或7所述的任务调度系统,其特征在于,所述任务脚本生成模块进一步包括:
任务拆分模块,用于通过所述Zookeeper服务模块的主节点Master监控所述任务请求并将所任务请求进行任务拆分后发送至与所述主节点Master对应的从节点Worker;
任务脚本获取模块,用于所述从节点Worker接收所述任务请求并根据所述任务请求的任务工作流的配置数据生成任务脚本。
9.根据权利要求6所述的任务调度系统,其特征在于,所述Jupyter Notebook在Kubernetes容器里进行管理。
10.根据权利要求6所述的任务调度系统,其特征在于,当所述主节点Master的线程数不足时,根据优先级依序执行,相同优先级的流程按照先进先出的顺序执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110081921.5A CN112764902B (zh) | 2021-01-21 | 2021-01-21 | 任务调度方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110081921.5A CN112764902B (zh) | 2021-01-21 | 2021-01-21 | 任务调度方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112764902A true CN112764902A (zh) | 2021-05-07 |
CN112764902B CN112764902B (zh) | 2024-03-29 |
Family
ID=75702281
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110081921.5A Active CN112764902B (zh) | 2021-01-21 | 2021-01-21 | 任务调度方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112764902B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113254010A (zh) * | 2021-07-09 | 2021-08-13 | 广州光点信息科技有限公司 | 一种可视化dag工作流任务调度系统及其运行方法 |
CN113434279A (zh) * | 2021-07-14 | 2021-09-24 | 上海浦东发展银行股份有限公司 | 一种任务执行方法、装置、设备及存储介质 |
CN113934782A (zh) * | 2021-09-22 | 2022-01-14 | 易联众智鼎(厦门)科技有限公司 | 一种基于dag模型的数据etl系统及使用方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014173339A1 (zh) * | 2013-08-07 | 2014-10-30 | 中兴通讯股份有限公司 | 一种任务调度服务系统及方法 |
CN111082976A (zh) * | 2019-12-02 | 2020-04-28 | 东莞数汇大数据有限公司 | 一种支持etl任务调度可视化的方法 |
CN111506412A (zh) * | 2020-04-22 | 2020-08-07 | 上海德拓信息技术股份有限公司 | 基于Airflow的分布式异步任务构建、调度系统及方法 |
CN111984390A (zh) * | 2020-08-31 | 2020-11-24 | 平安医疗健康管理股份有限公司 | 任务调度方法、装置、设备及存储介质 |
-
2021
- 2021-01-21 CN CN202110081921.5A patent/CN112764902B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014173339A1 (zh) * | 2013-08-07 | 2014-10-30 | 中兴通讯股份有限公司 | 一种任务调度服务系统及方法 |
CN111082976A (zh) * | 2019-12-02 | 2020-04-28 | 东莞数汇大数据有限公司 | 一种支持etl任务调度可视化的方法 |
CN111506412A (zh) * | 2020-04-22 | 2020-08-07 | 上海德拓信息技术股份有限公司 | 基于Airflow的分布式异步任务构建、调度系统及方法 |
CN111984390A (zh) * | 2020-08-31 | 2020-11-24 | 平安医疗健康管理股份有限公司 | 任务调度方法、装置、设备及存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113254010A (zh) * | 2021-07-09 | 2021-08-13 | 广州光点信息科技有限公司 | 一种可视化dag工作流任务调度系统及其运行方法 |
CN113434279A (zh) * | 2021-07-14 | 2021-09-24 | 上海浦东发展银行股份有限公司 | 一种任务执行方法、装置、设备及存储介质 |
CN113934782A (zh) * | 2021-09-22 | 2022-01-14 | 易联众智鼎(厦门)科技有限公司 | 一种基于dag模型的数据etl系统及使用方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112764902B (zh) | 2024-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112764902A (zh) | 任务调度方法及系统 | |
CN110286884B (zh) | 微服务编排方法、装置、设备及计算机可读存储介质 | |
JP3945709B2 (ja) | グリッド内の状況情報を入手するための方法および装置 | |
US8434085B2 (en) | Scalable scheduling of tasks in heterogeneous systems | |
US20060229924A1 (en) | Data driven dynamic workflow | |
US20080120619A1 (en) | Real time monitoring and tracing of scheduler decisions | |
CN110752947A (zh) | 一种k8s集群部署方法及装置,一种部署平台 | |
WO2017071266A1 (zh) | 一种业务和资源编排的系统、方法及装置 | |
CN106331150A (zh) | 用于调度云服务器的方法和装置 | |
US20160080479A1 (en) | Application deployment method and device | |
CN107341054B (zh) | 任务执行方法、装置及计算机可读存储介质 | |
WO2021139778A1 (zh) | 系统调度工作流生成方法、系统、设备及计算机可读存储介质 | |
US11645098B2 (en) | Systems and methods to pre-provision sockets for serverless functions | |
US20090055335A1 (en) | Problem solving system and method | |
JP2008112311A (ja) | ビジネスプロセス実行方法、ビジネスプロセス実行システムおよびプログラム | |
CN115756822A (zh) | 高性能计算应用性能调优的方法及系统 | |
Justino et al. | Outsourcing resource-intensive tasks from mobile apps to clouds: Android and aneka integration | |
JP2010027007A (ja) | 処理装置、要求装置、及びそれらの処理方法 | |
CN116881012A (zh) | 一种容器应用垂直扩容方法、装置、设备及可读存储介质 | |
US9733994B2 (en) | Method and system for communicating information between a mobile device and an enterprise system | |
CN110782040A (zh) | 一种pytorch任务训练方法、装置、设备及介质 | |
JP5371613B2 (ja) | サービス連携装置 | |
WO2007147668A1 (en) | Discovery directives | |
CN114090242A (zh) | 模型训练方法、装置、设备、存储介质及程序产品 | |
CN111431951B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |