基于有向无环图的任务调度方法、系统、设备及存储介质技术方案

技术编号:33835104 阅读:33 留言:0更新日期:2022-06-16 11:49
本申请公开了一种基于有向无环图的任务调度方法、系统、设备及存储介质,所述基于有向无环图的任务调度方法包括:将一项总任务划分为若干可独立执行的最小单元作为任务节点;基于有向无环图确定各任务节点的依赖关系,并根据依赖关系确定各任务节点对应的执行次序,以便基于所述执行次序为各任务节点分配工作线程;本申请具有提高存在大量数据依赖时多线程计算的效率的效果。计算的效率的效果。计算的效率的效果。

【技术实现步骤摘要】
基于有向无环图的任务调度方法、系统、设备及存储介质


[0001]本申请涉及计算机任务调度的
,尤其是涉及一种基于有向无环图的任务调度方法、系统、设备及存储介质。

技术介绍

[0002]在金融领域,常常需要利用计算机进行大量的数据运算,一般来说,对于一组任务,可以使用多核处理器的硬件优势,将任务分发到不同的核心中执行,线程池也自然而然地成为了通用的任务调度组件,在线程池中,用户通过接口将任务放入池中,线程池的调度线程会分配一个工作线程来执行被投入的任务,但是,线程池无法以用户特定的顺序来执行任务,只能随机调度。
[0003]而金融数据的计算往往是伴随着大量的数据依赖,当用户拿到一组基础数据,需要计算若干个衍生数据时,基础数据往往无法直接用于计算衍生数据,而是需要计算出一组中间数据,然后再由中间数据计算衍生数据,如果采用传统的多线程方案,就会存在大量的线程同步问题,因为用户只能通过添加任何线程同步逻辑的方式来组织数据的运算次序,若用户无法在多线程计算中描述任务的依赖关系,则只能使用单线程进行计算,计算的速度就会大幅下降。
[0004]针对上述相关技术,专利技术人认为存在难以在不添加线程同步逻辑的情况下描述任务的执行次序的问题。

技术实现思路

[0005]为了提高存在大量数据依赖时多线程计算的效率,本申请提供一种基于有向无环图的任务调度方法、系统、设备及存储介质。
[0006]本申请的专利技术目的一采用如下技术方案实现:一种基于有向无环图的任务调度方法,包括:将一项总任务划分为若干可独立执行的最小单元作为任务节点;基于有向无环图确定各任务节点的依赖关系,并根据依赖关系确定各任务节点对应的执行次序,以便基于所述执行次序为各任务节点分配工作线程。
[0007]通过采用上述技术方案,将一项总任务划分为若干可独立执行的最小单元作为任务节点,便于将总任务进行最大程度的细化,以便充分发挥计算机多线程工作的优势,提高总任务的完成效率;根据一项总任务所划分的若干任务节点创建有向无环图,从而获取每一任务节点对应的依赖关系,以确定各任务节点的执行次序,以便后续根据各任务节点的执行次序为各任务节点分配工作线程执行各任务节点,为各任务节点的顺利执行提供保障,以防各任务节点的执行顺序错误导致任务无法执行或者执行结果错误。
[0008]本申请在一较佳示例中:基于有向无环图确定各任务节点的依赖关系,并根据依赖关系确定各任务节点对应的执行次序的步骤中,具体包括:获取用户上传的目标任务节点并判断所述目标任务节点有无依赖于其他任务节
点;若所述目标任务节点无依赖于其他任务节点,则添加所述目标任务节点并设定为最先执行;若所述目标任务节点有依赖于其他任务节点,则添加所述目标任务节点并基于所述目标任务节点的依赖关系确定执行次序。
[0009]通过采用上述技术方案,获取用户上传的目标任务节点,并判断目标任务节点有无依赖于其他任务节点,若所述目标任务节点无依赖于其他任务节点,由于该目标任务节点不依赖于其他任务节点,可以直接执行,因此可以直接添加该目标任务节点,并将该目标任务节点设定为最先执行,以便后续优先执行该不依赖于其他任务节点的目标任务节点;若所述目标任务节点为有依赖于其他任务节点,由于该目标任务节点需要等候对应的被依赖节点被执行后才可以执行,因此需要根据该目标任务节点所依赖的被依赖节点的依赖关系才可以确定该目标任务节点的执行次序,以便后续在该目标任务节点所依赖的被依赖节点被执行后,再执行该目标任务节点,以防出现直接执行该依赖于其他任务节点的目标任务节点而导致的程序或数据错误。
[0010]本申请在一较佳示例中:若所述目标任务节点为有依赖于其他任务节点,则添加所述目标任务节点并基于所述目标任务节点的依赖关系确定执行次序的步骤中,包括:判断所述目标任务节点的被依赖节点是否存在,若所述被依赖节点不存在,则将所述目标任务节点标记为非法任务;基于所述非法任务生成警示信息并发送至管理终端。
[0011]通过采用上述技术方案,在判断有依赖的目标任务节点的执行次序之前,先根据该有依赖的目标任务节点的依赖关系判断所述有依赖的目标任务节点的被依赖节点是否存在,若所述被依赖节点不存在,则该有依赖的目标任务节点无法顺利执行,因而将该有依赖的目标任务节点标记为非法任务以暂停执行该有依赖的目标任务节点,以防直接执行该有依赖的目标任务节点导致程序或数据错误;基于非法任务生成警示信息并发送至管理终端,使管理人员获知该有依赖的目标任务节点缺失被依赖节点,以便管理人员补全对应的被依赖节点或从路径依赖图中删除该有依赖的目标任务节点。
[0012]本申请在一较佳示例中:基于所述目标任务节点的依赖关系确定执行次序的步骤中,包括:将无依赖的目标任务节点的执行次序设定为零;确定所述有依赖的目标任务节点对应的被依赖节点的执行次序,所述被依赖节点为有依赖的目标任务节点所依赖的任务节点;根据所述被依赖节点的执行次序设定所述有依赖的目标任务节点紧接于对应的被依赖节点之后执行。
[0013]通过采用上述技术方案,对于无依赖的目标任务节点,直接将执行次序设定为零,使无依赖的目标任务节点在执行时处于最优先执行的次序;对于有依赖的目标任务节点,则需要先确定该有依赖的目标任务节点所对应的被依赖节点的执行次序,其中被依赖节点为有依赖的目标任务节点所依赖的任务节点;根据被依赖节点的执行次序设定所述有依赖的目标任务节点的执行次序,使有依赖的目标任务节点紧接于对应的被依赖节点之后执行,以便在执行时,有依赖的目标任务节点能够在被依赖节点执行完成之后再执行,提高了
各任务节点依序执行的稳定性。
[0014]本申请在一较佳示例中:根据所述被依赖节点的执行次序确定有依赖的目标任务节点的执行次序的步骤中,包括:若一个有依赖的目标任务节点对应多个被依赖节点,根据多个被依赖节点中最后执行的被依赖节点的执行次序设定所述有依赖的目标任务节点紧接于最后执行的被依赖节点之后执行。
[0015]通过采用上述技术方案,当一个有依赖的目标任务节点存在多个被依赖节点时,根据多个被依赖节点中最后执行的被依赖节点的执行次序设定所述有依赖的目标任务节点的执行次序,使有依赖的目标任务节点紧接于最后执行的被依赖节点之后执行,以便该有依赖的目标任务节点在所依赖的所有被依赖节点均执行完毕后才开始执行,提高了任务节点依序执行的稳定性。
[0016]本申请在一较佳示例中:基于有向无环图确定各任务节点的依赖关系,并根据依赖关系确定各任务节点对应的执行次序的步骤之后,还包括:基于各任务节点对应的执行次序生成任务序列数据;根据执行次序分批从任务序列数据中获取任务节点,为所述任务节点分配工作线程,以依序执行所有任务节点。
[0017]通过采用上述技术方案,基于各任务节点对应的执行次序生成任务序列数据,以确定每个执行次序所需执行的任务节点,便于分批执行各任务节点;将一个执行次序中的所有任务节点作为一个批次的任务节点,依照从小到大的执行次序分批从任务序列数据中获取任务节点,为任务节点本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.基于有向无环图的任务调度方法,其特征在于:所述基于有向无环图的任务调度方法的步骤包括:将一项总任务划分为若干可独立执行的最小单元作为任务节点;基于有向无环图确定各任务节点的依赖关系,并根据依赖关系确定各任务节点对应的执行次序,以便基于所述执行次序为各任务节点分配工作线程。2.根据权利要求1所述的基于有向无环图的任务调度方法,其特征在于:基于有向无环图确定各任务节点的依赖关系,并根据依赖关系确定各任务节点对应的执行次序的步骤中,具体包括:获取用户上传的目标任务节点并判断所述目标任务节点有无依赖于其他任务节点;若所述目标任务节点无依赖于其他任务节点,则添加所述目标任务节点并设定为最先执行;若所述目标任务节点有依赖于其他任务节点,则添加所述目标任务节点并基于所述目标任务节点的依赖关系确定执行次序。3.根据权利要求2所述的基于有向无环图的任务调度方法,其特征在于:若所述目标任务节点为有依赖于其他任务节点,则添加所述目标任务节点并基于所述目标任务节点的依赖关系确定执行次序的步骤中,包括:判断所述目标任务节点的被依赖节点是否存在,若所述被依赖节点不存在,则将所述目标任务节点标记为非法任务;基于所述非法任务生成警示信息并发送至管理终端。4.根据权利要求2所述的基于有向无环图的任务调度方法,其特征在于:基于所述目标任务节点的依赖关系确定执行次序的步骤中,包括:将无依赖的目标任务节点的执行次序设定为零;确定所述有依赖的目标任务节点对应的被依赖节点的执行次序,所述被依赖节点为有依赖的目标任务节点所依赖的任务节点;根据所述被依赖节点的执行次序设定所述有依赖的目标任务节点紧接于对应的被依赖节点之后执行。5.根据权利要求4所述的基于有向无环图的任务调度方法,其特征在于:根据所述被依赖节点的执行次序确定有依赖的目标任务节点的执行次序的步骤中,包括:...

【专利技术属性】
技术研发人员:曾赞达滕州罗文杰卢树文周伟杰谭彪荣
申请(专利权)人:广州经传多赢投资咨询有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1