CN112363814A - 任务调度方法、装置、计算机设备及存储介质 - Google Patents

任务调度方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN112363814A
CN112363814A CN202011314173.2A CN202011314173A CN112363814A CN 112363814 A CN112363814 A CN 112363814A CN 202011314173 A CN202011314173 A CN 202011314173A CN 112363814 A CN112363814 A CN 112363814A
Authority
CN
China
Prior art keywords
task
reset
script
association
tree
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
CN202011314173.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.)
Ping An Property and Casualty Insurance Company of China Ltd
Original Assignee
Ping An Property and Casualty Insurance Company of China 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 Ping An Property and Casualty Insurance Company of China Ltd filed Critical Ping An Property and Casualty Insurance Company of China Ltd
Priority to CN202011314173.2A priority Critical patent/CN112363814A/zh
Publication of CN112363814A publication Critical patent/CN112363814A/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24564Applying rules; Deductive queries
    • G06F16/24566Recursive queries
    • 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/485Task life-cycle, e.g. stopping, restarting, resuming execution

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请实施例属于研发管理领域,涉及一种任务调度方法,包括接收任务重置指令,所述任务重置指令中包括待处理任务以及任务重置信息;在预先建立的任务关联表中对所述待处理任务进行递归查询,得到任务关联树;获取所述任务关联树中各任务的任务脚本;对获取到的任务脚本进行脚本解析,并根据所述任务重置信息从所述任务关联树中确定待重置任务;下发并执行所述待重置任务。本申请还提供一种任务调度装置、计算机设备及存储介质。此外,本申请还涉及区块链技术,任务关联表可存储于区块链中。本申请提高了任务调度的准确性。

Description

任务调度方法、装置、计算机设备及存储介质
技术领域
本申请涉及研发管理技术领域,尤其涉及一种任务调度方法、装置、计算机设备及存储介质。
背景技术
生产活动可以以任务为单位进行分割,随着计算机技术的发展,生产活动也越来越多地采用计算机进行任务控制。例如,在大数据项目、商业智能项目、数据挖掘项目和财务结算等项目中,都可以根据实际场景搭建任务管理平台,由任务管理平台进行任务的关系控制和调度执行,包括任务的部署移交、部署上线、定时执行和重执行等。
然而,传统的任务管理平台的控制和调度局限于单个任务。当某个任务出现修改或者错误时,与这个任务相关联的下游任务都需要重置,即重新下发。在修改或出错的任务较多时,会产生大量的任务下发,容易出现关联任务的错误或遗漏,导致任务调度的准确性较低。
发明内容
本申请实施例的目的在于提出一种任务调度方法、装置、计算机设备及存储介质,以解决任务调度准确性较低的问题。
为了解决上述技术问题,本申请实施例提供一种任务调度方法,采用了如下所述的技术方案:
接收任务重置指令,所述任务重置指令中包括待处理任务以及任务重置信息;
在预先建立的任务关联表中对所述待处理任务进行递归查询,得到任务关联树;
获取所述任务关联树中各任务的任务脚本;
对获取到的任务脚本进行脚本解析,并根据所述任务重置信息从所述任务关联树中确定待重置任务;
下发并执行所述待重置任务。
进一步的,在所述在预先建立的任务关联表中对所述待处理任务进行递归查询,得到任务关联树的步骤之前,还包括:
获取部署在数据管理平台中的任务脚本;
从获取的任务脚本中提取任务关联信息;
识别所述任务关联信息中的第一任务和第二任务,其中,所述第一任务为第二任务的上游任务;
根据确定的第一任务和第二任务得到任务关联表。
进一步的,所述对获取到的任务脚本进行脚本解析,并根据所述任务重置信息从所述任务关联树中确定待重置任务的步骤包括:
以所述任务关联树中的根节点作为初始节点,获取所述初始节点的关联任务对;
对于每个关联任务对,对关联任务对中任务的任务脚本进行语义识别,以确定所述任务脚本中的取数语句;
根据所述取数语句和所述任务重置信息确定所述关联任务对中的下游任务是否为待重置任务;
当所述下游任务为待重置任务时,以所述下游任务作为初始节点继续查找待重置任务,直至对所述任务关联树中的关联任务对查找完毕,得到所述任务关联树中的待重置任务。
进一步的,所述对于每个关联任务对,对关联任务对中任务的任务脚本进行语义识别,以确定所述任务脚本中的取数语句的步骤包括:
对于每个关联任务对,提取关联任务对中下游任务的任务脚本;
对所述任务脚本进行分词;
根据预设的语义库对分词后的任务脚本进行语义识别,以从所述任务脚本中确定取数关键字段;
根据确定的取数关键字段确定所述任务脚本中的取数语句。
进一步的,所述对获取到的任务脚本进行脚本解析,并根据所述任务重置信息从所述任务关联树中确定待重置任务的步骤之后,还包括:
将所述任务关联树和所述待重置任务发送至以任务管理员账号登录的预设终端;
接收所述预设终端根据所述任务关联树和所述待重置任务返回的任务调整指令;
根据所述任务调整指令修改所述待重置任务。
进一步的,所述下发并执行所述待重置任务的步骤包括:
对所述任务关联树中的各待重置任务进行广度遍历,并按照遍历顺序将所述各待重置任务添加到执行队列中;
按照所述执行队列中的任务排列顺序下发并执行所述各待重置任务。
进一步的,所述按照所述执行队列中的任务排列顺序下发并执行所述各待重置任务的步骤包括:
对于所述执行队列中的每个待重置任务,当达到待重置任务的触发条件时,对所述待重置任务的上游任务进行执行校验,其中,所述执行校验包括数据量校验和数据预警校验;
当所述上游任务通过所述执行校验时,下发并执行所述待重置任务。
为了解决上述技术问题,本申请实施例还提供一种任务调度装置,采用了如下所述的技术方案:
指令接收模块,用于接收任务重置指令,所述任务重置指令中包括待处理任务以及任务重置信息;
任务查询模块,用于在预先建立的任务关联表中对所述待处理任务进行递归查询,得到任务关联树;
脚本获取模块,用于获取所述任务关联树中各任务的任务脚本;
脚本解析模块,用于对获取到的任务脚本进行脚本解析,并根据所述任务重置信息从所述任务关联树中确定待重置任务;
任务下发模块,用于下发并执行所述待重置任务。
为了解决上述技术问题,本申请实施例还提供一种计算机设备,采用了如下所述的技术方案:
接收任务重置指令,所述任务重置指令中包括待处理任务以及任务重置信息;
在预先建立的任务关联表中对所述待处理任务进行递归查询,得到任务关联树;
获取所述任务关联树中各任务的任务脚本;
对获取到的任务脚本进行脚本解析,并根据所述任务重置信息从所述任务关联树中确定待重置任务;
下发并执行所述待重置任务。
为了解决上述技术问题,本申请实施例还提供一种计算机可读存储介质,采用了如下所述的技术方案:
接收任务重置指令,所述任务重置指令中包括待处理任务以及任务重置信息;
在预先建立的任务关联表中对所述待处理任务进行递归查询,得到任务关联树;
获取所述任务关联树中各任务的任务脚本;
对获取到的任务脚本进行脚本解析,并根据所述任务重置信息从所述任务关联树中确定待重置任务;
下发并执行所述待重置任务。
与现有技术相比,本申请实施例主要有以下有益效果:接收任务重置指令后,从任务重置指令中获取需要重置的待处理任务以及对应的任务重置信息;获取预先建立的任务关联表,在任务关联表中对待处理任务进行递归查询,可以初步查询到与待处理任务相关联的任务,得到任务关联树;再获取任务关联树中各任务的任务脚本,任务脚本用于执行任务,解析任务脚本,并根据任务重置信息可以准确地确定受到影响的任务,将确定的任务作为待重置任务并重新下发,自动实现任务调度,提高了任务调度的准确性。
附图说明
为了更清楚地说明本申请中的方案,下面将对本申请实施例描述中所需要使用的附图作一个简单介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请可以应用于其中的示例性***架构图;
图2是根据本申请的任务调度方法的一个实施例的流程图;
图3是根据本申请的任务调度装置的一个实施例的结构示意图;
图4是根据本申请的计算机设备的一个实施例的结构示意图。
具体实施方式
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本申请的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
为了使本技术领域的人员更好地理解本申请方案,下面将结合附图,对本申请实施例中的技术方案进行清楚、完整地描述。
如图1所示,***架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如网页浏览器应用、购物类应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、MP3播放器(Moving PictureExpertsGroup Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(MovingPictureExperts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对终端设备101、102、103上显示的页面提供支持的后台服务器。
需要说明的是,本申请实施例所提供的任务调度方法一般由服务器执行,相应地,任务调度装置一般设置于服务器中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
继续参考图2,示出了根据本申请的任务调度方法的一个实施例的流程图。所述的任务调度方法,包括以下步骤:
步骤S201,接收任务重置指令,任务重置指令中包括待处理任务以及任务重置信息。
在本实施例中,任务调度方法运行于其上的电子设备(例如图1所示的服务器)可以通过有线连接方式或者无线连接方式与终端进行通信。需要指出的是,上述无线连接方式可以包括但不限于3G/4G连接、WiFi连接、蓝牙连接、WiMAX连接、Zigbee连接、UWB(ultrawideband)连接、以及其他现在已知或将来开发的无线连接方式。
具体地,服务器上部署有任务管理平台,任务管理平台配置有平台管理页面,平台用户可以在平台管理页面进行任务控制。当某个任务出现修改或者错误时,可以由平台用户输入修改或错误的任务,即待处理任务,并输入该任务中修改或出错的信息,即任务重置信息,终端根据待处理任务和任务重置信息生成任务重置指令,并发送至服务器。任务管理平台也可以自动对任务进行检测,当检测到某个任务出现修改或者错误时,自动生成任务重置指令。
步骤S202,在预先建立的任务关联表中对待处理任务进行递归查询,得到任务关联树。
具体地,服务器中存储有预先建立的任务关联表,任务关联表记录了任务之间的关联信息。服务器基于递归算法,在任务关联表中对待处理任务进行递归查询。
具体地,服务器查询与待处理任务关联的下游任务,再以下游任务为主体,查询关联于下游任务的任务,直至查询到的任务再无下游任务。所有查询到的任务组成任务关联树。
服务器可以将任务关联树发送至平台管理页面进行展示,任务关联树以树结构的形式展示任务之间的关联。任务重置指令中的待处理任务为任务关联树的根节点。
步骤S203,获取任务关联树中各任务的任务脚本。
具体地,任务对应有任务脚本,任务的执行是通过执行任务对应的任务脚本实现。服务器获取任务关联树中各任务的任务名,在任务脚本库中根据任务名查询任务脚本,得到任务关联树中各任务的任务脚本。其中,任务脚本库中存储有任务管理平台中各任务的任务脚本。
步骤S204,对获取到的任务脚本进行脚本解析,并根据任务重置信息从任务关联树中确定待重置任务。
其中,待重置任务可以是需要重新下发并执行的任务。
具体地,两个任务互相关联时,上游任务的修改或错误不一定会影响到下游任务。举例说明,上游任务中某个字段需要修改计算规则,但是下游任务并不利用该字段进行计算,此时,下游任务并没有真正受到影响。因此,需要从任务关联树中确定真正受到待处理任务影响的任务。
任务的执行是通过执行任务脚本实现的,任务之间的任何关联都记录在脚本中,因此可以对任务脚本进行解析,以确定下游任务是否受到上游任务重置的影响,从而在任务关联树中确定本次任务重置中真正受到影响的任务。
举例说明,假设任务A出错,需要重新下发任务A以及与任务A相关联的任务时,查询到任务B和任务C关联于任务A,任务D同时关联于任务B和任务C。则任务关联树中同时包括任务A、任务B、任务C和任务D。
假设任务A中字段A1出现错误,通过脚本解析,确定任务B与字段A1无关联,则任务B未受到实质影响。任务C中字段C1与字段A1具有计算关联关系,且任务D中的字段D1与字段C1具有计算关联关系,则任务C和任务D均受到任务重置信息的实质影响,任务B可以从任务关联树中移除,任务A、任务C和任务D将作为待重置任务保留在任务关联树中。
步骤S205,下发并执行待重置任务。
具体地,确定任务关联树中的待重置任务后,将各待重置任务添加到执行队列中,并执行该任务队列中的各任务脚本,以便实现任务的重新下发与重新执行。
在一个实施例中,服务器可以通过任务管理平台管理多个任务执行节点,每个任务执行节点可以执行不同类型的任务。在下发某个待重置任务时,查询可以执行该待重置任务的任务执行节点,并获取各任务执行节点的负载信息,根据负载信息确定负载最低的任务执行节点,指示负载最低的任务执行节点执行该待重置任务,以便均衡各任务执行节点,避免某个任务执行节点负载过高而出现运行错误。其中,负载信息可以是任务执行节点的内存利用率;那么,内存利用率最低的任务执行节点为负载最低的任务执行节点。
本实施例中,接收任务重置指令后,从任务重置指令中获取需要重置的待处理任务以及对应的任务重置信息;获取预先建立的任务关联表,在任务关联表中对待处理任务进行递归查询,可以初步查询到与待处理任务相关联的任务,得到任务关联树;再获取任务关联树中各任务的任务脚本,任务脚本用于执行任务,解析任务脚本,并根据任务重置信息可以准确地确定受到影响的任务,将确定的任务作为待重置任务并重新下发,自动实现任务调度,提高了任务调度的准确性。
进一步的,上述步骤S202之前,还可以包括:获取部署在数据管理平台中的任务脚本;从获取的任务脚本中提取任务关联信息;识别任务关联信息中的第一任务和第二任务,其中,第一任务为第二任务的上游任务;根据确定的第一任务和第二任务得到任务关联表。
具体地,在任务的开发部署阶段,开发人员编写任务脚本,任务脚本中有任务关联信息,任务关联信息记录了任务之间的依赖关系。其中,任务关联信息可以由开发人员写入。举例说明,在任务B的任务关联信息中记录了任务B关联于任务A,则任务B依赖于任务A,任务A是任务B的上游任务,任务B是任务A的下游任务。服务器获取到任务关联信息后,将任务A确定为第一任务,将任务B确定为第二任务。可以理解,对于某一个任务,该任务可以依赖于一个任务,也可以依赖于多个任务;该任务可以被一个任务依赖,也可以被多个任务依赖。通过读取全部任务脚本的任务关联信息,即可自动得到任务关联表。
任务关联表也可以以树结构进行存储。可以理解,任务关联树是从任务关联表中得到的子结构。
本实施例中,从任务脚本中提取任务关联信息,即可得到任务之间的关联与依赖关系,由此可以准确快速地建立任务关联表。
进一步的,上述步骤S204可以包括:以任务关联树中的根节点作为初始节点,获取初始节点的关联任务对;对于每个关联任务对,对关联任务对中任务的任务脚本进行语义识别,以确定任务脚本中的取数语句;根据取数语句和任务重置信息确定关联任务对中的下游任务是否为待重置任务;当下游任务为待重置任务时,以下游任务作为初始节点继续查找待重置任务,直至对任务关联树中的关联任务对查找完毕,得到任务关联树中的待重置任务。
具体地,服务器从任务关联树的根节点开始,查找任务关联树中真正受到影响的任务。互相关联的两个任务组成关联任务对,以根节点作为初始节点,获取初始节点的关联任务对。当初始节点存在多个关联任务对时,逐个对关联任务对进行处理。
服务器获取关联任务对中任务的任务脚本。任务脚本中存在取数语句,取数语句具有预设的表达形式,基于脚本中代码的表达形式可以查找到哪些代码表达取数语义,由此可以确定取数语句。
任务重置信息可以表明待处理任务中哪些字段出错或者进行了修改,结合任务重置信息和取数语句,可以确定下游任务是否真正受到任务重置信息的影响。
当下游任务受到任务重置信息的影响时,将下游任务标记为待重置任务。将下游任务作为新的初始节点继续查找待重置任务,直至任务关联树中所有的关联任务对都被排查完毕,即可得到任务关联树中的待重置任务。
得到新的初始节点后,可以根据任务重置信息、初始节点中受到影响的字段和新的下游任务的取数语句查找待重置任务。例如,任务B中的字段B1计算时要用到待处理任务A中的字段A1,根据任务重置信息,字段A1出错,因此可知任务B中的字段B1需要重新计算,任务B受到任务重置信息的影响。任务B具有下游任务C,在以任务B作为初始节点查找待重置任务时,可以根据任务重置信息、字段B1和任务C的取数语句判断任务C是否为待重置任务。
本实施例中,通过对任务脚本进行语义识别,确定任务脚本中的取数语句,取数语句可以确定不同任务之间的数据关联,由此对任务关联树中的关联任务对进行逐个检查,可以准确地查找到任务关联树中的待重置任务。
进一步的,上述对于每个关联任务对,对关联任务对中任务的任务脚本进行语义识别,以确定任务脚本中的取数语句的步骤可以包括:对于每个关联任务对,提取关联任务对中下游任务的任务脚本;对任务脚本进行分词;根据预设的语义库对分词后的任务脚本进行语义识别,以从任务脚本中确定取数关键字段;根据确定的取数关键字段确定任务脚本中的取数语句。
具体地,对于每个关联任务对,获取关联任务对中下游任务的任务脚本。对任务脚本进行分词,获取预设的语义库,语义库中定义了脚本中可能出现的关键字段的含义。
在语义库中查询分词后得到的各字段,从而确定与取数相关的取数关键字段,识别到取数关键字段后,即可根据脚本中的代码结构确定取数语句。
举例说明,取数语句为select A1 from form_A where A1>1,其中from为取数关键字段,where为结束字段,select为引用字段,当三种字段出现在同一条语句中时,即可表明该语句为取数语句。
本实施例中,对任务脚本分词后进行语义识别,可以确定任务脚本中的取数关键字段,即可准确地从任务脚本中查找到取数语句。
进一步的,上述步骤S204之后,还可以包括:将任务关联树和待重置任务发送至以任务管理员账号登录的预设终端;接收预设终端根据任务关联树和待重置任务返回的任务调整指令;根据任务调整指令修改待重置任务。
具体地,服务器可以自动从任务关联树中查找待重置任务,也可以将任务关联树和待重置任务发送至任务管理员账号登录的预设终端,由任务管理员在预设终端查看任务关联树和待重置任务。任务管理员可以通过预设终端对待重置任务进行调整,例如根据实际情况增加或者减少待重置任务,而不必完全依赖于服务器筛选到的待重置任务。
任务管理员对待重置任务进行调整后,预设终端触发任务调整指令并发送至服务器。服务器接收到任务重置指令后,根据任务重置指令对待重置任务进行调整或修改。
任务管理员也可以不对待重置任务进行调整,通过预设终端发送确认指令后,指示服务器下发并执行待重置任务。
本实施例中,将任务关联树和待重置任务发送至任务管理员账号登录的预设终端,可以由人工对待重置任务进行调整,提高了任务调度的灵活性。
进一步的,上述步骤S205可以包括:对任务关联树中的各待重置任务进行广度遍历,并按照遍历顺序将各待重置任务添加到执行队列中;按照执行队列中的任务排列顺序下发并执行各待重置任务。
具体地,待重置任务存在于任务关联树中,服务器可以对任务关联树中的各待重置任务进行广度遍历,按照遍历顺序将各待重置任务的任务脚本加入执行队列,并按照执行队列中各待重置任务的任务排列顺序下发并执行各任务脚本。
在广度遍历中,越先被遍历到的待重置任务,被其他待重置任务依赖的程度越高,即,被更多的待重置任务依赖。而先被遍历到的待重置任务可以先执行,使得其下游任务可以在该待重置任务的基础上执行,保证了各待重置任务的有序执行。
本实施例中,对任务关联树进行广度遍历,并按照遍历顺序将待重置任务添加到执行队列中,执行队列中的任务排列顺序与任务之间的关联关系相符,保证了各待重置任务的有序执行。
进一步的,上述按照执行队列中的任务排列顺序下发并执行各待重置任务的步骤可以包括:对于执行队列中的每个待重置任务,当达到待重置任务的触发条件时,对待重置任务的上游任务进行执行校验,其中,执行校验包括数据量校验和数据预警校验;当上游任务通过执行校验时,下发并执行待重置任务。
具体地,对于执行队列中的每个待重置任务,当到达待重置任务的触发条件时,先对待重置任务的上游任务进行执行校验。待重置任务的执行条件可以是,该待重置任务的上游任务执行完毕,或者到达任务脚本中的任务执行时间。
在一个实施例中,可以根据各待重置任务的关联关系生成有向无环图,通过有向无环图对待重置任务的执行进行调度和控制。
为了保证任务执行的准确性,可以对该待重置任务的上游任务进行执行校验。执行校验包括数据量校验和数据预警校验。当任务无误、任务对应的数据表中各字段的维度都约束好的情况下,任务所对应的数据表的数据量是可确定的,可以对上游任务的数据表的数据量进行检测,如果上游任务数据表的数据量在预设的数据量区间内,则数据量校验通过。任务管理平台中还可以提供数据预警功能,可以调用数据预警接口,对上游任务数据表中的数据进行预警,校验上游任务数据表中的数据数值是否在预设区间内。当上游任务同时通过数据量校验和数据预警校验时,下发并执行该待重置任务。
本实施例中,通过对待重置任务的上游任务进行数据量校验和数据预警校验,可以判定上游任务是否执行正确,从而保证待重置任务的正确执行。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等非易失性存储介质,或随机存储记忆体(Random Access Memory,RAM)等。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
进一步参考图3,作为对上述图2所示方法的实现,本申请提供了一种任务调度装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图3所示,本实施例所述的任务调度装置300包括:指令接收模块301、任务查询模块302、脚本获取模块303、脚本解析模块304以及任务下发模块305,其中:
指令接收模块301,用于接收任务重置指令,任务重置指令中包括待处理任务以及任务重置信息。
任务查询模块302,用于在预先建立的任务关联表中对待处理任务进行递归查询,得到任务关联树。
脚本获取模块303,用于获取任务关联树中各任务的任务脚本。
脚本解析模块304,用于对获取到的任务脚本进行脚本解析,并根据任务重置信息从任务关联树中确定待重置任务。
任务下发模块305,用于下发并执行待重置任务。
本实施例中,接收任务重置指令后,从任务重置指令中获取需要重置的待处理任务以及对应的任务重置信息;获取预先建立的任务关联表,在任务关联表中对待处理任务进行递归查询,可以初步查询到与待处理任务相关联的任务,得到任务关联树;再获取任务关联树中各任务的任务脚本,任务脚本用于执行任务,解析任务脚本,并根据任务重置信息可以准确地确定受到影响的任务,将确定的任务作为待重置任务并重新下发,自动实现任务调度,提高了任务调度的准确性。
在本实施例的一些可选的实现方式中,任务调度装置300还包括:获取模块、信息获取模块、任务识别模块以及关联表确定模块,其中:
获取模块,用于获取部署在数据管理平台中的任务脚本。
信息获取模块,用于从获取的任务脚本中提取任务关联信息。
任务识别模块,用于识别任务关联信息中的第一任务和第二任务,其中,第一任务为第二任务的上游任务。
关联表确定模块,用于根据确定的第一任务和第二任务得到任务关联表。
本实施例中,从任务脚本中提取任务关联信息,即可得到任务之间的关联与依赖关系,由此可以准确快速地建立任务关联表。
在本实施例的一些可选的实现方式中,脚本解析模块304可以包括:任务对获取子模块、语义识别子模块、任务确定子模块以及任务查找子模块,其中:
任务对获取子模块,用于以任务关联树中的根节点作为初始节点,获取初始节点的关联任务对。
语义识别子模块,用于对于每个关联任务对,对关联任务对中任务的任务脚本进行语义识别,以确定任务脚本中的取数语句。
任务确定子模块,用于根据取数语句和任务重置信息确定关联任务对中的下游任务是否为待重置任务。
任务查找子模块,用于当下游任务为待重置任务时,以下游任务作为初始节点继续查找待重置任务,直至对任务关联树中的关联任务对查找完毕,得到任务关联树中的待重置任务。
本实施例中,通过对任务脚本进行语义识别,确定任务脚本中的取数语句,取数语句可以确定不同任务之间的数据关联,由此对任务关联树中的关联任务对进行逐个检查,可以准确地查找到任务关联树中的待重置任务。
在本实施例的一些可选的实现方式中,语义识别子模块可以包括:脚本提取单元、脚本分词单元、语义识别单元以及语句确定单元,其中:
脚本提取单元,用于对于每个关联任务对,提取关联任务对中下游任务的任务脚本。
脚本分词单元,用于对任务脚本进行分词。
语义识别单元,用于根据预设的语义库对分词后的任务脚本进行语义识别,以从任务脚本中确定取数关键字段。
语句确定单元,用于根据确定的取数关键字段确定任务脚本中的取数语句。
本实施例中,对任务脚本分词后进行语义识别,可以确定任务脚本中的取数关键字段,即可准确地从任务脚本中查找到取数语句。
在本实施例的一些可选的实现方式中,任务调度装置300还包括:发送模块、指令接收模块以及任务修改模块,其中:
发送模块,用于将任务关联树和待重置任务发送至以任务管理员账号登录的预设终端。
指令接收模块,用于接收预设终端根据任务关联树和待重置任务返回的任务调整指令。
任务修改模块,用于根据任务调整指令修改待重置任务。
本实施例中,将任务关联树和待重置任务发送至任务管理员账号登录的预设终端,可以由人工对待重置任务进行调整,提高了任务调度的灵活性。
在本实施例的一些可选的实现方式中,任务下发模块305可以包括:任务遍历子模块以及任务执行子模块,其中:
任务遍历子模块,用于对任务关联树中的各待重置任务进行广度遍历,并按照遍历顺序将各待重置任务添加到执行队列中。
任务执行子模块,用于按照执行队列中的任务排列顺序下发并执行各待重置任务。
本实施例中,对任务关联树进行广度遍历,并按照遍历顺序将待重置任务添加到执行队列中,执行队列中的任务排列顺序与任务之间的关联关系相符,保证了各待重置任务的有序执行。
在本实施例的一些可选的实现方式中,任务执行子模块可以包括:任务校验单元以及任务下发单元,其中:
任务校验单元,用于对于执行队列中的每个待重置任务,当达到待重置任务的触发条件时,对待重置任务的上游任务进行执行校验,其中,执行校验包括数据量校验和数据预警校验。
任务下发单元,用于当上游任务通过执行校验时,下发并执行待重置任务。
本实施例中,通过对待重置任务的上游任务进行数据量校验和数据预警校验,可以判定上游任务是否执行正确,从而保证待重置任务的正确执行。
为解决上述技术问题,本申请实施例还提供计算机设备。具体请参阅图4,图4为本实施例计算机设备基本结构框图。
所述计算机设备4包括通过***总线相互通信连接存储器41、处理器42、网络接口43。需要指出的是,图中仅示出了具有组件41-43的计算机设备4,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable GateArray,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。
所述计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机设备可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。
所述存储器41至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器41可以是所述计算机设备4的内部存储单元,例如该计算机设备4的硬盘或内存。在另一些实施例中,所述存储器41也可以是所述计算机设备4的外部存储设备,例如该计算机设备4上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(FlashCard)等。当然,所述存储器41还可以既包括所述计算机设备4的内部存储单元也包括其外部存储设备。本实施例中,所述存储器41通常用于存储安装于所述计算机设备4的操作***和各类应用软件,例如任务调度方法的计算机可读指令等。此外,所述存储器41还可以用于暂时地存储已经输出或者将要输出的各类数据。
所述处理器42在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器42通常用于控制所述计算机设备4的总体操作。本实施例中,所述处理器42用于运行所述存储器41中存储的计算机可读指令或者处理数据,例如运行所述任务调度方法的计算机可读指令。
所述网络接口43可包括无线网络接口或有线网络接口,该网络接口43通常用于在所述计算机设备4与其他电子设备之间建立通信连接。
本实施例中提供的计算机设备可以执行上述任务调度方法的步骤。此处任务调度方法的步骤可以是上述各个实施例的任务调度方法中的步骤。
本实施例中,接收任务重置指令后,从任务重置指令中获取需要重置的待处理任务以及对应的任务重置信息;获取预先建立的任务关联表,在任务关联表中对待处理任务进行递归查询,可以初步查询到与待处理任务相关联的任务,得到任务关联树;再获取任务关联树中各任务的任务脚本,任务脚本用于执行任务,解析任务脚本,并根据任务重置信息可以准确地确定受到影响的任务,将确定的任务作为待重置任务并重新下发,自动实现任务调度,提高了任务调度的准确性。
本申请还提供了另一种实施方式,即提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,所述计算机可读指令可被至少一个处理器执行,以使所述至少一个处理器执行如上述的任务调度方法的步骤。
本实施例中,接收任务重置指令后,从任务重置指令中获取需要重置的待处理任务以及对应的任务重置信息;获取预先建立的任务关联表,在任务关联表中对待处理任务进行递归查询,可以初步查询到与待处理任务相关联的任务,得到任务关联树;再获取任务关联树中各任务的任务脚本,任务脚本用于执行任务,解析任务脚本,并根据任务重置信息可以准确地确定受到影响的任务,将确定的任务作为待重置任务并重新下发,自动实现任务调度,提高了任务调度的准确性。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
显然,以上所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例,附图中给出了本申请的较佳实施例,但并不限制本申请的专利范围。本申请可以以许多不同的形式来实现,相反地,提供这些实施例的目的是使对本申请的公开内容的理解更加透彻全面。尽管参照前述实施例对本申请进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利用本申请说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本申请专利保护范围之内。

Claims (10)

1.一种任务调度方法,其特征在于,包括下述步骤:
接收任务重置指令,所述任务重置指令中包括待处理任务以及任务重置信息;
在预先建立的任务关联表中对所述待处理任务进行递归查询,得到任务关联树;
获取所述任务关联树中各任务的任务脚本;
对获取到的任务脚本进行脚本解析,并根据所述任务重置信息从所述任务关联树中确定待重置任务;
下发并执行所述待重置任务。
2.根据权利要求1所述的任务调度方法,其特征在于,在所述在预先建立的任务关联表中对所述待处理任务进行递归查询,得到任务关联树的步骤之前,还包括:
获取部署在数据管理平台中的任务脚本;
从获取的任务脚本中提取任务关联信息;
识别所述任务关联信息中的第一任务和第二任务,其中,所述第一任务为第二任务的上游任务;
根据确定的第一任务和第二任务得到任务关联表。
3.根据权利要求1所述的任务调度方法,其特征在于,所述对获取到的任务脚本进行脚本解析,并根据所述任务重置信息从所述任务关联树中确定待重置任务的步骤包括:
以所述任务关联树中的根节点作为初始节点,获取所述初始节点的关联任务对;
对于每个关联任务对,对关联任务对中任务的任务脚本进行语义识别,以确定所述任务脚本中的取数语句;
根据所述取数语句和所述任务重置信息确定所述关联任务对中的下游任务是否为待重置任务;
当所述下游任务为待重置任务时,以所述下游任务作为初始节点继续查找待重置任务,直至对所述任务关联树中的关联任务对查找完毕,得到所述任务关联树中的待重置任务。
4.根据权利要求3所述的任务调度方法,其特征在于,所述对于每个关联任务对,对关联任务对中任务的任务脚本进行语义识别,以确定所述任务脚本中的取数语句的步骤包括:
对于每个关联任务对,提取关联任务对中下游任务的任务脚本;
对所述任务脚本进行分词;
根据预设的语义库对分词后的任务脚本进行语义识别,以从所述任务脚本中确定取数关键字段;
根据确定的取数关键字段确定所述任务脚本中的取数语句。
5.根据权利要求1所述的任务调度方法,其特征在于,所述对获取到的任务脚本进行脚本解析,并根据所述任务重置信息从所述任务关联树中确定待重置任务的步骤之后,还包括:
将所述任务关联树和所述待重置任务发送至以任务管理员账号登录的预设终端;
接收所述预设终端根据所述任务关联树和所述待重置任务返回的任务调整指令;
根据所述任务调整指令修改所述待重置任务。
6.根据权利要求1所述的任务调度方法,其特征在于,所述下发并执行所述待重置任务的步骤包括:
对所述任务关联树中的各待重置任务进行广度遍历,并按照遍历顺序将所述各待重置任务添加到执行队列中;
按照所述执行队列中的任务排列顺序下发并执行所述各待重置任务。
7.根据权利要求6所述的任务调度方法,其特征在于,所述按照所述执行队列中的任务排列顺序下发并执行所述各待重置任务的步骤包括:
对于所述执行队列中的每个待重置任务,当达到待重置任务的触发条件时,对所述待重置任务的上游任务进行执行校验,其中,所述执行校验包括数据量校验和数据预警校验;
当所述上游任务通过所述执行校验时,下发并执行所述待重置任务。
8.一种任务调度装置,其特征在于,包括:
指令接收模块,用于接收任务重置指令,所述任务重置指令中包括待处理任务以及任务重置信息;
任务查询模块,用于在预先建立的任务关联表中对所述待处理任务进行递归查询,得到任务关联树;
脚本获取模块,用于获取所述任务关联树中各任务的任务脚本;
脚本解析模块,用于对获取到的任务脚本进行脚本解析,并根据所述任务重置信息从所述任务关联树中确定待重置任务;
任务下发模块,用于下发并执行所述待重置任务。
9.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令时实现如权利要求1至7中任一项所述的任务调度方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如权利要求1至7中任一项所述的任务调度方法的步骤。
CN202011314173.2A 2020-11-20 2020-11-20 任务调度方法、装置、计算机设备及存储介质 Pending CN112363814A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011314173.2A CN112363814A (zh) 2020-11-20 2020-11-20 任务调度方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011314173.2A CN112363814A (zh) 2020-11-20 2020-11-20 任务调度方法、装置、计算机设备及存储介质

Publications (1)

Publication Number Publication Date
CN112363814A true CN112363814A (zh) 2021-02-12

Family

ID=74533763

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011314173.2A Pending CN112363814A (zh) 2020-11-20 2020-11-20 任务调度方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN112363814A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114518948A (zh) * 2022-02-21 2022-05-20 南京航空航天大学 面向大规模微服务应用的动态感知重调度的方法及应用
CN114615170A (zh) * 2022-01-20 2022-06-10 北京华耀科技有限公司 报文处理方法、设备及计算机存储介质

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114615170A (zh) * 2022-01-20 2022-06-10 北京华耀科技有限公司 报文处理方法、设备及计算机存储介质
CN114615170B (zh) * 2022-01-20 2023-08-04 北京华耀科技有限公司 报文处理方法、设备及计算机存储介质
CN114518948A (zh) * 2022-02-21 2022-05-20 南京航空航天大学 面向大规模微服务应用的动态感知重调度的方法及应用

Similar Documents

Publication Publication Date Title
CN107506256B (zh) 一种崩溃数据监控的方法和装置
CN112181835B (zh) 自动化测试方法、装置、计算机设备及存储介质
CN112394908A (zh) 埋点页面自动生成的方法、装置、计算机设备及存储介质
CN111553556A (zh) 业务数据分析方法、装置、计算机设备及存储介质
CN112363814A (zh) 任务调度方法、装置、计算机设备及存储介质
CN115455058A (zh) 缓存数据的处理方法、装置、计算机设备及存储介质
CN112860662B (zh) 自动化生产数据血缘关系建立方法、装置、计算机设备及存储介质
CN111221690B (zh) 针对集成电路设计的模型确定方法、装置及终端
CN117033249A (zh) 一种测试用例生成方法、装置、计算机设备及存储介质
CN116450723A (zh) 数据提取方法、装置、计算机设备及存储介质
CN114968725A (zh) 任务依赖关系校正方法、装置、计算机设备及存储介质
CN114637672A (zh) 自动化数据测试方法、装置、计算机设备及存储介质
CN110851346B (zh) 查询语句边界问题的检测方法、装置、设备及存储介质
CN116483735B (zh) 一种代码变更的影响分析方法、装置、存储介质及设备
CN116028108B (zh) 一种依赖包安装用时分析方法、装置、设备及存储介质
CN114328214B (zh) 报表软件的接口测试用例的提效方法、装置、计算机设备
CN113760765B (zh) 代码测试方法、装置、电子设备和存储介质
CN113239296B (zh) 小程序的展示方法、装置、设备和介质
CN117827661A (zh) 代码语法检查方法、***、计算机设备及存储介质
CN115878460A (zh) 回归测试方法、装置、计算机设备及存储介质
CN113504957A (zh) 表格数据处理方法、装置、计算机设备及存储介质
CN116431639A (zh) 基于图形化的数据优化方法、装置、计算机设备及介质
CN117331956A (zh) 任务处理方法、装置、计算机设备及存储介质
CN116450724A (zh) 数据处理方法、装置、计算机设备及存储介质
CN117076485A (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