任务脚本生成装置及方法、任务调度系统及方法与流程

文档序号:12863499阅读:508来源:国知局
任务脚本生成装置及方法、任务调度系统及方法与流程

本发明涉及大数据管理领域,尤其涉及一种任务脚本生成装置及方法、任务调度系统及方法。



背景技术:

用户数据(包括用户行为数据及用户通信数据等)是当今各大公司的核心资产,在大数据的基础上做数据分析和挖掘,是为了挖掘数据的潜在价值,从而增加营收,指导公司产品方向。

在大数据中会存在很多的查询计算等处理任务,比如hive查询,spark计算,hadoop计算等等一系列的操作,每一个操作就是一个任务,一系列任务组合就是一个dag(directedacyclicgraph,有向无环图),而任务之间又存在两种依赖关系“任务上下游的依赖关系,或者,任务批次之间的依赖关系”;若靠人工处理这些关系,显然是不现实且低效的,所以调度系统应运而生。

市面上比较成熟的如oozie,底层基于hadoop,采用xml文件和配置文件定义dag。这种方式的缺点是:一、图形化用户界面不友好,且展示粗糙;二、xml这种配置工作繁重不灵活。与其对应的,管理工具airflow是一款基于python语言的调度系统,调度文件由python语言编写,灵活度很大,且用户界面友好,但是airflow需要的基于python语言的任务脚本,如dag包括的函数调用、任务等,需要用户手工编译,对用户来说是一个难题,导致用户难以使用调度系统。



技术实现要素:

本发明的主要目的在于提出一种任务脚本生成装置及方法、任务调度系统及方法,旨在解决现有任务脚本需要用户手工编译导致用户难以使用调度系统的问题。

为实现上述目的,本发明提出一种任务脚本生成装置,包括:采集模块、处理模块、封装模块及输出模块,其中,

采集模块用于提供绘制界面,采集在绘制界面进行有向无环图绘制的绘制结果;

处理模块用于根据绘制结果,生成有向无环图的调度任务参数;调度任务参数包括有向无环图的描述参数、节点参数及节点连接关系;

封装模块用于解析调度任务参数,并封装生成封装结果;封装结果包括模块列表、任务列表、线程参数及有向无环图参数;

输出模块用于采用与目标任务调度系统匹配的模板定义软件,对封装结果进行定义,生成有向无环图对应的任务脚本。

在一些实施例中,输出模块在生成任务脚本之后,还用于调用目标任务调度系统的脚本语法校验规则,对任务脚本进行校验,在校验通过时,输出最终的任务脚本。

在一些实施例中,还包括展示模块,展示模块用于获取目标任务调度系统反馈的任务脚本的执行结果,并展示执行结果。

在一些实施例中,输出模块还用于调用阻塞请求操作,将阻塞请求操作与封装结果同时进行定义,生成任务脚本。

本发明提供了一种任务调度系统,包括任务调度装置、任务执行装置、以及本发明提供的任务脚本生成装置,其中,

任务脚本生成装置用于采集用户在绘制界面进行有向无环图绘制的绘制结果,生成对应任务脚本;

任务调度装置用于根据有向无环图的调度参数,调度任务脚本;

任务执行装置用于执行任务脚本,并向任务脚本生成装置返回执行结果;

任务脚本生成装置还用于展示执行结果。

本发明提供了一种任务脚本生成方法,包括:

提供绘制界面,采集在绘制界面进行有向无环图绘制的绘制结果;

根据绘制结果,生成有向无环图的调度任务参数;调度任务参数包括有向无环图的描述参数、节点参数及节点连接关系;

解析调度任务参数,并封装生成封装结果;封装结果包括模块列表、任务列表、线程参数及有向无环图参数;

采用与目标任务调度系统匹配的模板定义软件,对封装结果进行定义,生成有向无环图对应的任务脚本。

在一些实施例中,在生成任务脚本之后,还包括:调用目标任务调度系统的脚本语法校验规则,对任务脚本进行校验,在校验通过时,输出最终的任务脚本。

在一些实施例中,还包括:获取目标任务调度系统反馈的任务脚本的执行结果,并展示执行结果。

在一些实施例中,还包括:调用阻塞请求操作,将阻塞请求操作与封装结果同时进行定义,生成任务脚本。

本发明提供了一种任务调度方法,包括:

采用本发明提供的任务脚本生成方法,根据用户在绘制界面进行有向无环图绘制的绘制结果,生成对应任务脚本;

根据有向无环图的调度参数,调度任务脚本;

执行任务脚本,并展示执行结果。

本发明实施例所提出的一种任务脚本生成装置及方法、任务调度系统及方法,该装置通过提供绘制界面,采集在绘制界面进行有向无环图绘制的绘制结果,根据绘制结果,生成有向无环图的调度任务参数,解析调度任务参数,并封装生成封装结果,采用与目标任务调度系统匹配的模板定义软件,对封装结果进行定义,生成有向无环图对应的任务脚本;在整个过程中,用户仅需在绘制界面内,根据需要实现的有向无环图进行简单的绘制之后,任务脚本生成装置即可生成有向无环图对应的任务脚本,用户操作简单,不需要进行脚本编译,降低了对用户使用调度系统的要求,用户仅需要具备基础的绘图能力即可,解决了现有任务脚本需要用户手工编译导致用户难以使用调度系统的问题,增强了用户的使用体验。

附图说明

图1为实现本发明各个实施例一个可选的移动终端的硬件结构示意图;

图2为如图1所示的移动终端的无线通信系统示意图;

图3为本发明任务脚本生成装置的一种结构示意图;

图4为本发明终端的一种结构示意图;

图5为本发明任务脚本生成方法第一实施例的流程图;

图6为本发明任务脚本生成方法第二实施例的流程图;

图7为本发明实施例涉及的任务脚本生成装置的界面示意图;

图8为本发明实施例涉及的绘制界面的第一种示意图;

图9为本发明实施例涉及的绘制界面的第二种示意图;

图10为本发明实施例涉及的绘制界面的第三种示意图;

图11为本发明实施例涉及的展示界面的示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

现在将参考附图描述实现本发明各个实施例的移动终端。在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身并没有特定的意义。因此,"模块"与"部件"可以混合地使用。

本发明涉及的任务调度系统,包括任务调度装置、任务执行装置、以及本发明提供的任务脚本生成装置,其中,任务调度装置、任务执行装置由服务器来实现,任务脚本生成装置由用户终端上的客户端/门户界面等实现,任务调度装置与任务脚本生成装置基于调度系统的接口(如airflowapi)等连接。本发明涉及的用户终端可以是手机/平板等移动终端,以及电脑等固定终端,以下实施例以终端为移动终端为例进行说明,固定终端的实现与其类似。

移动终端可以以各种形式来实施。例如,本发明中描述的终端可以包括诸如移动电话、智能电话、笔记本电脑、数字广播接收器、pda(个人数字助理)、pad(平板电脑)、pmp(便携式多媒体播放器)、导航装置等等的移动终端以及诸如数字tv、台式计算机等等的固定终端。下面,假设终端是移动终端。然而,本领域技术人员将理解的是,除了特别用于移动目的的元件之外,根据本发明的实施方式的构造也能够应用于固定类型的终端。

图1为实现本发明各个实施例一个可选的移动终端的硬件结构示意图。

移动终端100可以包括无线通信单元110、用户输入单元120、输出单元130、存储器140、控制器150和电源单元160等等。图1示出了具有各种组件的移动终端,但是应理解的是,并不要求实施所有示出的组件,可以替代地实施更多或更少的组件,将在下面详细描述移动终端的元件。

无线通信单元110通常包括一个或多个组件,其允许移动终端100与无线通信系统或网络之间的无线电通信以下载应用等。例如,无线通信单元可以包括移动通信模块111、无线互联网模块112中的至少一个。

移动通信模块111将无线电信号发送到基站(例如,接入点、节点b等等)、外部终端以及服务器中的至少一个和/或从其接收无线电信号。这样的无线电信号可以包括语音通话信号、视频通话信号、或者根据文本和/或多媒体消息发送和/或接收的各种类型的数据。

无线互联网模块112支持移动终端的无线互联网接入。该模块可以内部或外部地耦接到终端。该模块所涉及的无线互联网接入技术可以包括wlan(无线lan)(wi-fi)、wibro(无线宽带)、wimax(全球微波互联接入)、hsdpa(高速下行链路分组接入)等等。

用户输入单元120可以根据用户输入的命令生成键输入数据以控制移动终端的各种操作。用户输入单元120允许用户输入各种类型的信息,并且可以包括键盘、锅仔片、触摸板(例如,检测由于被接触而导致的电阻、压力、电容等等的变化的触敏组件)、滚轮、摇杆、传感器等等。特别地,当触摸板以层的形式叠加在显示模块131上时,可以形成触摸屏。

输出单元130可以包括显示模块131等。显示模块131可以显示在移动终端100中处理的信息。例如,当移动终端100处于电话通话模式时,显示模块131可以显示与通话或其它通信(例如,文本消息收发、多媒体文件下载等等)相关的用户界面(ui)或图形用户界面(gui)。当移动终端100处于视频通话模式或者图像捕获模式时,显示模块131可以显示捕获的图像和/或接收的图像、示出视频或图像以及相关功能的ui或gui等等。

同时,当显示模块131和触摸板以层的形式彼此叠加以形成触摸屏时,显示模块131可以用作输入装置和输出装置。显示模块131可以包括液晶显示器(lcd)、薄膜晶体管lcd(tft-lcd)、有机发光二极管(oled)显示器、柔性显示器、三维(3d)显示器等等中的至少一种。这些显示器中的一些可以被构造为透明状以允许用户从外部观看,这可以称为透明显示器,典型的透明显示器可以例如为toled(透明有机发光二极管)显示器等等。根据特定想要的实施方式,移动终端100可以包括两个或更多显示模块(或其它显示装置),例如,移动终端可以包括外部显示模块(未示出)和内部显示模块(未示出)。触摸屏可用于检测触摸输入压力以及触摸输入位置和触摸输入面积。

存储器140可以存储由控制器150执行的处理和控制操作的软件程序等等,或者可以暂时地存储己经输出或将要输出的数据(例如,终端状态与响应灵敏度的对应关系等等)。而且,存储器140可以存储关于当触摸施加到触摸屏时输出的各种方式的振动和音频信号的数据。

存储器140可以包括至少一种类型的存储介质,存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等等。而且,移动终端100可以与通过网络连接执行存储器140的存储功能的网络存储装置协作。

控制器150通常控制移动终端的总体操作。例如,控制器150执行与语音通话、数据网络、视频通话等等相关的控制和处理。另外,控制器150可以包括用于再现(或回放)多媒体数据的多媒体模块151,多媒体模块151可以构造在控制器150内,或者可以构造为与控制器150分离。控制器150可以执行模式识别处理,以将在触摸屏上执行的手写输入或者图片绘制输入识别为字符或图像。

电源单元160在控制器150的控制下接收外部电力或内部电力并且提供操作各元件和组件所需的适当的电力。

这里描述的各种实施方式可以以使用例如计算机软件、硬件或其任何组合的计算机可读介质来实施。对于硬件实施,这里描述的实施方式可以通过使用特定用途集成电路(asic)、数字信号处理器(dsp)、数字信号处理装置(dspd)、可编程逻辑装置(pld)、现场可编程门阵列(fpga)、处理器、控制器、微控制器、微处理器、被设计为执行这里描述的功能的电子单元中的至少一种来实施,在一些情况下,这样的实施方式可以在控制器150中实施。对于软件实施,诸如过程或功能的实施方式可以与允许执行至少一种功能或操作的单独的软件模块来实施。软件代码可以由以任何适当的编程语言编写的软件应用程序(或程序)来实施,软件代码可以存储在存储器140中并且由控制器150执行。

至此,己经按照其功能描述了移动终端。下面,为了简要起见,将描述诸如折叠型、直板型、摆动型、滑动型移动终端等等的各种类型的移动终端中的滑动型移动终端作为示例。因此,本发明能够应用于任何类型的移动终端,并且不限于滑动型移动终端。

如图1中所示的移动终端100可以被构造为利用经由帧或分组发送数据的诸如有线和无线通信系统以及基于卫星的通信系统来操作。

现在将参考图2描述其中根据本发明的移动终端能够操作的通信系统。

这样的通信系统可以使用不同的空中接口和/或物理层。例如,由通信系统使用的空中接口包括例如频分多址(fdma)、时分多址(tdma)、码分多址(cdma)和通用移动通信系统(umts)(特别地,长期演进(lte))、全球移动通信系统(gsm)等等。作为非限制性示例,下面的描述涉及cdma通信系统,但是这样的教导同样适用于其它类型的系统。

参考图2,cdma无线通信系统可以包括多个移动终端100、多个基站(bs)270、基站控制器(bsc)275、移动交换中心(msc)280、任务调度装置400和任务执行装置500。msc280被构造为与公共电话交换网络(pstn)290形成接口。msc280还被构造为与可以经由回程线路耦接到基站270的bsc275形成接口。回程线路可以根据若干己知的接口中的任一种来构造,接口包括例如e1/t1、atm,ip、ppp、帧中继、hdsl、adsl或xdsl。将理解的是,如图2中所示的系统可以包括多个bsc275。

每个bs270可以服务一个或多个分区(或区域),由多向天线或指向特定方向的天线覆盖的每个分区放射状地远离bs270。或者,每个分区可以由用于分集接收的两个或更多天线覆盖。每个bs270可以被构造为支持多个频率分配,并且每个频率分配具有特定频谱(例如,1.25mhz,5mhz等等)。

分区与频率分配的交叉可以被称为cdma信道。bs270也可以被称为基站收发器子系统(bts)或者其它等效术语。在这样的情况下,术语"基站"可以用于笼统地表示单个bsc275和至少一个bs270。基站也可以被称为"蜂窝站"。或者,特定bs270的各分区可以被称为多个蜂窝站。

如图2中所示,广播发射器(bt)295将广播信号发送给在系统内操作的移动终端100。如广播接收模块被设置在移动终端100处以接收由bt295发送的广播信号。在图2中,示出了几个全球定位系统(gps)卫星300。卫星300帮助定位多个移动终端100中的至少一个。

在图2中,描绘了多个卫星300,但是理解的是,可以利用任何数目的卫星获得有用的定位信息。如gps模块通常被构造为与卫星300配合以获得想要的定位信息。替代gps跟踪技术或者在gps跟踪技术之外,可以使用可以跟踪移动终端的位置的其它技术。另外,至少一个gps卫星300可以选择性地或者额外地处理卫星dmb传输。

作为无线通信系统的一个典型操作,bs270接收来自各种移动终端100的反向链路信号。移动终端100通常参与通话、消息收发和其它类型的通信。特定基站270接收的每个反向链路信号被在特定bs270内进行处理。获得的数据被转发给相关的bsc275。bsc提供通话资源分配和包括bs270之间的软切换过程的协调的移动管理功能。bsc275还将接收到的数据路由到msc280,其提供用于与pstn290形成接口的额外的路由服务。类似地,pstn290与msc280形成接口,msc与bsc275形成接口,并且bsc275相应地控制bs270以将正向链路信号发送到移动终端100。

在图2中,任务调度装置400通常由应用供应商提供的实体/虚拟服务器来实现,其通过基站/互联网等方式接收来自移动终端100上传的任务脚本,并确定对应的任务执行装置500,在满足任务调度条件时,发送任务脚本到对应的任务执行装置500。

在图2中,任务执行装置500,通常由服务供应商提供的实体/虚拟服务器来实现,其通过基站/互联网等方式接收来自任务调度装置400转发的任务脚本,并执行后向移动终端100返回执行结果等。

基于上述移动终端硬件结构以及通信系统,提出本发明方法各个实施例。

如图3所示,基于上述移动终端硬件结构以及通信系统,提出本发明的任务脚本生成装置的实施例,具体的,本发明提供的任务脚本生成装置包括:采集模块31、处理模块32、封装模块33及输出模块34,其中,

采集模块31用于提供绘制界面,采集在绘制界面进行有向无环图绘制的绘制结果;

处理模块32用于根据绘制结果,生成有向无环图的调度任务参数;调度任务参数包括有向无环图的描述参数、节点参数及节点连接关系;在实际应用中,处理模块32可以用于采用json数据格式,描述有向无环图的调度任务参数,json中包含三类信息:dag信息,dag信息包含整个dag的属性,包括name(名称),id(编号),argument(参数);nodes节点信息,每个节点表示一个task(任务),节点信息就是task信息;在实际应用中,每个task都是http类型的操作,是为了将执行请求转给自定义查询接口(即任务执行装置500);connectors连接信息,每个连接表示task之间的时序;

封装模块33用于解析调度任务参数,并封装生成封装结果;封装结果包括模块列表、任务列表、线程参数及有向无环图参数;在实际应用中,封装模块33解析dagjson,并封装为封装结果,包括对应的module(模块)列表(当前python中需要引入的模块列表),task列表(包含http类型的task的依赖和task具体的执行脚本),lines(任务之间的时序依赖),dag(包含dag的属性和所有任务的默认参数,如执行周期、执行时间等);

输出模块34用于采用与目标任务调度系统匹配的模板定义软件,对封装结果进行定义,生成有向无环图对应的任务脚本;在实际应用中,目标任务调度系统基于java语言实现,模板定义软件包括freemarker,此时,输出模块34使用freemarker定义python模板文件,作为任务脚本,任务脚本包含:模块列表,包含根据当前操作引入的,也包含默认添加的;task列表,http请求操作,请求自定义查询接口;当前任务的执行时间,为了做后面的查询状态使用;任务时序关系。

在实际应用中,任务脚本生成装置的界面可以同时包括绘制界面及展示界面,也可以在不同功能下显示不同的界面,针对同时包括绘制界面及展示界面的场景,如图7所示,而在不同功能下显示不同的界面的场景,可以如图8至图11所示。

具体的,如图7所示,绘制界面可以包括一些常用的功能选项(如保存、打开、新建等),也可以包括一些常用的图形(如流程框图、判断框图、选择框图等),以及用户登录等账号选项,基于这样选项可以方便用户快速的绘制dag的图形;展示界面可以包括一些常用的功能选项(如导出、另存为等),以及用户登录等账号选项,基于这样选项可以方便用户处理dag的执行结果。

为了保证任务脚本的有效性,在实际应用中,输出模块34在生成任务脚本之后,还用于调用目标任务调度系统的脚本语法校验规则,对任务脚本进行校验,在校验通过时,输出最终的任务脚本。

在实际应用中,因为自定义查询接口是异步的方式,为了保证请求的任务是真正执行完成后才执行下游任务,所以添加了一个阻碍的请求操作,一直轮询自定义接口的任务执行状态;即,输出模块34还用于调用阻塞请求操作,将阻塞请求操作与封装结果同时进行定义,生成任务脚本;此时,任务脚本包含:模块列表,包含根据当前操作引入的,也包含默认添加的;task列表,http请求操作,请求自定义查询接口;当前任务的执行时间,为了做后面的查询状态使用;阻塞请求操作,因为自定义查询接口是异步的方式,为了保证请求的任务是真正执行完成后才执行下游任务,所以添加了一个阻碍的请求操作,一直轮询自定义接口的任务执行状态;任务时序关系。

在实际应用中,为了用户在移动终端上实时的了解dag的执行结果,如图3所示,本发明提供的任务脚本生成装置还包括展示模块35,展示模块35用于获取目标任务调度系统反馈的任务脚本的执行结果,并展示执行结果。

为了使得本发明提供的任务脚本生成装置得以应用,本发明提供了一种任务调度系统,包括任务调度装置400、任务执行装置500、以及本发明提供的任务脚本生成装置,其中,

任务脚本生成装置用于采集用户在绘制界面进行有向无环图绘制的绘制结果,生成对应任务脚本;

任务调度装置400用于根据有向无环图的调度参数,如执行周期、预计执行时间等,调度任务脚本;在实际应用中,任务脚本生成装置根据模板生成python文件后,用文件流发送python文件到任务调度装置400的airflowapi接口,该api负责对python脚本做语法校验及测试等操作,在校验通过时,保存任务脚本及对应的调度参数;

任务执行装置500用于执行任务脚本,并向任务脚本生成装置返回执行结果;

任务脚本生成装置还用于展示执行结果。

现结合图8至图11对上述实施例进行详细说明:

如图8所示,dag1包括任务1、任务2、任务3,任务1、任务2、任务3均为流程步骤,不需要进行判断/选择等,任务1、任务2、任务3之间的依赖关系为依次执行:执行任务1,输出任务1的执行结果,对任务1的执行结果执行任务2,输出任务2的执行结果,对任务2的执行结果执行任务3,输出任务3的执行结果;

此时,采集模块31采集到的绘制结果如图8所示,处理模块32输出的json数据格式包括“dag信息:name(名称:dag1),id(编号:#1),argument(参数:每天8:00执行一次);nodes节点信息:任务1、任务2及任务3;connectors连接信息:任务1、任务2、任务3依次执行”;

封装模块33输出的封装结果包括“module列表:模块1、模块2、模块3、模块4;task列表:脚本1、脚本2、脚本3、脚本4、脚本5、脚本6;lines:任务1、任务2及任务3依次执行;dag:name名称:dag1,id编号:#1,argument参数:每天8:00执行一次)”;

输出模块34输出的任务脚本为“模块列表:模块1、模块2、模块3、模块4;task列表:脚本1、脚本2、脚本3、脚本4、脚本5、脚本6;当前任务的执行时间:每天8:00;阻塞请求操作:轮询操作;任务时序关系:任务1、任务2及任务3依次执行”。

如图9所示,dag2包括任务1、任务2、任务3,任务1、任务3均为流程步骤,任务2为判断步骤,任务1、任务2、任务3之间的依赖关系为:执行任务1,输出任务1的执行结果,对任务1的执行结果执行任务2(判断),输出任务2的执行结果,若任务2的执行结果为满足条件,则对任务2的执行结果执行任务3,输出任务3的执行结果,若任务2的执行结果为不满足条件,则对任务2的执行结果执行任务1,输出任务1的执行结果,直至任务2的执行结果为满足条件;

此时,采集模块31采集到的绘制结果如图9所示,处理模块32输出的json数据格式包括“dag信息:name(名称:dag2),id(编号:#2),argument(参数:每天8:00执行一次);nodes节点信息:任务1、任务2及任务3;connectors连接信息:执行任务1,输出任务1的执行结果,对任务1的执行结果执行任务2(判断),输出任务2的执行结果,若任务2的执行结果为满足条件,则对任务2的执行结果执行任务3,输出任务3的执行结果,若任务2的执行结果为不满足条件,则对任务2的执行结果执行任务1,输出任务1的执行结果,直至任务2的执行结果为满足条件;

封装模块33输出的封装结果包括“module列表:模块1、模块2、模块3、模块4;task列表:脚本1、脚本2、脚本3、脚本4、脚本5、脚本6;lines:执行任务1,输出任务1的执行结果,对任务1的执行结果执行任务2(判断),输出任务2的执行结果,若任务2的执行结果为满足条件,则对任务2的执行结果执行任务3,输出任务3的执行结果,若任务2的执行结果为不满足条件,则对任务2的执行结果执行任务1,输出任务1的执行结果,直至任务2的执行结果为满足条件;dag包括name名称dag2,id编号#1,argument每天8:00执行一次;

输出模块34输出的任务脚本为“模块列表:模块1、模块2、模块3、模块4;task列表:脚本1、脚本2、脚本3、脚本4、脚本5、脚本6;当前任务的执行时间:每天8:00;阻塞请求操作:轮询操作;任务时序关系:执行任务1,输出任务1的执行结果,对任务1的执行结果执行任务2(判断),输出任务2的执行结果,若任务2的执行结果为满足条件,则对任务2的执行结果执行任务3,输出任务3的执行结果,若任务2的执行结果为不满足条件,则对任务2的执行结果执行任务1,输出任务1的执行结果,直至任务2的执行结果为满足条件”。

如图10所示,dag3包括任务1、任务2、任务3,任务1为选择步骤,任务2、任务3均为流程步骤,任务1、任务2、任务3之间的依赖关系为:执行任务1,输出任务1的执行结果,若任务1的执行结果为执行任务2,则对任务1的执行结果执行任务2,输出任务2的执行结果,若任务1的执行结果为执行任务3,则对任务1的执行结果执行任务3,输出任务3的执行结果;

此时,采集模块31采集到的绘制结果如图10所示,处理模块32输出的json数据格式包括“dag信息:name(名称:dag3),id(编号:#3),argument(参数:每天8:00执行一次);nodes节点信息:任务1、任务2及任务3;connectors连接信息:执行任务1,输出任务1的执行结果,若任务1的执行结果为执行任务2,则对任务1的执行结果执行任务2,输出任务2的执行结果,若任务1的执行结果为执行任务3,则对任务1的执行结果执行任务3,输出任务3的执行结果;

封装模块33输出的封装结果包括“module列表:模块1、模块2、模块3、模块4;task列表:脚本1、脚本2、脚本3、脚本4、脚本5、脚本6;lines:任务2、任务3均为流程步骤,任务1、任务2、任务3之间的依赖关系为:执行任务1,输出任务1的执行结果,若任务1的执行结果为执行任务2,则对任务1的执行结果执行任务2,输出任务2的执行结果,若任务1的执行结果为执行任务3,则对任务1的执行结果执行任务3,输出任务3的执行结果;dag包括name名称dag3,id编号#3,argument每天8:00执行一次;

输出模块34输出的任务脚本为“模块列表:模块1、模块2、模块3、模块4;task列表:脚本1、脚本2、脚本3、脚本4、脚本5、脚本6;当前任务的执行时间:每天8:00;阻塞请求操作:轮询操作;任务时序关系:任务2、任务3均为流程步骤,任务1、任务2、任务3之间的依赖关系为:执行任务1,输出任务1的执行结果,若任务1的执行结果为执行任务2,则对任务1的执行结果执行任务2,输出任务2的执行结果,若任务1的执行结果为执行任务3,则对任务1的执行结果执行任务3,输出任务3的执行结果”。

如图11所示,展示界面包括的执行结果包括:任务1的执行结果、任务2的执行结果、任务3的执行结果。

综上所述,本发明实施例所提出的任务脚本生成装置,该装置通过提供绘制界面,采集在绘制界面进行有向无环图绘制的绘制结果,根据绘制结果,生成有向无环图的调度任务参数,解析调度任务参数,并封装生成封装结果,采用与目标任务调度系统匹配的模板定义软件,对封装结果进行定义,生成有向无环图对应的任务脚本;在整个过程中,用户仅需在绘制界面内,根据需要实现的有向无环图进行简单的绘制之后,任务脚本生成装置即可生成有向无环图对应的任务脚本,用户操作简单,不需要进行脚本编译,降低了对用户使用调度系统的要求,用户仅需要具备基础的绘图能力即可,解决了现有任务脚本需要用户手工编译导致用户难以使用调度系统的问题,增强了用户的使用体验。

在本发明一实施例中,控制器150可以包括图3所示实施例中所有功能模块的功能。此时,上述实施例可以为:

首先,处理器150通过显示屏显示绘制界面;

在此基础上,处理器150采集在绘制界面进行有向无环图绘制的绘制结果;根据绘制结果,生成有向无环图的调度任务参数;调度任务参数包括有向无环图的描述参数、节点参数及节点连接关系;解析调度任务参数,并封装生成封装结果;封装结果包括模块列表、任务列表、线程参数及有向无环图参数;采用与目标任务调度系统匹配的模板定义软件,对封装结果进行定义,生成有向无环图对应的任务脚本;

其次,处理器150通过通信模块45发送任务脚本至服务器,以及接收服务器返回的执行结果;

最后,处理器150通过显示屏46显示展示界面,在展示界面内展示执行结果。

本实施例提供了一种终端,通过提供绘制界面,采集在绘制界面进行有向无环图绘制的绘制结果,根据绘制结果,生成有向无环图的调度任务参数,解析调度任务参数,并封装生成封装结果,采用与目标任务调度系统匹配的模板定义软件,对封装结果进行定义,生成有向无环图对应的任务脚本;在整个过程中,用户仅需在绘制界面内,根据需要实现的有向无环图进行简单的绘制之后,任务脚本生成装置即可生成有向无环图对应的任务脚本,用户操作简单,不需要进行脚本编译,降低了对用户使用调度系统的要求,用户仅需要具备基础的绘图能力即可,解决了现有任务脚本需要用户手工编译导致用户难以使用调度系统的问题,增强了用户的使用体验。

图4为本发明终端的一种结构示意图,如图4所示,本实施例提供的终端至少包括:输入输出(io)总线41、处理器42、ram43、内存44、通信模块45(在本发明中,通信模块45包括接收模块及发送模块等)、显示屏46(在本发明中,显示屏46用于显示绘制界面及展示界面)。其中,

输入输出(io)总线41分别与自身所属的终端的其它部件(处理器42、存储器43、内存44和通信模块45)连接,并且为其它部件提供传送线路。

处理器42通常控制自身所属的服务器的总体操作。例如,处理器42执行计算和确认等操作。其中,处理器42可以是中央处理器(cpu)。在本实施例中,处理器42至少需要具备这样的功能:提供绘制界面,采集在绘制界面进行有向无环图绘制的绘制结果;根据绘制结果,生成有向无环图的调度任务参数;调度任务参数包括有向无环图的描述参数、节点参数及节点连接关系;解析调度任务参数,并封装生成封装结果;封装结果包括模块列表、任务列表、线程参数及有向无环图参数;采用与目标任务调度系统匹配的模板定义软件,对封装结果进行定义,生成有向无环图对应的任务脚本。

ram43存储处理器可读、处理器可执行的软件代码,其包含用于控制处理器42执行本文描述的功能的指令(即软件执行功能)。在本实施例中,ram43至少需要存储有实现处理器42执行上述功能需要的程序,还需要存储终端状态与响应灵敏度的对应关系。

其中,本发明提供的终端中,实现所有模块功能的软件代码可存储在存储器43中,并由处理器42执行或编译后执行。

内存44,一般采用半导体存储单元,包括随机存储器(ram),只读存储器(rom),以及高速缓存(cache),ram是其中最重要的存储器。内存44是计算机中重要的部件之一,它是与cpu进行沟通的桥梁,计算机中所有程序的运行都是在内存中进行的,其作用是用于暂时存放cpu中的运算数据,以及与硬盘等外部存储器交换的数据,只要计算机在运行中,cpu就会把需要运算的数据调到内存中进行运算,当运算完成后cpu再将结果传送出来,内存的运行也决定了计算机的稳定运行。

通信模块45,包括射频天线及射频收发器,用于完成数据收发;

显示屏46,用于显示绘制界面及展示界面。

在图4所示的终端构件基础上,本实施例提供的任务脚本生成装置可以这样工作:

通过显示屏46显示绘制界面;

采集在绘制界面进行有向无环图绘制的绘制结果;根据绘制结果,生成有向无环图的调度任务参数;调度任务参数包括有向无环图的描述参数、节点参数及节点连接关系;解析调度任务参数,并封装生成封装结果;封装结果包括模块列表、任务列表、线程参数及有向无环图参数;采用与目标任务调度系统匹配的模板定义软件,对封装结果进行定义,生成有向无环图对应的任务脚本;

通过通信模块45发送任务脚本至服务器,以及接收服务器返回的执行结果;

通过显示屏46显示展示界面,在展示界面内展示执行结果。

本实施例提供的终端,通过提供绘制界面,采集在绘制界面进行有向无环图绘制的绘制结果,根据绘制结果,生成有向无环图的调度任务参数,解析调度任务参数,并封装生成封装结果,采用与目标任务调度系统匹配的模板定义软件,对封装结果进行定义,生成有向无环图对应的任务脚本;在整个过程中,用户仅需在绘制界面内,根据需要实现的有向无环图进行简单的绘制之后,任务脚本生成装置即可生成有向无环图对应的任务脚本,用户操作简单,不需要进行脚本编译,降低了对用户使用调度系统的要求,用户仅需要具备基础的绘图能力即可,解决了现有任务脚本需要用户手工编译导致用户难以使用调度系统的问题,增强了用户的使用体验。

如图5所示,提出本发明任务脚本生成方法第一实施例,在本实施例中,任务脚本生成方法包括以下步骤:

s501:提供绘制界面,采集在绘制界面进行有向无环图绘制的绘制结果;

s502:根据绘制结果,生成有向无环图的调度任务参数;调度任务参数包括有向无环图的描述参数、节点参数及节点连接关系;

在实际应用中可以用于采用json数据格式,描述有向无环图的调度任务参数,json中包含三类信息:dag信息,dag信息包含整个dag的属性,包括name(名称),id(编号),argument(参数);nodes节点信息,每个节点表示一个task(任务),节点信息就是task信息;在实际应用中,每个task都是http类型的操作,是为了将执行请求转给自定义查询接口(即任务执行装置500);connectors连接信息,每个连接表示task之间的时序;

s503:解析调度任务参数,并封装生成封装结果;封装结果包括模块列表、任务列表、线程参数及有向无环图参数;

在实际应用中,本步骤解析dagjson,并封装为封装结果,包括对应的module(模块)列表(当前python中需要引入的模块列表),task列表(包含http类型的task的依赖和task具体的执行脚本),lines(任务之间的时序依赖),dag(包含dag的属性和所有任务的默认参数,如执行周期、执行时间等);

s504:采用与目标任务调度系统匹配的模板定义软件,对封装结果进行定义,生成有向无环图对应的任务脚本;

在实际应用中,目标任务调度系统基于java语言实现,模板定义软件包括freemarker,此时,本步骤使用freemarker定义python模板文件,作为任务脚本,任务脚本包含:模块列表,包含根据当前操作引入的,也包含默认添加的;task列表,http请求操作,请求自定义查询接口;当前任务的执行时间,为了做后面的查询状态使用;任务时序关系。

在实际应用中,任务脚本生成装置的界面可以同时包括绘制界面及展示界面,也可以在不同功能下显示不同的界面,针对同时包括绘制界面及展示界面的场景,如图7所示,而在不同功能下显示不同的界面的场景,可以如图8至图11所示。

具体的,如图7所示,绘制界面可以包括一些常用的功能选项(如保存、打开、新建等),也可以包括一些常用的图形(如流程框图、判断框图、选择框图等),以及用户登录等账号选项,基于这样选项可以方便用户快速的绘制dag的图形;展示界面可以包括一些常用的功能选项(如导出、另存为等),以及用户登录等账号选项,基于这样选项可以方便用户处理dag的执行结果。

为了保证任务脚本的有效性,在实际应用中,图5所示方法在生成任务脚本之后,还包括:调用目标任务调度系统的脚本语法校验规则,对任务脚本进行校验,在校验通过时,输出最终的任务脚本。

在实际应用中,因为自定义查询接口是异步的方式,为了保证请求的任务是真正执行完成后才执行下游任务,所以添加了一个阻碍的请求操作,一直轮询自定义接口的任务执行状态;即,图5所示方法还包括:调用阻塞请求操作,将阻塞请求操作与封装结果同时进行定义,生成任务脚本;此时,任务脚本包含:模块列表,包含根据当前操作引入的,也包含默认添加的;task列表,http请求操作,请求自定义查询接口;当前任务的执行时间,为了做后面的查询状态使用;阻塞请求操作,因为自定义查询接口是异步的方式,为了保证请求的任务是真正执行完成后才执行下游任务,所以添加了一个阻碍的请求操作,一直轮询自定义接口的任务执行状态;任务时序关系。

在实际应用中,为了用户在移动终端上实时的了解dag的执行结果,如图3所示,本发明提供的任务脚本生成装置还包括展示模块35,展示模块35用于获取目标任务调度系统反馈的任务脚本的执行结果,并展示执行结果。

为了使得本发明提供的任务脚本生成方法得以应用,本发明提供了一种任务调度方法,包括:

采用本发明提供的任务脚本生成方法,根据用户在绘制界面进行有向无环图绘制的绘制结果,生成对应任务脚本;

根据有向无环图的调度参数,调度任务脚本;在实际应用中,根据模板生成python文件后,用文件流发送python文件到任务调度装置的airflowapi接口,该api负责对python脚本做语法校验及测试等操作,在校验通过时,保存任务脚本及对应的调度参数;

执行任务脚本,并展示执行结果。

现结合图8至图11对上述实施例进行详细说明:

如图8所示,dag1包括任务1、任务2、任务3,任务1、任务2、任务3均为流程步骤,不需要进行判断/选择等,任务1、任务2、任务3之间的依赖关系为依次执行:执行任务1,输出任务1的执行结果,对任务1的执行结果执行任务2,输出任务2的执行结果,对任务2的执行结果执行任务3,输出任务3的执行结果;此时,

步骤s501采集到的绘制结果如图8所示;

步骤s502输出的json数据格式包括“dag信息:name(名称:dag1),id(编号:#1),argument(参数:每天8:00执行一次);nodes节点信息:任务1、任务2及任务3;connectors连接信息:任务1、任务2、任务3依次执行”;

步骤s503输出的封装结果包括“module列表:模块1、模块2、模块3、模块4;task列表:脚本1、脚本2、脚本3、脚本4、脚本5、脚本6;lines:任务1、任务2及任务3依次执行;dag:name名称:dag1,id编号:#1,argument参数:每天8:00执行一次)”;

步骤s504输出的任务脚本为“模块列表:模块1、模块2、模块3、模块4;task列表:脚本1、脚本2、脚本3、脚本4、脚本5、脚本6;当前任务的执行时间:每天8:00;阻塞请求操作:轮询操作;任务时序关系:任务1、任务2及任务3依次执行”。

如图9所示,dag2包括任务1、任务2、任务3,任务1、任务3均为流程步骤,任务2为判断步骤,任务1、任务2、任务3之间的依赖关系为:执行任务1,输出任务1的执行结果,对任务1的执行结果执行任务2(判断),输出任务2的执行结果,若任务2的执行结果为满足条件,则对任务2的执行结果执行任务3,输出任务3的执行结果,若任务2的执行结果为不满足条件,则对任务2的执行结果执行任务1,输出任务1的执行结果,直至任务2的执行结果为满足条件;此时,

步骤s501采集到的绘制结果如图9所示;

步骤s502输出的json数据格式包括“dag信息:name(名称:dag2),id(编号:#2),argument(参数:每天8:00执行一次);nodes节点信息:任务1、任务2及任务3;connectors连接信息:执行任务1,输出任务1的执行结果,对任务1的执行结果执行任务2(判断),输出任务2的执行结果,若任务2的执行结果为满足条件,则对任务2的执行结果执行任务3,输出任务3的执行结果,若任务2的执行结果为不满足条件,则对任务2的执行结果执行任务1,输出任务1的执行结果,直至任务2的执行结果为满足条件;

步骤s503输出的封装结果包括“module列表:模块1、模块2、模块3、模块4;task列表:脚本1、脚本2、脚本3、脚本4、脚本5、脚本6;lines:执行任务1,输出任务1的执行结果,对任务1的执行结果执行任务2(判断),输出任务2的执行结果,若任务2的执行结果为满足条件,则对任务2的执行结果执行任务3,输出任务3的执行结果,若任务2的执行结果为不满足条件,则对任务2的执行结果执行任务1,输出任务1的执行结果,直至任务2的执行结果为满足条件;dag包括name名称dag2,id编号#1,argument每天8:00执行一次;

步骤s504输出的任务脚本为“模块列表:模块1、模块2、模块3、模块4;task列表:脚本1、脚本2、脚本3、脚本4、脚本5、脚本6;当前任务的执行时间:每天8:00;阻塞请求操作:轮询操作;任务时序关系:执行任务1,输出任务1的执行结果,对任务1的执行结果执行任务2(判断),输出任务2的执行结果,若任务2的执行结果为满足条件,则对任务2的执行结果执行任务3,输出任务3的执行结果,若任务2的执行结果为不满足条件,则对任务2的执行结果执行任务1,输出任务1的执行结果,直至任务2的执行结果为满足条件”。

如图10所示,dag3包括任务1、任务2、任务3,任务1为选择步骤,任务2、任务3均为流程步骤,任务1、任务2、任务3之间的依赖关系为:执行任务1,输出任务1的执行结果,若任务1的执行结果为执行任务2,则对任务1的执行结果执行任务2,输出任务2的执行结果,若任务1的执行结果为执行任务3,则对任务1的执行结果执行任务3,输出任务3的执行结果;此时,

步骤s501采集到的绘制结果如图10所示;

步骤s502输出的json数据格式包括“dag信息:name(名称:dag3),id(编号:#3),argument(参数:每天8:00执行一次);nodes节点信息:任务1、任务2及任务3;connectors连接信息:执行任务1,输出任务1的执行结果,若任务1的执行结果为执行任务2,则对任务1的执行结果执行任务2,输出任务2的执行结果,若任务1的执行结果为执行任务3,则对任务1的执行结果执行任务3,输出任务3的执行结果;

步骤s503输出的封装结果包括“module列表:模块1、模块2、模块3、模块4;task列表:脚本1、脚本2、脚本3、脚本4、脚本5、脚本6;lines:任务2、任务3均为流程步骤,任务1、任务2、任务3之间的依赖关系为:执行任务1,输出任务1的执行结果,若任务1的执行结果为执行任务2,则对任务1的执行结果执行任务2,输出任务2的执行结果,若任务1的执行结果为执行任务3,则对任务1的执行结果执行任务3,输出任务3的执行结果;dag包括name名称dag3,id编号#3,argument每天8:00执行一次;

步骤s504输出的任务脚本为“模块列表:模块1、模块2、模块3、模块4;task列表:脚本1、脚本2、脚本3、脚本4、脚本5、脚本6;当前任务的执行时间:每天8:00;阻塞请求操作:轮询操作;任务时序关系:任务2、任务3均为流程步骤,任务1、任务2、任务3之间的依赖关系为:执行任务1,输出任务1的执行结果,若任务1的执行结果为执行任务2,则对任务1的执行结果执行任务2,输出任务2的执行结果,若任务1的执行结果为执行任务3,则对任务1的执行结果执行任务3,输出任务3的执行结果”。

综上所述,本发明实施例所提出的任务脚本生成方法,该方法通过提供绘制界面,采集在绘制界面进行有向无环图绘制的绘制结果,根据绘制结果,生成有向无环图的调度任务参数,解析调度任务参数,并封装生成封装结果,采用与目标任务调度系统匹配的模板定义软件,对封装结果进行定义,生成有向无环图对应的任务脚本;在整个过程中,用户仅需在绘制界面内,根据需要实现的有向无环图进行简单的绘制之后,任务脚本生成装置即可生成有向无环图对应的任务脚本,用户操作简单,不需要进行脚本编译,降低了对用户使用调度系统的要求,用户仅需要具备基础的绘图能力即可,解决了现有任务脚本需要用户手工编译导致用户难以使用调度系统的问题,增强了用户的使用体验。

如图6所示,提出本发明任务脚本生成方法第二实施例,在本实施例中,任务脚本生成方法包括以下步骤:

s601-s604:与s501-s504相同,不再赘述;

s605:根据有向无环图的调度参数,调度任务脚本;

在实际应用中,任务调度装置根据各dag的任务参数,如在每天8:00执行、任务处理的对象为大数据1、大数据2等,在每天8:00,触发对大数据1、大数据2等数据执行dag;

s606:执行任务脚本,并展示执行结果;

如图11所示,展示界面包括的执行结果包括:任务1的执行结果、任务2的执行结果、任务3的执行结果。

本实施例提出了一种任务调度方法,该方法通过提供绘制界面,采集在绘制界面进行有向无环图绘制的绘制结果,根据绘制结果,生成有向无环图的调度任务参数,解析调度任务参数,并封装生成封装结果,采用与目标任务调度系统匹配的模板定义软件,对封装结果进行定义,生成有向无环图对应的任务脚本;在整个过程中,用户仅需在绘制界面内,根据需要实现的有向无环图进行简单的绘制之后,任务脚本生成装置即可生成有向无环图对应的任务脚本,用户操作简单,不需要进行脚本编译,降低了对用户使用调度系统的要求,用户仅需要具备基础的绘图能力即可,解决了现有任务脚本需要用户手工编译导致用户难以使用调度系统的问题,增强了用户的使用体验。

本发明实施例所提出的一种任务脚本生成装置及方法、任务调度系统及方法,该装置通过提供绘制界面,采集在绘制界面进行有向无环图绘制的绘制结果,根据绘制结果,生成有向无环图的调度任务参数,解析调度任务参数,并封装生成封装结果,采用与目标任务调度系统匹配的模板定义软件,对封装结果进行定义,生成有向无环图对应的任务脚本;在整个过程中,用户仅需在绘制界面内,根据需要实现的有向无环图进行简单的绘制之后,任务脚本生成装置即可生成有向无环图对应的任务脚本,用户操作简单,不需要进行脚本编译,降低了对用户使用调度系统的要求,用户仅需要具备基础的绘图能力即可,解决了现有任务脚本需要用户手工编译导致用户难以使用调度系统的问题,增强了用户的使用体验。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1