CN114281552A - 一种基于有向无环图的任务调度方法、装置、设备及介质 - Google Patents
一种基于有向无环图的任务调度方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN114281552A CN114281552A CN202210029896.0A CN202210029896A CN114281552A CN 114281552 A CN114281552 A CN 114281552A CN 202210029896 A CN202210029896 A CN 202210029896A CN 114281552 A CN114281552 A CN 114281552A
- Authority
- CN
- China
- Prior art keywords
- task
- acyclic graph
- directed acyclic
- subtasks
- tasks
- 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
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例属于大数据领域,涉及一种基于有向无环图的任务调度方法,包括根据业务类型对多个任务进行分类;对每类所述任务进行拆分形成多个子任务,将每类所述任务中的子任务形成子任务集;将子任务集中所述子任务按照执行逻辑顺序进行编排,以每个所述子任务为节点、以所述子任务之间的逻辑关系为边组成有向无环图的数据结构;触发引用所述任务的事件,在所述有向无环图的数据结构中执行任务。本申请还提供一种基于有向无环图的任务调度装置、设备及介质。本申请可以将所有任务组成一个有向无环图的数据结构,根据有向无环图的遍历算法进行调度,确保了各个任务之间的有序执行,便于任务的维护。
Description
技术领域
本申请涉及大数据技术领域,尤其涉及一种基于有向无环图的任务调度方法及其相关设备。
背景技术
现有技术中的大数据计算、分析和处理,一般由很多独立的进程完成,每个进程完成特定的数据处理逻辑。其中的进程称之为数据加工任务。
在实际的处理过程中,数据和数据之间存在着先后的顺序逻辑关系。比如,要处理数据A,首先要完成数据B的处理,因为A依赖于B的结果。由于数据之间存在关联和逻辑关系,对应的数据加工任务之间也有对应的关联和依赖,为保证数据处理的正确结果,要求这些加工任务按照逻辑关系有序、高效的执行。所以系统需要定义任务的规则和属性,对任务的执行顺序和逻辑进行编排,确保任务的高效执行。
发明内容
本申请实施例的目的在于提出一种基于有向无环图的任务调度方法、及其相关设备,其主要目的是为了确保各个任务之间能够有序的执行,便于对任务进行维护。
为了解决上述技术问题,本申请实施例提供一种基于有向无环图的任务调度方法,采用了如下所述的技术方案:
一种基于有向无环图的任务调度方法,包括下述步骤:
根据业务类型对多个任务进行分类;
对每类所述任务进行拆分形成多个子任务,将每类所述任务中的子任务形成子任务集;
将子任务集中所述子任务按照执行逻辑顺序进行编排,以每个所述子任务为节点、以所述子任务之间的逻辑关系为边组成有向无环图的数据结构;
触发引用所述任务的事件,在所述有向无环图的数据结构中执行任务。
进一步的,在所述根据业务类型对多个任务进行分类的步骤之后还包括:
设定每个类别的所述任务的规则及属性,所述任务的规则为在规则所指定的事件被触发后该任务被执行,所述任务的属性包括任务的名称和说明。
进一步的,所述对每类所述任务进行拆分形成多个子任务,将每类所述任务中的子任务形成子任务集的步骤具体包括:
按照任务数量建立子任务集;
对每类所述任务进行拆分,将每个任务的所有子任务保存在所述子任务集中;
对每个子任务集中的子任务进行代号和逻辑标注。
进一步的,所述对每个子任务集中的子任务进行代号和逻辑标注的步骤具体为:将所述子任务集中的每个子任务在其他子任务集中进行查找,判断是否有所述每个子任务的逻辑子任务,若是则在所述任务集中进行代号和逻辑标注。
进一步的,在所述将子任务集中所述子任务按照执行逻辑顺序进行编排,以每个所述子任务为节点、以所述子任务之间的逻辑关系为边组成有向无环图的数据结构的步骤具体包括:
获取每个所述子任务集中的代号和逻辑标注;
根据所述代号和逻辑标注进行编排,以形成有逻辑关系的序列;
调用所述代号所对应的子任务名称,以所述子任务名称为节点,将所述逻辑序列为边组成有向无环图的数据结构;
对所述有向无环图的数据结构进行无环校验,若校验通过则完成所述有向无环图的数据结构的建立,若校验不通过则发出警报。
进一步的,所述若校验不通过则发出警报的步骤之后还包括:
输出所述校验不通过中有环处的子任务名称和逻辑关系,对所述逻辑关系执行删除操作,并将所述任务名称和逻辑关系纳入一名单数据库;
在后续有向无环图的数据结构时,预先将待建立的子任务名称和逻辑关系输入至所述名单数据库中查找,若存在则直接丢弃该逻辑关系。
进一步的,所述触发引用所述任务的事件,在所述有向无环图的数据结构中执行任务的步骤具体包括:
触发引用所述任务的事件;
将所述事件在所述规则中进行遍历查找,若存在则在所述有向无环图的数据结构中执行任务。
为了解决上述技术问题,本申请实施例还提供一种基于有向无环图的任务调度方法装置,采用了如下所述的技术方案:
一种基于有向无环图的任务调度方法装置,包括:
分类模块,用于根据业务类型对多个任务进行分类;
拆分模块,用于对每类所述任务进行拆分形成多个子任务,将每类所述任务中的子任务形成子任务集;
编排模块,用于将子任务集中所述子任务按照执行逻辑顺序进行编排,以每个所述子任务为节点、以所述子任务之间的逻辑关系为边组成有向无环图的数据结构;及
触发模块,用于触发引用所述任务的事件,在所述有向无环图的数据结构中执行任务。
为了解决上述技术问题,本申请实施例还提供一种计算机设备,采用了如下所述的技术方案:
一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令时实现如上述的基于有向无环图的任务调度方法的步骤。
为了解决上述技术问题,本申请实施例还提供一种计算机可读存储介质,采用了如下所述的技术方案:
一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如上述的基于有向无环图的任务调度方法的步骤。
与现有技术相比,本申请实施例主要有以下有益效果:本发明根据业务类型对多个任务进行分类;对每类所述任务进行拆分形成多个子任务,将每类所述任务中的子任务形成子任务集;将子任务集中所述子任务按照执行逻辑顺序进行编排,以每个所述子任务为节点、以所述子任务之间的逻辑关系为边组成有向无环图的数据结构;触发引用所述任务的事件,在所述有向无环图的数据结构中执行任务。本发明可以将所有任务组成一个有向无环图的数据结构,根据有向无环图的遍历算法进行调度,确保了各个任务之间的有序执行,便于任务的维护。
附图说明
为了更清楚地说明本申请中的方案,下面将对本申请实施例描述中所需要使用的附图作一个简单介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请可以应用于其中的示例性系统架构图;
图2根据本申请的基于有向无环图的任务调度方法的一个实施例的流程图;
图3是图2中步骤S202的一种具体实施方式的流程图;
图4是图2中步骤S203的一种具体实施方式的流程图;
图5是图2中步骤S204的一种具体实施方式的流程图;
图6是根据本申请的基于有向无环图的任务调度装置的一个实施例的结构示意图;
图7是图6所示拆分模块一种具体实施方式的结构示意图;
图8是图6所示编排模块一种具体实施方式的结构示意图;
图9是图6所示触发模块一种具体实施方式的结构示意图;
图10是根据本申请的计算机设备的一个实施例的结构示意图。
附图标记:
具体实施方式
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本申请的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
为了使本技术领域的人员更好地理解本申请方案,下面将结合附图,对本申请实施例中的技术方案进行清楚、完整地描述。
如图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 Picture E基于有向无环图的任务调度方法pertsGroup Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving PictureE基于有向无环图的任务调度方法perts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对终端设备101、102、103上显示的页面提供支持的后台服务器。
需要说明的是,本申请实施例所提供的基于有向无环图的任务调度方法一般由服务器执行,相应地,基于有向无环图的任务调度装置一般设置于终端设备中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
继续参考图2,示出了根据本申请的基于有向无环图的任务调度的方法的一个实施例的流程图。所述的基于有向无环图的任务调度方法,包括以下步骤:
步骤S201,根据业务类型对多个任务进行分类。
在本实施例中,每个业务类型中可以包括多个任务。可以根据业务类型对任务进行分类,例如,如果业务类型为业务1,其应该包含有3个任务,任务1、任务2和任务3,此时如果出现业务类型为业务1的时,即对任务进行分类,分别分为任务1、任务2和任务3。
具体的,在步骤S201之中还包括:设定每个类别的所述任务的规则及属性。对每个类别的任务都需要进行规则和属性的设定,其中,规则是指在规则所指定的事件触发后,该任务即被执行,属性是任务的名称和说明。
在本实施例中,基于有向无环图的任务调度方法运行于其上的电子设备(例如图1所示的服务器)可以通过有线连接方式或者无线连接方式连接终端设备。需要指出的是,上述无线连接方式可以包括但不限于3G/4G连接、WiFi连接、蓝牙连接、WiMA基于有向无环图的任务调度方法连接、Zigbee连接、UWB(ultra wideband)连接、以及其他现在已知或将来开发的无线连接方式。
步骤S202,对每类所述任务进行拆分形成多个子任务,将每类所述任务中的子任务形成子任务集。
在本实施例中,每类任务都包含多个子任务,需要对子任务进行拆分,这是由于多个任务之间可能是并行的,也有可能是其中一个任务中的子任务是在另一个任务的子任务执行完成后才能执行。
具体的,参阅图3,步骤S202包括以下步骤:
步骤S2021,按照任务数量建立子任务集。
其中,在每类任务进行拆分后,需要对子任务进行保存,具体是通过子任务集的形式进行保存的。
步骤S2022,对每类所述任务进行拆分,将每个任务的所有子任务保存在所述子任务集中。
步骤S2023,对每个子任务集中的子任务进行代号和逻辑标注。
其中,为了方便后续有向无环图的建立,由于每个子任务集中的子任务都包括名称和相应的逻辑关系,由于子任务的名称较为复杂,为了方便引用可以将子任务名进行名称标注,即代号,代号可以采用唯一代码进行命名,而逻辑关系例如为并行执行关系或先后执行关系,可以通过代码实现,例如子任务1在子任务2之后,可以采用代码BF子任务1、AF子任务2来实现。
具体的,所述对每个子任务集中的子任务进行代号和逻辑标注的步骤具体为:将所述子任务集中的每个子任务在其他子任务集中进行查找,判断是否有所述每个子任务的逻辑子任务,若是则在所述任务集中进行代号和逻辑标注。这是由于,每类任务中的子任务可能与其他任务中的子任务有逻辑关系,例如任务1中的子任务1是在任务2中的子任务2执行完成后才执行的,此时需要子任务2的名称和逻辑关系都在子任务1集和子任务2集中均标注出来,以方便后续的调用。而该步骤又可以具体表现为:
判断每个子任务集中的子任务是否为独立子任务,若是则在其他子任务集中优先查找该独立子任务是否有对应的逻辑子任务。这是由于,一般的每个子任务集中一般都包含了对应的逻辑关系,但是如该子任务集是一个独立的任务(没有先后逻辑的任务)或并行的任务,而该子任务可以称为独立子任务,这种独立子任务极有可能与其他任务集中的子任务有先后逻辑关系,因此优先查找这类。
步骤S203,将子任务集中所述子任务按照执行逻辑顺序进行编排,以每个所述子任务为节点、以所述子任务之间的逻辑关系为边组成有向无环图的数据结构。
在本实施例中,将子任务集中所述子任务按照执行逻辑顺序进行编排,以每个所述子任务为节点、以所述子任务之间的逻辑关系为边组成有向无环图的数据结构。
具体的,参阅图4,该步骤S203具体包括以下步骤:
步骤S2031,获取每个所述子任务集中的代号和逻辑标注。
其中,可以查询到每个子任务中的名词和逻辑标注,该标注可以方便的调用。
步骤S2032,根据所述代号和逻辑标注进行编排,以形成有逻辑关系的序列。
其中,由于子任务集中的每个子任务的代号和对应的逻辑标准均是已知的,可以根据代号和逻辑标注进行逻辑编排,以形成有逻辑关系的序列。
步骤S2033,调用所述代号所对应的子任务名称,以所述子任务名称为节点,将所述逻辑序列为边组成有向无环图的数据结构。
其中,由于有向无环图中所表示的是子任务的名称,可以根据代号调用对应的子任务名称,将子任务名称作为节点,然后将有逻辑关系的序列为边组成有向无环图的数据结构。
步骤S2034,对所述有向无环图的数据结构进行无环校验,若校验通过则完成所述有向无环图的数据结构的建立,若校验不通过则发出警报。
其中,由于有向无环图是一个无环的图,所以需要对其是否有环进行校验,若校验为无环则校验通过,完成有向无环图的数据结构的建立,否则为有环则校验不通过并发出警报。
所述若校验不通过则发出警报的步骤之后还包括:
首先、输出所述校验不通过中有环处的子任务名称和逻辑关系,对所述逻辑关系执行删除操作,并将所述任务名称和逻辑关系纳入一名单数据库。
然后、在后续有向无环图的数据结构时,预先将待建立的子任务名称和逻辑关系输入至所述名单数据库中查找,若存在则直接丢弃该逻辑关系。
步骤S204,触发引用所述任务的事件,在所述有向无环图的数据结构中执行任务。
在本实施例中,参阅图5,该步骤S204具体包括以下步骤:
步骤S2041,触发引用所述任务的事件。该触发的任务是外界的事件。
步骤S2042,将所述事件在所述规则中进行遍历查找,若存在则在所述有向无环图的数据结构中执行任务。
具体的,为了判断触发的事件是否与该任务相关,需要与每个任务的规则进行匹配,若存在则执行该任务,可以确保了各个任务之间的有序执行,否则不予执行。
本申请根据业务类型对多个任务进行分类;对每类所述任务进行拆分形成多个子任务,将每类所述任务中的子任务形成子任务集;将子任务集中所述子任务按照执行逻辑顺序进行编排,以每个所述子任务为节点、以所述子任务之间的逻辑关系为边组成有向无环图的数据结构;触发引用所述任务的事件,在所述有向无环图的数据结构中执行任务。本申请可以将所有任务组成一个有向无环图的数据结构,根据有向无环图的遍历算法进行调度,确保了各个任务之间的有序执行,便于任务的维护。
需要强调的是,为进一步保证上述基于有向无环图的任务调度信息的私密和安全性,上述基于有向无环图的任务调度信息还可以存储于一区块链的节点中。
本申请所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机可读指令来指令相关的硬件来完成,该计算机可读指令可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等非易失性存储介质,或随机存储记忆体(Random Access Memory,RAM)等。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
进一步参考图6,作为对上述图2所示方法的实现,本申请提供了一种基于有向无环图的任务调度装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图6所示,本实施例所述的基于有向无环图的任务调度方法装置600包括:分类模块601、拆分模块602、编排模块603以及触发模块604。其中:
分类模块601用于根据业务类型对多个任务进行分类;
拆分模块602用于对每类所述任务进行拆分形成多个子任务,将每类所述任务中的子任务形成子任务集;
编排模块603用于将子任务集中所述子任务按照执行逻辑顺序进行编排,以每个所述子任务为节点、以所述子任务之间的逻辑关系为边组成有向无环图的数据结构;
触发模块604,用于触发引用所述任务的事件,在所述有向无环图的数据结构中执行任务。
本申请中的分类模块601根据业务类型对多个任务进行分类;拆分模块602对每类所述任务进行拆分形成多个子任务,将每类所述任务中的子任务形成子任务集;编排模块603将子任务集中所述子任务按照执行逻辑顺序进行编排,以每个所述子任务为节点、以所述子任务之间的逻辑关系为边组成有向无环图的数据结构;触发模块604触发引用所述任务的事件,在所述有向无环图的数据结构中执行任务。本申请可以将所有任务组成一个有向无环图的数据结构,根据有向无环图的遍历算法进行调度,确保了各个任务之间的有序执行,便于任务的维护。
参阅图7,为拆分模块602一种具体实施方式的结构示意图,拆分模块602包括建立子模块6021、拆分子模块6022以及标注子模块6023。其中,建立子模块6021用于按照任务数量建立子任务集;拆分子模块6022用于对每类所述任务进行拆分,将每个任务的所有子任务保存在所述子任务集中;标注子模块6023用于对每个子任务集中的子任务进行代号和逻辑标注。
参阅图8,为编排模块603一种具体实施方式的结构示意图,编排模块603包括获取子模块6031、编排子模块6032、调用子模块6033以及校验子模块6034。其中,获取子模块6031用于获取每个所述子任务集中的代号和逻辑标注;编排子模块6032用于根据所述代号和逻辑标注进行编排,以形成有逻辑关系的序列;调用子模块6033用于调用所述代号所对应的子任务名称,以所述子任务名称为节点,将所述逻辑序列为边组成有向无环图的数据结构;校验子模块6034用于对所述有向无环图的数据结构进行无环校验,若校验通过则完成所述有向无环图的数据结构的建立,若校验不通过则发出警报。
参阅图9,为触发模块604一种具体实施方式的结构示意图,触发模块604包括触发子模块6041以及遍历子模块6042。其中,触发子模块6041用于触发引用所述任务的事件;遍历子模块6042用于将所述事件在所述规则中进行遍历查找,若存在则在所述有向无环图的数据结构中执行任务。
为解决上述技术问题,本申请实施例还提供计算机设备。具体请参阅图10,图10为本实施例计算机设备基本结构框图。
所述计算机设备10包括通过系统总线相互通信连接存储器101、处理器102、网络接口103。需要指出的是,图中仅示出了具有组件101-103的计算机设备10,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable Gate Array,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。
所述计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机设备可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。
所述存储器101至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或D基于有向无环图的任务调度方法存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器101可以是所述计算机设备10的内部存储单元,例如该计算机设备10的硬盘或内存。在另一些实施例中,所述存储器101也可以是所述计算机设备10的外部存储设备,例如该计算机设备10上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,所述存储器101还可以既包括所述计算机设备10的内部存储单元也包括其外部存储设备。本实施例中,所述存储器101通常用于存储安装于所述计算机设备10的操作系统和各类应用软件,例如基于有向无环图的任务调度方法的计算机可读指令等。此外,所述存储器101还可以用于暂时地存储已经输出或者将要输出的各类数据。
所述处理器102在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器102通常用于控制所述计算机设备10的总体操作。本实施例中,所述处理器102用于运行所述存储器101中存储的计算机可读指令或者处理数据,例如运行所述基于有向无环图的任务调度方法的计算机可读指令。
所述网络接口103可包括无线网络接口或有线网络接口,该网络接口103通常用于在所述计算机设备10与其他电子设备之间建立通信连接。
本申请根据业务类型对多个任务进行分类;对每类所述任务进行拆分形成多个子任务,将每类所述任务中的子任务形成子任务集;将子任务集中所述子任务按照执行逻辑顺序进行编排,以每个所述子任务为节点、以所述子任务之间的逻辑关系为边组成有向无环图的数据结构;触发引用所述任务的事件,在所述有向无环图的数据结构中执行任务。本申请可以将所有任务组成一个有向无环图的数据结构,根据有向无环图的遍历算法进行调度,确保了各个任务之间的有序执行,便于任务的维护。
本申请还提供了另一种实施方式,即提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,所述计算机可读指令可被至少一个处理器执行,以使所述至少一个处理器执行如上述的基于有向无环图的任务调度方法的步骤。
本申请根据业务类型对多个任务进行分类;对每类所述任务进行拆分形成多个子任务,将每类所述任务中的子任务形成子任务集;将子任务集中所述子任务按照执行逻辑顺序进行编排,以每个所述子任务为节点、以所述子任务之间的逻辑关系为边组成有向无环图的数据结构;触发引用所述任务的事件,在所述有向无环图的数据结构中执行任务。本申请可以将所有任务组成一个有向无环图的数据结构,根据有向无环图的遍历算法进行调度,确保了各个任务之间的有序执行,便于任务的维护。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
显然,以上所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例,附图中给出了本申请的较佳实施例,但并不限制本申请的专利范围。本申请可以以许多不同的形式来实现,相反地,提供这些实施例的目的是使对本申请的公开内容的理解更加透彻全面。尽管参照前述实施例对本申请进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利用本申请说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本申请专利保护范围之内。
Claims (10)
1.一种基于有向无环图的任务调度方法,其特征在于,包括下述步骤:
根据业务类型对多个任务进行分类;
对每类所述任务进行拆分形成多个子任务,将每类所述任务中的子任务形成子任务集;
将子任务集中所述子任务按照执行逻辑顺序进行编排,以每个所述子任务为节点、以所述子任务之间的逻辑关系为边组成有向无环图的数据结构;
触发引用所述任务的事件,在所述有向无环图的数据结构中执行任务。
2.根据权利要求1所述的基于有向无环图的任务调度方法,其特征在于,在所述根据业务类型对多个任务进行分类的步骤之后还包括:
设定每个类别的所述任务的规则及属性,所述任务的规则为在规则所指定的事件被触发后该任务被执行,所述任务的属性包括任务的名称和说明。
3.根据权利要求1所述的基于有向无环图的任务调度方法,其特征在于,所述对每类所述任务进行拆分形成多个子任务,将每类所述任务中的子任务形成子任务集的步骤具体包括:
按照任务数量建立子任务集;
对每类所述任务进行拆分,将每个任务的所有子任务保存在所述子任务集中;
对每个子任务集中的子任务进行代号和逻辑标注。
4.根据权利要求3所述的基于有向无环图的任务调度方法,其特征在于,所述对每个子任务集中的子任务进行代号和逻辑标注的步骤具体为:将所述子任务集中的每个子任务在其他子任务集中进行查找,判断是否有所述每个子任务的逻辑子任务,若是则在所述任务集中进行代号和逻辑标注。
5.根据权利要求1所述的基于有向无环图的任务调度方法,其特征在于,在所述将子任务集中所述子任务按照执行逻辑顺序进行编排,以每个所述子任务为节点、以所述子任务之间的逻辑关系为边组成有向无环图的数据结构的步骤具体包括:
获取每个所述子任务集中的代号和逻辑标注;
根据所述代号和逻辑标注进行编排,以形成有逻辑关系的序列;
调用所述代号所对应的子任务名称,以所述子任务名称为节点,将所述逻辑序列为边组成有向无环图的数据结构;
对所述有向无环图的数据结构进行无环校验,若校验通过则完成所述有向无环图的数据结构的建立,若校验不通过则发出警报。
6.根据权利要求5所述的基于有向无环图的任务调度方法,其特征在于,所述若校验不通过则发出警报的步骤之后还包括:
输出所述校验不通过中有环处的子任务名称和逻辑关系,对所述逻辑关系执行删除操作,并将所述任务名称和逻辑关系纳入一名单数据库;
在后续有向无环图的数据结构时,预先将待建立的子任务名称和逻辑关系输入至所述名单数据库中查找,若存在则直接丢弃该逻辑关系。
7.根据权利要求1所述的基于有向无环图的任务调度方法,其特征在于,所述触发引用所述任务的事件,在所述有向无环图的数据结构中执行任务的步骤具体包括:
触发引用所述任务的事件;
将所述事件在所述规则中进行遍历查找,若存在则在所述有向无环图的数据结构中执行任务。
8.一种基于有向无环图的任务调度方法装置,其特征在于,包括:
分类模块,用于根据业务类型对多个任务进行分类;
拆分模块,用于对每类所述任务进行拆分形成多个子任务,将每类所述任务中的子任务形成子任务集;
编排模块,用于将子任务集中所述子任务按照执行逻辑顺序进行编排,以每个所述子任务为节点、以所述子任务之间的逻辑关系为边组成有向无环图的数据结构;及
触发模块,用于触发引用所述任务的事件,在所述有向无环图的数据结构中执行任务。
9.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令时实现如权利要求1至7中任一项所述的基于有向无环图的任务调度方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如权利要求1至7中任一项所述的基于有向无环图的任务调度方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210029896.0A CN114281552A (zh) | 2022-01-12 | 2022-01-12 | 一种基于有向无环图的任务调度方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210029896.0A CN114281552A (zh) | 2022-01-12 | 2022-01-12 | 一种基于有向无环图的任务调度方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114281552A true CN114281552A (zh) | 2022-04-05 |
Family
ID=80880799
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210029896.0A Pending CN114281552A (zh) | 2022-01-12 | 2022-01-12 | 一种基于有向无环图的任务调度方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114281552A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115658749A (zh) * | 2022-10-25 | 2023-01-31 | 工银瑞信基金管理有限公司 | 基于有向无环图的基金产品排序方法、装置和电子设备 |
CN116340436A (zh) * | 2023-03-14 | 2023-06-27 | 山东浪潮数字商业科技有限公司 | 数据分组加工调度方法及装置、介质、设备 |
-
2022
- 2022-01-12 CN CN202210029896.0A patent/CN114281552A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115658749A (zh) * | 2022-10-25 | 2023-01-31 | 工银瑞信基金管理有限公司 | 基于有向无环图的基金产品排序方法、装置和电子设备 |
CN116340436A (zh) * | 2023-03-14 | 2023-06-27 | 山东浪潮数字商业科技有限公司 | 数据分组加工调度方法及装置、介质、设备 |
CN116340436B (zh) * | 2023-03-14 | 2024-05-24 | 山东浪潮数字商业科技有限公司 | 数据分组加工调度方法及装置、介质、设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112052111B (zh) | 服务器异常预警的处理方法、装置、设备及存储介质 | |
CN114281552A (zh) | 一种基于有向无环图的任务调度方法、装置、设备及介质 | |
CN113254445B (zh) | 实时数据存储方法、装置、计算机设备及存储介质 | |
CN112328486A (zh) | 接口自动化测试方法、装置、计算机设备及存储介质 | |
CN112184169A (zh) | 用户待办事项的动态规划方法、装置、设备及存储介质 | |
CN112860662A (zh) | 数据血缘关系建立方法、装置、计算机设备及存储介质 | |
CN112365202A (zh) | 一种多目标对象的评价因子筛选方法及其相关设备 | |
CN113254106B (zh) | 基于Flink的任务执行方法、装置、计算机设备及存储介质 | |
CN115757075A (zh) | 任务异常检测方法、装置、计算机设备及存储介质 | |
CN114281707A (zh) | 造数方法、业务应用测试方法及其相关设备 | |
CN111797297B (zh) | 页面数据处理方法、装置、计算机设备及存储介质 | |
CN112364187B (zh) | 基于大数据的汽车配件数据库建库方法、装置及设备 | |
CN117408821A (zh) | 一种保险理赔核责方法、装置、计算机设备及存储介质 | |
CN111311374A (zh) | 基于大学生的闲置物品交换方法、装置、设备及存储介质 | |
CN115576837A (zh) | 一种批量造数方法、装置、计算机设备及存储介质 | |
CN115562662A (zh) | 应用页面的创建方法、装置、计算机设备及存储介质 | |
CN115292580A (zh) | 数据查询方法、装置、计算机设备及存储介质 | |
CN114186976A (zh) | 工作流程流转方法、装置、计算机设备及存储介质 | |
CN114528443A (zh) | 基于知识图谱的信息挖掘方法及其相关设备 | |
CN111782208A (zh) | 指标预警方法、装置、计算机设备及存储介质 | |
WO2022011947A1 (zh) | 一种交易数据的处理方法、装置、计算机设备及存储介质 | |
CN112328381A (zh) | 启动任务执行顺序的决策方法、装置、计算机设备及介质 | |
CN111327513B (zh) | 消息数据的推送方法、装置、计算机设备及存储介质 | |
CN115080045A (zh) | 链路生成方法、装置、计算机设备及存储介质 | |
CN115731057A (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 |