CN114564297A - 一种任务执行顺序计算方法、装置、设备及可读存储介质 - Google Patents
一种任务执行顺序计算方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN114564297A CN114564297A CN202210212608.5A CN202210212608A CN114564297A CN 114564297 A CN114564297 A CN 114564297A CN 202210212608 A CN202210212608 A CN 202210212608A CN 114564297 A CN114564297 A CN 114564297A
- Authority
- CN
- China
- Prior art keywords
- task
- executed
- tasks
- task nodes
- nodes
- 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
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
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种任务执行顺序计算方法、装置、设备及可读存储介质,所述方法包括获取至少两个待执行任务的信息;根据所述待执行任务的信息构建有向无环图,所述有向无环图包括所述待执行任务的任务节点的连接关系,一个所述待执行任务对应一个任务节点;对所述有向无环图中的所述任务节点进行检测,得到待执行任务的执行顺序;根据所述待执行任务的执行顺序执行所述待执行任务,本发明通过将具有依赖关系的待执行任务构成有向无环图,对有向无环图中的任务节点进行检测快速得到任务的执行顺序并执行待执行的任务,提高了执行具有依赖关系的任务的执行效率。
Description
技术领域
本发明涉及任务调度技术领域,具体而言,涉及一种任务执行顺序计算方法、装置、设备及可读存储介质。
背景技术
现有技术通过ETLPLUS设置相关作业的执行,通过提前预设相关上下游作业间依赖配置关系,全部执行完才能触发下游依赖作业,并需要预留一段时间,确保上一个作业执行完才执行下一个,中间还是有一部分时间被浪费掉了,而且在处理多并发依赖作业时,整体的效率相对较低,经常查询一个作业依赖上下游关系需要相当长的一段时间。
发明内容
本发明的目的在于提供一种任务执行顺序计算方法、装置、设备及可读存储介质,以改善上述问题。
为了实现上述目的,本发明采取的技术方案如下:
一方面,本申请实施例提供了一种任务执行顺序计算方法,所述方法包括:
获取至少两个待执行任务的信息;
根据所述待执行任务的信息构建有向无环图,所述有向无环图包括所述待执行任务的任务节点的连接关系,一个所述待执行任务对应一个任务节点;
对所述有向无环图中的所述任务节点进行检测,得到待执行任务的执行顺序;
根据所述待执行任务的执行顺序执行所述待执行任务。
可选的,所述根据所述待执行任务的信息构建有向无环图,包括:
获取待执行任务之间的依赖关系;
根据所述待执行任务之间的依赖关系将所述待执行任务的任务节点采用有向箭头一一连接,构建有向无环图。
可选的,所述对所述有向无环图中的所述任务节点进行检测,得到待执行任务的执行顺序,包括:
建立深度优先搜索模型,所述深度优先搜索模型用于访问所述有向无环图中的每一个任务节点;
将所述有向无环图发送至所述深度优先搜索模型中,并将所述有向无环图中包括的所述任务节点均标记为未发现状态;
利用所述深度优先搜索模型,访问所述有向无环图中包括的标记为未发现状态的任务节点,并将访问过的任务节点标记为发现状态,标记为所述发现状态后触发所述深度优先搜索模型查找与所述任务节点相连的其他任务节点,得到所述任务节点与所述任务节点相连的其他任务节点之间的连接关系,直到所述有向无环图中的任务节点均标记为发现状态后得到第一信息,所述第一信息包括每个所述任务节点与其连接的其他任务节点之间的连接关系;
根据所述第一信息,检测所述任务节点出度是否为0,得到所述待执行任务的执行顺序。
可选的,所述根据所述第一信息,检测所述任务节点出度是否为0,得到所述待执行任务的执行顺序,包括:
根据所述第一信息检测所述任务节点,将出度为0的所述任务节点标记为待输出状态并对该任务节点进行编号得到编号信息,将所述任务节点标记为待输出状态后触发断开指向该任务节点的有向箭头,断开后将断开前与该任务节点相连的任意一个任务节点标记为待输出状态并对其进行编号,直到所有的任务节点均标记为待输出状态以及所有的任务节点均具有相应的编号信息。
可选的,所述直到所有的任务节点均标记为待输出状态以及所有的任务节点均具有相应的编号信息后,还包括:
根据每个所述任务节点相应的编号信息,将标记为待输出状态的任务节点按编号顺序发送至堆栈中,所述堆栈包括至少一层节点存储层,所述节点存储层中包括一个任务节点;
将所述堆栈中存储的任务节点进行出栈得到所述待执行任务的执行顺序。
可选的,所述将访问过的任务节点标记为发现状态,包括:
在所述有向无环图中检测与标记为发现状态的任务节点连接的其他任务节点是否为发现状态,其中,若是,则将该任务节点标记为停止状态,标记为停止状态后触发所述深度优先搜索模型停止对所述有向无环图进行遍历并发送错误报告;若不是,则将与该任务节点连接的其他任务节点标记为发现状态。
第二方面,本申请实施例提供了一种任务执行顺序计算装置,所述装置包括:第一获取模块、构建模块、检测模块和执行模块。
所述第一获取模块,用于获取至少两个待执行任务的信息;
所述构建模块,用于根据所述待执行任务的信息构建有向无环图,所述有向无环图包括所述待执行任务的任务节点的连接关系,一个所述待执行任务对应一个任务节点;
所述检测模块,用于对所述有向无环图中的所述任务节点进行检测,得到待执行任务的执行顺序;
所述执行模块,用于根据所述待执行任务的执行顺序执行所述待执行任务。
可选的,所述构建模块,包括:
获取单元,用于获取待执行任务之间的依赖关系;
第一构建单元,用于根据所述待执行任务之间的依赖关系将所述待执行任务的任务节点采用有向箭头一一连接,构建有向无环图。
可选的,所述检测模块,包括:
第二构建单元,用于建立深度优先搜索模型,所述深度优先搜索模型用于访问所述有向无环图中的每一个任务节点;
第一发送单元,用于将所述有向无环图发送至所述深度优先搜索模型中,并将所述有向无环图中包括的所述任务节点均标记为未发现状态;
访问单元,用于利用所述深度优先搜索模型,访问所述有向无环图中包括的标记为未发现状态的任务节点,并将访问过的任务节点标记为发现状态,标记为所述发现状态后触发所述深度优先搜索模型查找与所述任务节点相连的其他任务节点,得到所述任务节点与所述任务节点相连的其他任务节点之间的连接关系,直到所述有向无环图中的任务节点均标记为发现状态后得到第一信息,所述第一信息包括每个所述任务节点与其连接的其他任务节点之间的连接关系;
第一检测单元,用于根据所述第一信息,检测所述任务节点出度是否为0,得到所述待执行任务的执行顺序。
可选的,所述第一检测单元,包括:
标记单元,用于根据所述第一信息检测所述任务节点,将出度为0的所述任务节点标记为待输出状态并对该任务节点进行编号得到编号信息,将所述任务节点标记为待输出状态后触发断开指向该任务节点的有向箭头,断开后将断开前与该任务节点相连的任意一个任务节点标记为待输出状态并对其进行编号,直到所有的任务节点均标记为待输出状态以及所有的任务节点均具有相应的编号信息。
可选的,所述装置,还包括:
第二发送单元,用于根据每个所述任务节点相应的编号信息,将标记为待输出状态的任务节点按编号顺序发送至堆栈中,所述堆栈包括至少一层节点存储层,所述节点存储层中包括一个任务节点;
确定单元,用于将所述堆栈中存储的任务节点进行出栈得到所述待执行任务的执行顺序。
可选的,所述访问单元,包括:
第二检测单元,用于在所述有向无环图中检测与标记为发现状态的任务节点连接的其他任务节点是否为发现状态,其中,若是,则将该任务节点标记为停止状态,标记为停止状态后触发所述深度优先搜索模型停止对所述有向无环图进行遍历并发送错误报告;若不是,则将与该任务节点连接的其他任务节点标记为发现状态。
第三方面,本申请实施例提供一种任务执行顺序计算设备,所述设备包括存储器和处理器。存储器用于存储计算机程序;处理器用于执行所述计算机程序时实现上述任务执行顺序计算方法的步骤。
第四方面,本申请实施例提供了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任务执行顺序计算方法的步骤。
本发明的有益效果为:
本发明通过构建深度优先搜索模型遍历由待执行任务构成的有向无环图,并将访问后的节点标记为发现状态,将有向无环图中所有的任务节点均标记为发现状态后,将出度为0的任务节点标记为待输出状态,并断开指向该任务节点的有向箭头,保证了有向无环图中的任务节点均可被标记为待输出状态,通过对标记为待输出状态的任务节点编号,并输出至堆栈中,再从堆栈中出栈可确定唯一的任务执行顺序,直接根据确定好的任务顺序执行待执行任务,解决了现有技术中需要设置任务间隔时间执行具有依赖关系的任务的问题,通过唯一的任务执行顺序执行具有依赖关系的任务大大的提高了任务的执行效率,并且通过深度优先搜索模型可以同时遍历多个有向无环图,同时得到不同有向无环图的待执行任务的执行顺序,为执行任务顺序计算提供了一种快速、有效的方法。
本发明的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明实施例了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明实施例中所述的任务执行顺序计算方法流程示意图。
图2为本发明实施例中所述的任务执行顺序计算装置结构示意图。
图3为本发明实施例中所述的任务执行顺序计算设备结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
实施例1
如图1所示,本实施例提供了一种任务执行顺序计算方法,该方法包括步骤S1、步骤S2、步骤S3和步骤S4。
步骤S1、获取至少两个待执行任务的信息;
步骤S2、根据所述待执行任务的信息构建有向无环图,所述有向无环图包括所述待执行任务的任务节点的连接关系,一个所述待执行任务对应一个任务节点;
步骤S3、对所述有向无环图中的所述任务节点进行检测,得到待执行任务的执行顺序;
步骤S4、根据所述待执行任务的执行顺序执行所述待执行任务。
在现有技术中,需要通过提前预设相关上下游作业间依赖配置关系,全部执行完才能触发下游依赖作业,并需要预留一段时间,确保上一个作业执行完才执行下一个,中间还是有一部分时间被浪费掉了,而且在处理多并发依赖作业时,整体的效率相对较低,经常查询一个作业依赖上下游关系需要相当长的一段时间,因此需要一种能快速确定具有依赖关系的任务的执行顺序的方法,来应对现有技术中效率低的问题。
因此本实施例通过将所有的待执行的任务构建为有向无环图,通过对有向无环图中包括的待执行的任务的任务节点进行检测,得到有向无环图中各个节点相互的连接关系,确定待执行的任务之间的依赖关系,再根据待执行的任务之间的依赖关系,对有向图无环中的任务节点进行检测,检测出度为0的任务节点,通过标记出度为0的任务节点,得到任务的执行顺序。
根据上述特征,本实施例可实现快速、直接的得到任务的执行顺序,并根据任务的执行顺序执行需要执行的任务,为确定任务的执行顺序提供了一种快速、有效的任务执行顺序计算方法,本方法可广泛适用于具有依赖关系的任务需要快速执行的场合和执行具有复杂的依赖关系的待执行任务的场合。
在本公开的一种具体实施方式中,所述步骤S2,还可以包括步骤S21和步骤S22。
步骤S21、获取待执行任务之间的依赖关系;
步骤S22、根据所述待执行任务之间的依赖关系将所述待执行任务的任务节点采用有向箭头一一连接,构建有向无环图。
在本实施例中,通过工作人员手动输入的待执行任务之间的依赖关系指示工作人员将所有的待执行任务的任务节点根据待执行任务与待执行任务之间的依赖关系采用有向箭头一一连接,构建有向无环图,形成有向无环图,便于根据算法快速识别有向无环图中的每个任务节点,以及识别每个任务节点之间的连接关系。
在本公开的一种具体实施方式中,所述步骤S3,还可以包括步骤S31、步骤S32、步骤S33和步骤S34。
步骤S31、建立深度优先搜索模型,所述深度优先搜索模型用于访问所述有向无环图中的每一个任务节点;
步骤S32、将所述有向无环图发送至所述深度优先搜索模型中,并将所述有向无环图中包括的所述任务节点均标记为未发现状态;
步骤S33、利用所述深度优先搜索模型,访问所述有向无环图中包括的标记为未发现状态的任务节点,并将访问过的任务节点标记为发现状态,标记为所述发现状态后触发所述深度优先搜索模型查找与所述任务节点相连的其他任务节点,得到所述任务节点与所述任务节点相连的其他任务节点之间的连接关系,直到所述有向无环图中的任务节点均标记为发现状态后得到第一信息,所述第一信息包括每个所述任务节点与其连接的其他任务节点之间的连接关系;
步骤S34、根据所述第一信息,检测所述任务节点出度是否为0,得到所述待执行任务的执行顺序。
在本实施例中,通过建立深度优先搜索模型,将有向无环图发送至深度优先搜索模型中,对有向无环图中的每个标记为未发现状态节点进行访问,当访问一个标记为未发现状态的任务节点时,访问完毕后将该任务节点标记为发现状态后触发检测与该任务节点相连的其他任务节点,随机选取一个任务节点访问,将该任务节点标记为发现状态,直至将该支路访问完毕再对有向无环图的任务节点进行回溯,回溯至出现分支的节点,再随机选取与出现分支的任务节点相连的另一个任务节点进行访问,直至将另一个任务节点的支路全部访问完毕,再对任务节点进行回溯,直到将出现支路的任务节点的所有支路访问完毕后,遍历完有向无环图,得到所有任务节点之间的连接关系,深度优先搜索模型可以同时对多个有向无环图进行遍历,同时得到不同有向无环图的待执行任务的执行顺序。
在本公开的一种具体实施方式中,所述步骤S34,还可以包括步骤S341。
步骤S341、根据所述第一信息检测所述任务节点,将出度为0的所述任务节点标记为待输出状态并对该任务节点进行编号得到编号信息,将所述任务节点标记为待输出状态后触发断开指向该任务节点的有向箭头,断开后将断开前与该任务节点相连的任意一个任务节点标记为待输出状态并对其进行编号,直到所有的任务节点均标记为待输出状态以及所有的任务节点均具有相应的编号信息。
在本实施例中,将出度为0的任务节点标记为待输出状态后将指向该任务节点的有向箭头断开,保证了与出度为0的任务节点相连的任务节点出度也为0,再将与出度为0的任务节点断开前相连的任务节点标记为待输出状态,直到将有向无环图中的所有任务节点之间的有向箭头断开和所有任务节点都标记为待输出状态,并且在标记为待输出状态的同时对任务节点进行编号,便于确定任务节点的输出顺序。
在本公开的一种具体实施方式中,所述步骤S341后,还可以包括步骤S342和步骤S343。
步骤S342、根据每个所述任务节点相应的编号信息,将标记为待输出状态的任务节点按编号顺序发送至堆栈中,所述堆栈包括至少一层节点存储层,所述节点存储层中包括一个任务节点;
步骤S343、将所述堆栈中存储的任务节点进行出栈得到所述待执行任务的执行顺序。
在本实施例中,将事先完成编号的任务节点按编号的顺序均输出至堆栈中存储,堆栈中的一层存储一个任务节点,将所有的任务节点全部存储完毕后,再对堆栈进行出栈,可以确定唯一的任务执行顺序,快速的得到任务的执行顺序,有效的提高了任务的执行效率,节约了时间成本。
在本公开的一种具体实施方式中,所述步骤S33,包括步骤S331。
步骤S331、在所述有向无环图中检测与标记为发现状态的任务节点连接的其他任务节点是否为发现状态,其中,若是,则将该任务节点标记为停止状态,标记为停止状态后触发所述深度优先搜索模型停止对所述有向无环图进行遍历并发送错误报告;若不是,则将与该任务节点连接的其他任务节点标记为发现状态。
在本实施例中,因为根据待执行任务之间的依赖关系指示工作人员手对配置有向无环图的操作是不可信的,容易导致循环依赖的情况,而存在循环依赖时任务是无法顺利执行的,因此需要通过检测标记为发现状态的任务节点连接的其他任务节点是否为发现状态,来判断有向无环图是否存在循环依赖,如果存在就将该任务节点标记为停止状态后触发所述深度优先搜索模型停止对所述有向无环图进行遍历并发送错误报告,工作人员再对有向无环图中标记为停止状态的任务节点进行调整。
实施例2
如图2所示,本实施例提供了任务执行顺序计算装置,所述装置包括第一获取模块901、构建模块902、检测模块903和执行模块904。
所述第一获取模块901,用于获取至少两个待执行任务的信息;
所述构建模块902,用于根据所述待执行任务的信息构建有向无环图,所述有向无环图包括所述待执行任务的任务节点的连接关系,一个所述待执行任务对应一个任务节点;
所述检测模块903,用于对所述有向无环图中的所述任务节点进行检测,得到待执行任务的执行顺序;
所述执行模块904,用于根据所述待执行任务的执行顺序执行所述待执行任务。
本实施例的装置可以实现快速、直接的得到任务的执行顺序,并根据任务的执行顺序执行需要执行的任务,为确定任务的执行顺序提供了一种快速、有效的任务执行顺序计算装置,本装置可广泛适用于具有依赖关系的任务需要快速执行的场合和执行具有复杂的依赖关系的待执行任务的场合。
在本公开的一种具体实施方式中,所述构建模块902,包括获取单元9021和第一构建单元9022。
所述获取单元9021,用于获取待执行任务之间的依赖关系;
所述第一构建单元9022,用于根据所述待执行任务之间的依赖关系将所述待执行任务的任务节点采用有向箭头一一连接,构建有向无环图。
在本公开的一种具体实施方式,所述检测模块903,还包括第二构建单元9031、第一发送单元9032、访问单元9033和第一检测单元9034。
所述第二构建单元9031,用于建立深度优先搜索模型,所述深度优先搜索模型用于访问所述有向无环图中的每一个任务节点;
所述第一发送单元9032,用于将所述有向无环图发送至所述深度优先搜索模型中,并将所述有向无环图中包括的所述任务节点均标记为未发现状态;
所述访问单元9033,用于利用所述深度优先搜索模型,访问所述有向无环图中包括的标记为未发现状态的任务节点,并将访问过的任务节点标记为发现状态,标记为所述发现状态后触发所述深度优先搜索模型查找与所述任务节点相连的其他任务节点,得到所述任务节点与所述任务节点相连的其他任务节点之间的连接关系,直到所述有向无环图中的任务节点均标记为发现状态后得到第一信息,所述第一信息包括每个所述任务节点与其连接的其他任务节点之间的连接关系;
所述第一检测单元9034,用于根据所述第一信息,检测所述任务节点出度是否为0,得到所述待执行任务的执行顺序。
在本公开的一种具体实施方式中,所述第一检测单元9034,还包括标记单元90341。
所述标记单元90341,用于根据所述第一信息检测所述任务节点,将出度为0的所述任务节点标记为待输出状态并对该任务节点进行编号得到编号信息,将所述任务节点标记为待输出状态后触发断开指向该任务节点的有向箭头,断开后将断开前与该任务节点相连的任意一个任务节点标记为待输出状态并对其进行编号,直到所有的任务节点均标记为待输出状态以及所有的任务节点均具有相应的编号信息。
在本公开的一种具体实施方式中,所述装置,还包括第二发送单元90342和确定单元90343。
所述第二发送单元90342,用于根据每个所述任务节点相应的编号信息,将标记为待输出状态的任务节点按编号顺序发送至堆栈中,所述堆栈包括至少一层节点存储层,所述节点存储层中包括一个任务节点;
所述确定单元90343,用于将所述堆栈中存储的任务节点进行出栈得到所述待执行任务的执行顺序。
在本公开的一种具体实施方式中,所述访问单元9033,还包括第二检测单元90331。
所述第二检测单元90331,用于在所述有向无环图中检测与标记为发现状态的任务节点连接的其他任务节点是否为发现状态,其中,若是,则将该任务节点标记为停止状态,标记为停止状态后触发所述深度优先搜索模型停止对所述有向无环图进行遍历并发送错误报告;若不是,则将与该任务节点连接的其他任务节点标记为发现状态。
需要说明的是,关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
实施例3
相应于上面的方法实施例,本公开实施例还提供任务执行顺序计算设备,下文描述的任务执行顺序计算设备与上文描述的任务执行顺序计算方法可相互对应参照。
图3是根据一示例性实施例示出的任务执行顺序计算设备800的框图。如图3所示,该任务执行顺序计算设备800可以包括:处理器801,存储器802。该任务执行顺序计算设备800还可以包括多媒体组件803,输入/输出(I/O)接口804,以及通信组件805中的一者或多者。
其中,处理器801用于控制该任务执行顺序计算设备800的整体操作,以完成上述的任务执行顺序计算方法中的全部或部分步骤。存储器402用于存储各种类型的数据以支持在该任务执行顺序计算设备800的操作,这些数据例如可以包括用于在该任务执行顺序计算设备800上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器802可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random AccessMemory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable ProgrammableRead-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable ProgrammableRead-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。多媒体组件803可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器802或通过通信组件805发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口804为处理器801和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件805用于该任务执行顺序计算设备800与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near Field Communication,简称NFC),2G、3G或4G,或它们中的一种或几种的组合,因此相应的该通信组件805可以包括:Wi-Fi模块,蓝牙模块,NFC模块。
在一示例性实施例中,该任务执行顺序计算设备800可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(Digital Signal Processor,简称DSP)、数字信号处理设备(Digital Signal ProcessingDevice,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的任务执行顺序计算方法。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的任务执行顺序计算方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器802,上述程序指令可由该任务执行顺序计算设备800的处理器801执行以完成上述的任务执行顺序计算方法。
相应于上面的方法实施例,本公开实施例还提供了一种可读存储介质,下文描述的一种可读存储介质与上文描述的任务执行顺序计算方法可相互对应参照。
实施例4
一种可读存储介质,可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例的任务执行顺序计算方法的步骤。
该可读存储介质具体可以为U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可存储程序代码的可读存储介质。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (14)
1.一种任务执行顺序计算方法,其特征在于,包括:
获取至少两个待执行任务的信息;
根据所述待执行任务的信息构建有向无环图,所述有向无环图包括所述待执行任务的任务节点的连接关系,一个所述待执行任务对应一个任务节点;
对所述有向无环图中的所述任务节点进行检测,得到待执行任务的执行顺序;
根据所述待执行任务的执行顺序执行所述待执行任务。
2.根据权利要求1所述的任务执行顺序计算方法,其特征在于,所述根据所述待执行任务的信息构建有向无环图,包括:
获取待执行任务之间的依赖关系;
根据所述待执行任务之间的依赖关系将所述待执行任务的任务节点采用有向箭头一一连接,构建有向无环图。
3.根据权利要求1所述的任务执行顺序计算方法,其特征在于,所述对所述有向无环图中的所述任务节点进行检测,得到待执行任务的执行顺序,包括:
建立深度优先搜索模型,所述深度优先搜索模型用于访问所述有向无环图中的每一个任务节点;
将所述有向无环图发送至所述深度优先搜索模型中,并将所述有向无环图中包括的所述任务节点均标记为未发现状态;
利用所述深度优先搜索模型,访问所述有向无环图中包括的标记为未发现状态的任务节点,并将访问过的任务节点标记为发现状态,标记为所述发现状态后触发所述深度优先搜索模型查找与所述任务节点相连的其他任务节点,得到所述任务节点与所述任务节点相连的其他任务节点之间的连接关系,直到所述有向无环图中的任务节点均标记为发现状态后得到第一信息,所述第一信息包括每个所述任务节点与其连接的其他任务节点之间的连接关系;
根据所述第一信息,检测所述任务节点出度是否为0,得到所述待执行任务的执行顺序。
4.根据权利要求3所述的任务执行顺序计算方法,其特征在于,所述根据所述第一信息,检测所述任务节点出度是否为0,得到所述待执行任务的执行顺序,包括:
根据所述第一信息检测所述任务节点,将出度为0的所述任务节点标记为待输出状态并对该任务节点进行编号得到编号信息,将所述任务节点标记为待输出状态后触发断开指向该任务节点的有向箭头,断开后将断开前与该任务节点相连的任意一个任务节点标记为待输出状态并对其进行编号,直到所有的任务节点均标记为待输出状态以及所有的任务节点均具有相应的编号信息。
5.根据权利要求4所述的任务执行顺序计算方法,其特征在于,所述直到所有的任务节点均标记为待输出状态以及所有的任务节点均具有相应的编号信息后,还包括:
根据每个所述任务节点相应的编号信息,将标记为待输出状态的任务节点按编号顺序发送至堆栈中,所述堆栈包括至少一层节点存储层,所述节点存储层中包括一个任务节点;
将所述堆栈中存储的任务节点进行出栈得到所述待执行任务的执行顺序。
6.根据权利要求3所述的任务执行顺序计算方法,其特征在于,所述将访问过的任务节点标记为发现状态,包括:
在所述有向无环图中检测与标记为发现状态的任务节点连接的其他任务节点是否为发现状态,其中,若是,则将该任务节点标记为停止状态,标记为停止状态后触发所述深度优先搜索模型停止对所述有向无环图进行遍历并发送错误报告;若不是,则将与该任务节点连接的其他任务节点标记为发现状态。
7.一种任务执行顺序计算装置,其特征在于,包括:
第一获取模块,用于获取至少两个待执行任务的信息;
构建模块,用于根据所述待执行任务的信息构建有向无环图,所述有向无环图包括所述待执行任务的任务节点的连接关系,一个所述待执行任务对应一个任务节点;
检测模块,用于对所述有向无环图中的所述任务节点进行检测,得到待执行任务的执行顺序;
执行模块,用于根据所述待执行任务的执行顺序执行所述待执行任务。
8.根据权利要求7所述的任务执行顺序计算装置,其特征在于,所述构建模块,包括:
获取单元,用于获取待执行任务之间的依赖关系;
第一构建单元,用于根据所述待执行任务之间的依赖关系将所述待执行任务的任务节点采用有向箭头一一连接,构建有向无环图。
9.根据权利要求7所述的任务执行顺序计算装置,其特征在于,所述检测模块,包括:
第二构建单元,用于建立深度优先搜索模型,所述深度优先搜索模型用于访问所述有向无环图中的每一个任务节点;
第一发送单元,用于将所述有向无环图发送至所述深度优先搜索模型中,并将所述有向无环图中包括的所述任务节点均标记为未发现状态;
访问单元,用于利用所述深度优先搜索模型,访问所述有向无环图中包括的标记为未发现状态的任务节点,并将访问过的任务节点标记为发现状态,标记为所述发现状态后触发所述深度优先搜索模型查找与所述任务节点相连的其他任务节点,得到所述任务节点与所述任务节点相连的其他任务节点之间的连接关系,直到所述有向无环图中的任务节点均标记为发现状态后得到第一信息,所述第一信息包括每个所述任务节点与其连接的其他任务节点之间的连接关系;
第一检测单元,用于根据所述第一信息,检测所述任务节点出度是否为0,得到所述待执行任务的执行顺序。
10.根据权利要求9所述的任务执行顺序计算装置,其特征在于,所述第一检测单元,包括:
标记单元,用于根据所述第一信息检测所述任务节点,将出度为0的所述任务节点标记为待输出状态并对该任务节点进行编号得到编号信息,将所述任务节点标记为待输出状态后触发断开指向该任务节点的有向箭头,断开后将断开前与该任务节点相连的任意一个任务节点标记为待输出状态并对其进行编号,直到所有的任务节点均标记为待输出状态以及所有的任务节点均具有相应的编号信息。
11.根据权利要求10所述的任务执行顺序计算装置,其特征在于,所述装置,还包括:
第二发送单元,用于根据每个所述任务节点相应的编号信息,将标记为待输出状态的任务节点按编号顺序发送至堆栈中,所述堆栈包括至少一层节点存储层,所述节点存储层中包括一个任务节点;
确定单元,用于将所述堆栈中存储的任务节点进行出栈得到所述待执行任务的执行顺序。
12.根据权利要求9所述的任务执行顺序计算装置,其特征在于,所述访问单元,包括:
第二检测单元,用于在所述有向无环图中检测与标记为发现状态的任务节点连接的其他任务节点是否为发现状态,其中,若是,则将该任务节点标记为停止状态,标记为停止状态后触发所述深度优先搜索模型停止对所述有向无环图进行遍历并发送错误报告;若不是,则将与该任务节点连接的其他任务节点标记为发现状态。
13.一种任务执行顺序计算设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至6任一项所述任务执行顺序计算方法的步骤。
14.一种可读存储介质,其特征在于:所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述任务执行顺序计算方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210212608.5A CN114564297A (zh) | 2022-03-04 | 2022-03-04 | 一种任务执行顺序计算方法、装置、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210212608.5A CN114564297A (zh) | 2022-03-04 | 2022-03-04 | 一种任务执行顺序计算方法、装置、设备及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114564297A true CN114564297A (zh) | 2022-05-31 |
Family
ID=81717905
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210212608.5A Pending CN114564297A (zh) | 2022-03-04 | 2022-03-04 | 一种任务执行顺序计算方法、装置、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114564297A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117093502A (zh) * | 2023-10-13 | 2023-11-21 | 支付宝(杭州)信息技术有限公司 | 程序代码的并行性检测方法和装置 |
CN117194731A (zh) * | 2023-11-06 | 2023-12-08 | 中国西安卫星测控中心 | 一种基于有向带环图的测控流程自动化调度方法 |
-
2022
- 2022-03-04 CN CN202210212608.5A patent/CN114564297A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117093502A (zh) * | 2023-10-13 | 2023-11-21 | 支付宝(杭州)信息技术有限公司 | 程序代码的并行性检测方法和装置 |
CN117093502B (zh) * | 2023-10-13 | 2024-01-30 | 支付宝(杭州)信息技术有限公司 | 程序代码的并行性检测方法和装置 |
CN117194731A (zh) * | 2023-11-06 | 2023-12-08 | 中国西安卫星测控中心 | 一种基于有向带环图的测控流程自动化调度方法 |
CN117194731B (zh) * | 2023-11-06 | 2024-01-26 | 中国西安卫星测控中心 | 一种基于有向带环图的测控流程自动化调度方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114564297A (zh) | 一种任务执行顺序计算方法、装置、设备及可读存储介质 | |
US20130074051A1 (en) | Tracking and analysis of usage of a software product | |
CN110990233B (zh) | 一种利用甘特图展示soar的方法和系统 | |
CN111325417B (zh) | 实现隐私保护的多方协同更新业务预测模型的方法及装置 | |
US10241847B2 (en) | Anomaly detection using sequences of system calls | |
US10956257B2 (en) | Dynamic failure-resolution computing engine | |
CN112737856A (zh) | 链路追踪方法和装置、存储介质及电子装置 | |
CN110597695A (zh) | 报警方法、装置、计算机设备和可读存储介质 | |
CN112306471A (zh) | 一种任务的调度方法和装置 | |
US9588874B2 (en) | Remote device automation using a device services bridge | |
CN107577527B (zh) | 任务生成、调度方法及装置 | |
CN111088998B (zh) | 煤矿中心站监控系统测试方法、装置及分站模拟系统 | |
CN106952426B (zh) | 数据处理方法及装置 | |
CN108132832B (zh) | 应用程序启动方法和装置 | |
CN111309743A (zh) | 报表推送方法及装置 | |
CN109976828B (zh) | 一种配置文件的方法及装置 | |
CN109962914B (zh) | 一种防火墙配置方法及装置 | |
CN110020264B (zh) | 一种无效超链接的确定方法及装置 | |
CN113703996B (zh) | 基于用户和yang模型分组的访问控制方法、设备及介质 | |
CN113849812A (zh) | 应用程序检测方法、装置以及电子设备 | |
CN109189369B (zh) | 一种压缩代码的方法及装置 | |
CN112579325A (zh) | 一种业务对象的处理方法、装置、电子设备和存储介质 | |
CN111258899A (zh) | 用例生成方法、装置、电子设备和计算机可读存储介质 | |
CN112882948A (zh) | 一种应用的稳定性测试方法、装置、系统及存储介质 | |
CN110443703A (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 |