CN110427259A - 一种任务处理方法及装置 - Google Patents
一种任务处理方法及装置 Download PDFInfo
- Publication number
- CN110427259A CN110427259A CN201910718570.7A CN201910718570A CN110427259A CN 110427259 A CN110427259 A CN 110427259A CN 201910718570 A CN201910718570 A CN 201910718570A CN 110427259 A CN110427259 A CN 110427259A
- Authority
- CN
- China
- Prior art keywords
- subtask
- node
- calculating node
- execution
- directed acyclic
- 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
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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明实施例提供了一种任务处理方法及装置,将待处理任务切分为多个子任务,并配置各子任务的执行顺序;根据各子任务的执行顺序,从目标子任务开始,按照从后向前的顺序,依次启动各子任务,得到待处理任务对应的有向无环图;按照自顶向下的执行顺序,依次执行有向无环图中各层计算结点的执行逻辑,其中,在执行有向无环图中各层计算结点的执行逻辑时,并发执行处于同一层的各计算结点的执行逻辑。利用自底向上的方式启动各子任务,得到有向无环图,因此,可以知道每一层的哪些计算结点可以并发执行,并发执行这些处于同一层的各计算结点的执行逻辑,可以提高任一层计算结点的执行逻辑的执行并发度,从而提高了任务的执行效率。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种任务处理方法及装置。
背景技术
计算机在进行某项工作时,常常需要好几个任务的协调执行才能完成,而任务的数量庞大,各任务之间的依赖关系十分复杂。除此之外,每个任务内部拥有多个子任务,各子任务之间的依赖关系也很复杂,并且,每个子任务内部又包括多种执行逻辑。
现有技术中,通常采用oozie(一种工作流配置方式)提前配置各子任务的执行顺序。但是,对于由工作流触发执行的各子任务来说,需要等待上一层各子任务的所有执行逻辑全部执行结束才可以执行下一层子任务,这可能会降低任务的执行效率。
发明内容
本发明实施例的目的在于提供一种任务处理方法及装置,以实现提高任务的执行效率。具体技术方案如下:
第一方面,本发明实施例提供了一种任务处理方法,所述方法包括:
根据预设切分规则,将待处理任务切分为多个子任务,并配置各子任务的执行顺序;
根据所述各子任务的执行顺序,从目标子任务开始,按照从后向前的顺序,依次启动所述各子任务,得到所述待处理任务对应的有向无环图,其中,所述目标子任务为所述执行顺序中的最后一个子任务,所述有向无环图中的各计算结点分别对应一个子任务;
按照自顶向下的执行顺序,依次执行所述有向无环图中各层计算结点的执行逻辑,其中,在执行所述有向无环图中各层计算结点的执行逻辑时,并发执行处于同一层的各计算结点的执行逻辑。
可选的,所述根据所述各子任务的执行顺序,从目标子任务开始,按照从后向前的顺序,依次启动所述各子任务,得到所述待处理任务对应的有向无环图,包括:
从目标子任务开始,启动当前子任务,并根据配置的所述当前子任务的各上游子任务的任务信息,并发启动所述各上游子任务,直至所述执行顺序中的第一个子任务,得到所述待处理任务对应的有向无环图。
可选的,所述按照自顶向下的执行顺序,依次执行所述有向无环图中各层计算结点的执行逻辑,包括:
针对任一计算结点,判断该计算结点是否正在执行其他任务的子任务的执行逻辑;
若是,则等待所述其他任务的子任务的执行逻辑执行结束后,执行该计算结点对应的所述待处理任务的子任务的执行逻辑。
可选的,所述方法还包括:
针对任一计算结点,统计该计算结点的执行逻辑的执行次数及执行时长;
判断所述执行次数是否大于第一预设阈值,以及所述执行时长是否大于第二预设阈值;
若所述执行次数大于所述第一预设阈值,和/或,所述执行时长大于所述第二预设阈值,则输出提示信息,所述提示信息用于提示所述计算结点执行异常。
可选的,所述方法还包括:
获取待增加的子任务,以及配置的所述待增加的子任务在所述待处理任务中的执行顺序;
根据所述待增加的子任务在所述待处理任务中的执行顺序,确定所述有向无环图中所述待增加的子任务对应的计算结点的上一层计算结点和下一层计算结点;
在所述上一层计算结点和所述下一层计算结点之间,插入所述待增加的子任务对应的计算结点,得到更新的所述有向无环图。
可选的,接收计算结点删除指令;
根据所述计算结点删除指令,确定所述有向无环图中待删除的计算结点;
从所述有向无环图中删除所述待删除的计算结点,并将所述待删除的计算结点的下一层计算结点确定为所述待删除的计算结点的上一层计算结点的下一层计算结点,得到更新后的所述有向无环图。
第二方面,本发明实施例提供了一种任务处理装置,所述装置包括:
第一获取模块,用于根据预设切分规则,将待处理任务切分为多个子任务,并配置各子任务的执行顺序;
启动模块,用于根据所述各子任务的执行顺序,从目标子任务开始,按照从后向前的顺序,依次启动所述各子任务,得到所述待处理任务对应的有向无环图,其中,所述目标子任务为所述执行顺序中的最后一个子任务,所述有向无环图中的各计算结点分别对应一个子任务;
执行模块,用于按照自顶向下的执行顺序,依次执行所述有向无环图中各层计算结点的执行逻辑,其中,在执行所述有向无环图中各层计算结点的执行逻辑时,并发执行处于同一层的各计算结点的执行逻辑。
可选的,所述启动模块,具体用于从目标子任务开始,启动当前子任务,并根据配置的所述当前子任务的各上游子任务的任务信息,并发启动所述各上游子任务,直至所述执行顺序中的第一个子任务,得到所述待处理任务对应的有向无环图。
可选的,所述执行模块,具体用于针对任一计算结点,判断该计算结点是否正在执行其他任务的子任务的执行逻辑,若是,则等待所述其他任务的子任务的执行逻辑执行结束后,执行该计算结点对应的所述待处理任务的子任务的执行逻辑。
可选的,所述装置还包括:
统计模块,用于针对任一计算结点,统计该计算结点的执行逻辑的执行次数及执行时长;
判断模块,用于判断所述执行次数是否大于第一预设阈值,以及所述执行时长是否大于第二预设阈值;
提示模块,用于若所述执行次数大于所述第一预设阈值,和/或,所述执行时长大于所述第二预设阈值,则输出提示信息,所述提示信息用于提示所述计算结点执行异常。
可选的,所述装置还包括:
第二获取模块,用于获取待增加的子任务,以及配置的所述待增加的子任务在所述待处理任务中的执行顺序;
第一确定模块,用于根据所述待增加的子任务在所述待处理任务中的执行顺序,确定所述有向无环图中所述待增加的子任务对应的计算结点的上一层计算结点和下一层计算结点;
插入模块,用于在所述上一层计算结点和所述下一层计算结点之间,插入所述待增加的子任务对应的计算结点,得到更新的所述有向无环图。
可选的,所述装置还包括:
接收模块,用于接收计算结点删除指令;
第二确定模块,用于根据所述计算结点删除指令,确定所述有向无环图中待删除的计算结点;
删除模块,用于从所述有向无环图中删除所述待删除的计算结点,并将所述待删除的计算结点的下一层计算结点确定为所述待删除的计算结点的上一层计算结点的下一层计算结点,得到更新后的所述有向无环图。
第三方面,本发明实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,所述处理器、所述通信接口和所述存储器通过所述通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的所述计算机程序时,实现上述第一方面任一所述的任务处理方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面任一所述的任务处理方法。
本发明实施例提供的任务处理方法及装置,该方法包括:根据预设切分规则,将待处理任务切分为多个子任务,并配置各子任务的执行顺序;根据各子任务的执行顺序,从目标子任务开始,按照从后向前的顺序,依次启动各子任务,得到待处理任务对应的有向无环图,其中,目标子任务为执行顺序中的最后一个子任务,有向无环图中的各计算结点分别对应一个子任务;按照自顶向下的执行顺序,依次执行有向无环图中各层计算结点的执行逻辑,其中,在执行有向无环图中各层计算结点的执行逻辑时,并发执行处于同一层的各计算结点的执行逻辑。利用自底向上的方式启动各子任务,得到有向无环图,因此,可以知道每一层的哪些计算结点可以并发执行,并发执行这些处于同一层的各计算结点的执行逻辑,可以提高任一层计算结点的执行逻辑的执行并发度,从而提高了任务的执行效率。
当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为本发明实施例提供的一种任务处理方法的实施例一的流程示意图;
图2为本发明实施例提供的一种有向无环图的示意图;
图3为本发明实施例提供的一种计算结点的示意图;
图4为本发明实施例提供的一种监控计算结点的示意图;
图5为本发明提供的一种可视化展示的示意图;
图6为本发明实施例提供的一种任务处理方法的应用场景;
图7为本发明实施例提供的一种任务处理方法的实施例二的流程示意图;
图8为本发明实施例提供的一种任务处理方法的实施例三的流程示意图;
图9为本发明实施例提供的一种任务处理装置的结构示意图;
图10为本发明实施例的电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
为了提高任务的执行效率,本发明实施例提供了一种任务处理方法及装置,以下分别进行详细说明。
图1为本发明实施例提供的一种任务处理方法的实施例一的流程示意图,如图1所示,本发明实施例的方法可以包括:
S101,根据预设切分规则,将待处理任务切分为多个子任务,并配置各子任务的执行顺序。
本发明实施例提供的任务处理方法应用于服务器。
其中,切分后的各子任务的执行顺序可以根据各子任务之间的数据依赖关系进行配置。例如,若子任务X依赖于子任务y,则将子任务X和子任务y的执行顺序配置为先执行子任务y再执行子任务x。
上述预设切分规则指的是将待处理任务切分为多个子任务时,尽可能保证最小粒度的切分,使得切分后的每个子任务还可以被其他任务重用。同时,当各任务的执行逻辑变更的时候,可以降低维护成本。
S102,根据各子任务的执行顺序,从目标子任务开始,按照从后向前的顺序,依次启动各子任务,得到待处理任务对应的有向无环图,其中,目标子任务为执行顺序中的最后一个子任务,有向无环图中的各计算结点分别对应一个子任务。
具体实现时,上述步骤S102可以为:从目标子任务开始,启动当前子任务,并根据配置的当前子任务的各上游子任务的任务信息,并发启动各上游子任务,直至执行顺序中的第一个子任务,得到待处理任务对应的有向无环图。其中,当前子任务的各上游子任务的任务信息可以是各上游子任务的执行顺序标识,该执行顺序标识指示当前子任务的各上游子任务可以并发启动,该任务信息也可以是子任务内的数据依赖关系,该数据依赖关系也可以指示当前子任务的各上游子任务可以并发启动。在本发明实施例中,不限定当前子任务的各上游子任务的任务信息,只要该任务信息可以指示当前子任务的各上游子任务可以并发启动即可。
举例说明,如果目标子任务c为将子任务a与子任务b相加,此时,目标子任务c的上游子任务为子任务a与子任务b,那么启动目标子任务c后,可以并发启动子任务a与子任务b。
S103,按照自顶向下的执行顺序,依次执行有向无环图中各层计算结点的执行逻辑,其中,在执行有向无环图中各层计算结点的执行逻辑时,并发执行处于同一层的各计算结点的执行逻辑。
举例说明,图2为本发明实施例提供的一种有向无环图的示意图,如图2所示。在图2中,由上述步骤S102得到的有向无环图包括计算结点A、B、C、D、E、F、G、H、I和J,计算结点A无上游子任务,从计算结点A出发,首先执行计算结点A的执行逻辑,其次并发执行处于同一层的计算结点B、计算结点C的执行逻辑,再并发执行处于同一层的计算结点D、计算结点E、计算结点F、计算结点G的执行逻辑,然后并发执行处于同一层的计算结点H、计算结点I的执行逻辑,最后再执行计算结点J的执行逻辑。
上述同一层的各计算结点的执行逻辑并发执行,并且上述各计算结点中的执行逻辑,可以并发执行也可以同步执行。例如,若一个计算结点内部的数据来自不同的平台(例如安卓、苹果)或者不同的地区,此时,基于该计算结点内部的数据的类型,可以并发或者同步处理该计算结点内部的数据。
具体实现时,图3为本发明实施例提供的一种计算结点的示意图,如图3所示,可以利用startTime记录计算结点中的执行逻辑的执行时间,runTimes记录计算结点中的执行逻辑的执行次数,Running记录计算结点中的执行逻辑的执行状态,unitName记录计算结点中的执行逻辑的名称,upstream记录该计算结点的上一层计算节点。关于计算结点中的执行逻辑处理,可以记录在processingUnit()中,然后通过startInternal()来进行processingUnit()的执行,此时,可以自由地设置并发执行还是同步执行计算结点中的执行逻辑;rollbackSelf可以用于回滚计算结点自身;rollback()可以用于计算结点中的数据错误的时候回滚整条任务链(即包含上游任务);done()可以用于判断该计算结点的执行逻辑是否执行完毕。
可选的,针对任一计算结点,判断该计算结点是否正在执行其他任务的子任务的执行逻辑;若该计算结点正在执行其他任务的子任务的执行逻辑,则等待其他任务的子任务的执行逻辑执行结束后,执行该计算结点对应的待处理任务的子任务的执行逻辑。具体实现时,图4为本发明实施例提供的一种监控计算结点的示意图,如图4所示,可以通过设置begin()、end()、running()、upstream()以及waiting()对每个计算结点进行监控,其中,begin()用于开始某个计算结点的监控,end()用于结束某个计算结点的监控,running()用于执行某个计算结点的监控,upstream()用于检验上游依赖的计算结点是否完成,若完成,才会运行running()部分,以及waiting()用于检查该计算结点是否正在被其他线程运行,若正在运行,等待完成即可,不需要再运行running()部分。
可选的,在每次任一计算结点执行对应的待处理任务的子任务的执行逻辑之后,可以记录该计算结点的执行状态。该计算结点的执行状态可以为正在执行任务A的子任务的执行逻辑的状态,也可以是任务A的子任务的执行逻辑执行结束的状态。若记录的该计算结点的执行状态为执行结束状态,其他任务例如任务B需要执行该计算结点时,可以直接获取到该计算结点的执行结束状态,然后执行该计算结点对应的任务B的子任务的执行逻辑。也就是说,这里的计算结点对应的子任务的执行逻辑是相同的,任务A、任务B中都需要执行该计算结点,但是每次该计算结点对应的待处理任务的子任务的执行逻辑只能在一个任务中被执行。
本发明实施例提供的任务处理方法,该方法包括:根据预设切分规则,将待处理任务切分为多个子任务,并配置各子任务的执行顺序;根据各子任务的执行顺序,从目标子任务开始,按照从后向前的顺序,依次启动各子任务,得到待处理任务对应的有向无环图,其中,目标子任务为执行顺序中的最后一个子任务,有向无环图中的各计算结点分别对应一个子任务;按照自顶向下的执行顺序,依次执行有向无环图中各层计算结点的执行逻辑,其中,在执行有向无环图中各层计算结点的执行逻辑时,并发执行处于同一层的各计算结点的执行逻辑。利用自底向上的方式启动各子任务,得到有向无环图,因此,可以知道每一层的哪些计算结点可以并发执行,并发执行这些处于同一层的各计算结点的执行逻辑,可以提高任一层计算结点的执行逻辑的执行并发度,从而提高了任务的执行效率。
可选的,在上述实施例一的基础上,本发明实施例提供的任务处理方法还可以监控各计算结点的执行逻辑的执行情况。监控各计算结点的执行逻辑的执行情况,具体可以包括以下步骤:
步骤a:针对任一计算结点,统计该计算结点的执行逻辑的执行次数及执行时长。
步骤b:判断执行次数是否大于第一预设阈值,以及执行时长是否大于第二预设阈值。
步骤c:若执行次数大于第一预设阈值,或者,执行时长大于第二预设阈值,或者,执行次数大于第一预设阈值,且执行时长大于第二预设阈值,则输出提示信息,该提示信息用于提示该计算结点执行异常。用户可以根据该提示信息及时发现计算结点的执行异常情况。
具体实现时,还可以判断其他需要执行该计算结点的执行逻辑的待处理任务是否已经在对应的线程中启动,若启动,则统计已启动的线程数量。并将统计的已启动的线程数量、该计算结点的执行逻辑的执行次数及执行时长存储在mysql(一个关系型数据库管理系统)中,然后将数据接入网页进行可视化展示。图5为本发明提供的一种可视化展示的示意图,如图5所示,用户可以通过图5所示的可视化展示的示意图,较为直观地看到当前任务的执行情况。
图6为本发明实施例提供的一种任务处理方法的应用场景,如图6所示,该任务处理方法具体在核心处理流程模块中施行,核心处理流程模块的输入可以有接口、mysql表和hive(一个数据仓库工具)表三个来源,经过核心处理流程模块的计算后,将结果数据存入mysql中,发送给接口,或者通过页面或者impala(一种查询系统)表的方式展示数据。
图7为本发明实施例提供的一种任务处理方法的实施例二的流程示意图,如图7所示,本发明实施例的方法可以包括:
S701,根据预设切分规则,将待处理任务切分为多个子任务,并配置各子任务的执行顺序。
S702,根据各子任务的执行顺序,从目标子任务开始,按照从后向前的顺序,依次启动各子任务,得到待处理任务对应的有向无环图,其中,目标子任务为执行顺序中的最后一个子任务,有向无环图中的各计算结点分别对应一个子任务。
S703,按照自顶向下的执行顺序,依次执行有向无环图中各层计算结点的执行逻辑,其中,在执行有向无环图中各层计算结点的执行逻辑时,并发执行处于同一层的各计算结点的执行逻辑。
上述步骤S701-步骤S703与图1所示实施例一中的步骤S101-S103类似,在此不再赘述。
S704,获取待增加的子任务,以及配置的待增加的子任务在待处理任务中的执行顺序。
S705,根据待增加的子任务在待处理任务中的执行顺序,确定有向无环图中待增加的子任务对应的计算结点的上一层计算结点和下一层计算结点。
S706,在上一层计算结点和下一层计算结点之间,插入待增加的子任务对应的计算结点,得到更新的有向无环图。
应用本发明实施例提供的任务处理方法,当需要增加其他子任务时,无需重新配置所有子任务在待处理任务中的执行顺序,只需配置待增加的子任务在待处理任务中的执行顺序,并且,根据待增加的子任务在待处理任务中的执行顺序,在有向无环图中待增加的子任务对应的计算结点的上一层计算结点和下一层计算结点之间,插入待增加的子任务对应的计算结点,就可以得到更新的有向无环图,从而缩短了处理时间。
图8为本发明实施例提供的一种任务处理方法的实施例三的流程示意图,如图8所示,本发明实施例的方法可以包括:
S801,根据预设切分规则,将待处理任务切分为多个子任务,并配置各子任务的执行顺序。
S802,根据各子任务的执行顺序,从目标子任务开始,按照从后向前的顺序,依次启动各子任务,得到待处理任务对应的有向无环图,其中,目标子任务为执行顺序中的最后一个子任务,有向无环图中的各计算结点分别对应一个子任务。
S803,按照自顶向下的执行顺序,依次执行有向无环图中各层计算结点的执行逻辑,其中,在执行有向无环图中各层计算结点的执行逻辑时,并发执行处于同一层的各计算结点的执行逻辑。
上述步骤S801-步骤S803与图1所示实施例一中的步骤S101-S103类似,在此不再赘述。
S804,接收计算结点删除指令。
S805,根据计算结点删除指令,确定有向无环图中待删除的计算结点。
S806,从有向无环图中删除待删除的计算结点,并将待删除的计算结点的下一层计算结点确定为待删除的计算结点的上一层计算结点的下一层计算结点,得到更新后的有向无环图。
应用本发明实施例提供的任务处理方法,当需要删除待处理任务中的子任务对应的计算结点时,只需从有向无环图中删除该计算结点,并将该计算结点的下一层计算结点确定为该计算结点的上一层计算结点的下一层计算结点,就可以得到更新后的有向无环图,无需更新其他计算结点对应的子任务在待处理任务中的执行顺序,从而缩短了处理时间。
相应于上述方法实施例,图9为本发明实施例提供的一种任务处理装置的结构示意图,如图9所示,该任务处理装置可以包括:
第一获取模块910,用于根据预设切分规则,将待处理任务切分为多个子任务,并配置各子任务的执行顺序;
启动模块920,用于根据各子任务的执行顺序,从目标子任务开始,按照从后向前的顺序,依次启动各子任务,得到待处理任务对应的有向无环图,其中,目标子任务为执行顺序中的最后一个子任务,有向无环图中的各计算结点分别对应一个子任务;
执行模块930,用于按照自顶向下的执行顺序,依次执行有向无环图中各层计算结点的执行逻辑,其中,在执行有向无环图中各层计算结点的执行逻辑时,并发执行处于同一层的各计算结点的执行逻辑。
可选的,上述启动模块920,具体用于从目标子任务开始,启动当前子任务,并根据配置的当前子任务的各上游子任务的任务信息,并发启动各上游子任务,直至执行顺序中的第一个子任务,得到待处理任务对应的有向无环图。
可选的,上述执行模块930,具体用于针对任一计算结点,判断该计算结点是否正在执行其他任务的子任务的执行逻辑,若是,则等待其他任务的子任务的执行逻辑执行结束后,执行该计算结点对应的待处理任务的子任务的执行逻辑。
可选的,上述装置还可以包括:
统计模块,用于针对任一计算结点,统计该计算结点的执行逻辑的执行次数及执行时长;
判断模块,用于判断执行次数是否大于第一预设阈值,以及执行时长是否大于第二预设阈值;
提示模块,用于若执行次数大于第一预设阈值,和/或,执行时长大于第二预设阈值,则输出提示信息,提示信息用于提示计算结点执行异常。
可选的,上述装置还可以包括:
第二获取模块,用于获取待增加的子任务,以及配置的待增加的子任务在待处理任务中的执行顺序;
第一确定模块,用于根据待增加的子任务在待处理任务中的执行顺序,确定有向无环图中待增加的子任务对应的计算结点的上一层计算结点和下一层计算结点;
插入模块,用于在上一层计算结点和下一层计算结点之间,插入待增加的子任务对应的计算结点,得到更新的有向无环图。
可选的,上述装置还可以包括:
接收模块,用于接收计算结点删除指令;
第二确定模块,用于根据计算结点删除指令,确定有向无环图中待删除的计算结点;
删除模块,用于从有向无环图中删除待删除的计算结点,并将待删除的计算结点的下一层计算结点确定为待删除的计算结点的上一层计算结点的下一层计算结点,得到更新后的有向无环图。
本发明实施例提供的任务处理装置,该装置包括:第一获取模块,用于根据预设切分规则,将待处理任务切分为多个子任务,并配置各子任务的执行顺序;启动模块,用于根据各子任务的执行顺序,从目标子任务开始,按照从后向前的顺序,依次启动各子任务,得到待处理任务对应的有向无环图,其中,目标子任务为执行顺序中的最后一个子任务,有向无环图中的各计算结点分别对应一个子任务;执行模块,用于按照自顶向下的执行顺序,依次执行有向无环图中各层计算结点的执行逻辑,其中,在执行有向无环图中各层计算结点的执行逻辑时,并发执行处于同一层的各计算结点的执行逻辑。利用自底向上的方式启动各子任务,得到有向无环图,因此,可以知道每一层的哪些计算结点可以并发执行,并发执行这些处于同一层的各计算结点的执行逻辑,可以提高任一层计算结点的执行逻辑的执行并发度,从而提高了任务的执行效率。
本发明实施例还提供了一种电子设备,如图10所示,包括处理器1001、通信接口1002、存储器1003和通信总线1004,其中,处理器1001,通信接口1002,存储器1003通过通信总线1004完成相互间的通信,
存储器1003,用于存放计算机程序;
处理器1001,用于执行存储器1003上所存放的计算机程序时,实现如下步骤:
根据预设切分规则,将待处理任务切分为多个子任务,并配置各子任务的执行顺序;
根据各子任务的执行顺序,从目标子任务开始,按照从后向前的顺序,依次启动各子任务,得到待处理任务对应的有向无环图,其中,目标子任务为执行顺序中的最后一个子任务,有向无环图中的各计算结点分别对应一个子任务;
按照自顶向下的执行顺序,依次执行有向无环图中各层计算结点的执行逻辑,其中,在执行有向无环图中各层计算结点的执行逻辑时,并发执行处于同一层的各计算结点的执行逻辑。
可选的,处理器1001在执行根据各子任务的执行顺序,从目标子任务开始,按照从后向前的顺序,依次启动各子任务,得到待处理任务对应的有向无环图步骤时,具体可以实现:
从目标子任务开始,启动当前子任务,并根据配置的当前子任务的各上游子任务的任务信息,并发启动各上游子任务,直至执行顺序中的第一个子任务,得到待处理任务对应的有向无环图。
可选的,处理器1001在执行按照自顶向下的执行顺序,依次执行有向无环图中各层计算结点的执行逻辑步骤时,具体可以实现:
针对任一计算结点,判断该计算结点是否正在执行其他任务的子任务的执行逻辑;
若是,则等待其他任务的子任务的执行逻辑执行结束后,执行该计算结点对应的待处理任务的子任务的执行逻辑。
可选的,处理器1001具体还可以实现:
针对任一计算结点,统计该计算结点的执行逻辑的执行次数及执行时长;
判断执行次数是否大于第一预设阈值,以及执行时长是否大于第二预设阈值;
若执行次数大于第一预设阈值,和/或,执行时长大于第二预设阈值,则输出提示信息,提示信息用于提示计算结点执行异常。
可选的,处理器1001具体还可以实现:
获取待增加的子任务,以及配置的待增加的子任务在待处理任务中的执行顺序;
根据待增加的子任务在待处理任务中的执行顺序,确定有向无环图中待增加的子任务对应的计算结点的上一层计算结点和下一层计算结点;
在上一层计算结点和下一层计算结点之间,插入待增加的子任务对应的计算结点,得到更新的有向无环图。
可选的,处理器1001具体还可以实现:
接收计算结点删除指令;
根据计算结点删除指令,确定有向无环图中待删除的计算结点;
从有向无环图中删除待删除的计算结点,并将待删除的计算结点的下一层计算结点确定为待删除的计算结点的上一层计算结点的下一层计算结点,得到更新后的有向无环图。
可见,应用本发明实施例,通过利用自底向上的方式启动各子任务,得到有向无环图,因此,可以知道每一层的哪些计算结点可以并发执行,并发执行这些处于同一层的各计算结点的执行逻辑,可以提高任一层计算结点的执行逻辑的执行并发度,从而提高了任务的执行效率。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一任务处理方法的步骤。
可见,应用本发明实施例,通过利用自底向上的方式启动各子任务,得到有向无环图,因此,可以知道每一层的哪些计算结点可以并发执行,并发执行这些处于同一层的各计算结点的执行逻辑,可以提高任一层计算结点的执行逻辑的执行并发度,从而提高了任务的执行效率。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例、电子设备实施例以及计算机可读存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (13)
1.一种任务处理方法,其特征在于,所述方法包括:
根据预设切分规则,将待处理任务切分为多个子任务,并配置各子任务的执行顺序;
根据所述各子任务的执行顺序,从目标子任务开始,按照从后向前的顺序,依次启动所述各子任务,得到所述待处理任务对应的有向无环图,其中,所述目标子任务为所述执行顺序中的最后一个子任务,所述有向无环图中的各计算结点分别对应一个子任务;
按照自顶向下的执行顺序,依次执行所述有向无环图中各层计算结点的执行逻辑,其中,在执行所述有向无环图中各层计算结点的执行逻辑时,并发执行处于同一层的各计算结点的执行逻辑。
2.根据权利要求1所述的方法,其特征在于,所述根据所述各子任务的执行顺序,从目标子任务开始,按照从后向前的顺序,依次启动所述各子任务,得到所述待处理任务对应的有向无环图,包括:
从目标子任务开始,启动当前子任务,并根据配置的所述当前子任务的各上游子任务的任务信息,并发启动所述各上游子任务,直至所述执行顺序中的第一个子任务,得到所述待处理任务对应的有向无环图。
3.根据权利要求1所述的方法,其特征在于,所述按照自顶向下的执行顺序,依次执行所述有向无环图中各层计算结点的执行逻辑,包括:
针对任一计算结点,判断该计算结点是否正在执行其他任务的子任务的执行逻辑;
若是,则等待所述其他任务的子任务的执行逻辑执行结束后,执行该计算结点对应的所述待处理任务的子任务的执行逻辑。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
针对任一计算结点,统计该计算结点的执行逻辑的执行次数及执行时长;
判断所述执行次数是否大于第一预设阈值,以及所述执行时长是否大于第二预设阈值;
若所述执行次数大于所述第一预设阈值,和/或,所述执行时长大于所述第二预设阈值,则输出提示信息,所述提示信息用于提示所述计算结点执行异常。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取待增加的子任务,以及配置的所述待增加的子任务在所述待处理任务中的执行顺序;
根据所述待增加的子任务在所述待处理任务中的执行顺序,确定所述有向无环图中所述待增加的子任务对应的计算结点的上一层计算结点和下一层计算结点;
在所述上一层计算结点和所述下一层计算结点之间,插入所述待增加的子任务对应的计算结点,得到更新的所述有向无环图。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收计算结点删除指令;
根据所述计算结点删除指令,确定所述有向无环图中待删除的计算结点;
从所述有向无环图中删除所述待删除的计算结点,并将所述待删除的计算结点的下一层计算结点确定为所述待删除的计算结点的上一层计算结点的下一层计算结点,得到更新后的所述有向无环图。
7.一种任务处理装置,其特征在于,所述装置包括:
第一获取模块,用于根据预设切分规则,将待处理任务切分为多个子任务,并配置各子任务的执行顺序;
启动模块,用于根据所述各子任务的执行顺序,从目标子任务开始,按照从后向前的顺序,依次启动所述各子任务,得到所述待处理任务对应的有向无环图,其中,所述目标子任务为所述执行顺序中的最后一个子任务,所述有向无环图中的各计算结点分别对应一个子任务;
执行模块,用于按照自顶向下的执行顺序,依次执行所述有向无环图中各层计算结点的执行逻辑,其中,在执行所述有向无环图中各层计算结点的执行逻辑时,并发执行处于同一层的各计算结点的执行逻辑。
8.根据权利要求7所述的装置,其特征在于,
所述启动模块,具体用于从目标子任务开始,启动当前子任务,并根据配置的所述当前子任务的各上游子任务的任务信息,并发启动所述各上游子任务,直至所述执行顺序中的第一个子任务,得到所述待处理任务对应的有向无环图。
9.根据权利要求7所述的装置,其特征在于,
所述执行模块,具体用于针对任一计算结点,判断该计算结点是否正在执行其他任务的子任务的执行逻辑,若是,则等待所述其他任务的子任务的执行逻辑执行结束后,执行该计算结点对应的所述待处理任务的子任务的执行逻辑。
10.根据权利要求7所述的装置,其特征在于,所述装置还包括:
统计模块,用于针对任一计算结点,统计该计算结点的执行逻辑的执行次数及执行时长;
判断模块,用于判断所述执行次数是否大于第一预设阈值,以及所述执行时长是否大于第二预设阈值;
提示模块,用于若所述执行次数大于所述第一预设阈值,和/或,所述执行时长大于所述第二预设阈值,则输出提示信息,所述提示信息用于提示所述计算结点执行异常。
11.根据权利要求7所述的装置,其特征在于,所述装置还包括:
第二获取模块,用于获取待增加的子任务,以及配置的所述待增加的子任务在所述待处理任务中的执行顺序;
第一确定模块,用于根据所述待增加的子任务在所述待处理任务中的执行顺序,确定所述有向无环图中所述待增加的子任务对应的计算结点的上一层计算结点和下一层计算结点;
插入模块,用于在所述上一层计算结点和所述下一层计算结点之间,插入所述待增加的子任务对应的计算结点,得到更新的所述有向无环图。
12.根据权利要求7所述的装置,其特征在于,所述装置还包括:
接收模块,用于接收计算结点删除指令;
第二确定模块,用于根据所述计算结点删除指令,确定所述有向无环图中待删除的计算结点;
删除模块,用于从所述有向无环图中删除所述待删除的计算结点,并将所述待删除的计算结点的下一层计算结点确定为所述待删除的计算结点的上一层计算结点的下一层计算结点,得到更新后的所述有向无环图。
13.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,所述处理器、所述通信接口和所述存储器通过所述通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的所述计算机程序时,实现权利要求1-6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910718570.7A CN110427259A (zh) | 2019-08-05 | 2019-08-05 | 一种任务处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910718570.7A CN110427259A (zh) | 2019-08-05 | 2019-08-05 | 一种任务处理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110427259A true CN110427259A (zh) | 2019-11-08 |
Family
ID=68412688
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910718570.7A Pending CN110427259A (zh) | 2019-08-05 | 2019-08-05 | 一种任务处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110427259A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111258740A (zh) * | 2020-02-03 | 2020-06-09 | 北京无限光场科技有限公司 | 一种用于启动应用程序的方法、装置和电子设备 |
CN111538714A (zh) * | 2020-04-24 | 2020-08-14 | 咪咕文化科技有限公司 | 一种指令执行方法、装置、电子设备和存储介质 |
CN113553161A (zh) * | 2021-08-03 | 2021-10-26 | 北京八分量信息科技有限公司 | 基于时间开销进行异构任务的刻画方法、装置及相关产品 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102541875A (zh) * | 2010-12-16 | 2012-07-04 | 北京大学 | 有向无环图的关系型节点数据的存取方法、装置及系统 |
CN104778185A (zh) * | 2014-01-15 | 2015-07-15 | 中国移动通信集团北京有限公司 | 异常结构化查询语言sql语句确定方法及服务器 |
US20170185448A1 (en) * | 2015-12-29 | 2017-06-29 | Capital One Services, Llc | Systems and Methods for Caching Task Execution |
CN107291547A (zh) * | 2016-03-31 | 2017-10-24 | 阿里巴巴集团控股有限公司 | 一种任务调度处理方法、装置及系统 |
CN108958920A (zh) * | 2018-07-13 | 2018-12-07 | 众安在线财产保险股份有限公司 | 一种分布式任务调度方法及系统 |
-
2019
- 2019-08-05 CN CN201910718570.7A patent/CN110427259A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102541875A (zh) * | 2010-12-16 | 2012-07-04 | 北京大学 | 有向无环图的关系型节点数据的存取方法、装置及系统 |
CN104778185A (zh) * | 2014-01-15 | 2015-07-15 | 中国移动通信集团北京有限公司 | 异常结构化查询语言sql语句确定方法及服务器 |
US20170185448A1 (en) * | 2015-12-29 | 2017-06-29 | Capital One Services, Llc | Systems and Methods for Caching Task Execution |
CN107291547A (zh) * | 2016-03-31 | 2017-10-24 | 阿里巴巴集团控股有限公司 | 一种任务调度处理方法、装置及系统 |
CN108958920A (zh) * | 2018-07-13 | 2018-12-07 | 众安在线财产保险股份有限公司 | 一种分布式任务调度方法及系统 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111258740A (zh) * | 2020-02-03 | 2020-06-09 | 北京无限光场科技有限公司 | 一种用于启动应用程序的方法、装置和电子设备 |
CN111538714A (zh) * | 2020-04-24 | 2020-08-14 | 咪咕文化科技有限公司 | 一种指令执行方法、装置、电子设备和存储介质 |
CN111538714B (zh) * | 2020-04-24 | 2023-10-17 | 咪咕文化科技有限公司 | 一种指令执行方法、装置、电子设备和存储介质 |
CN113553161A (zh) * | 2021-08-03 | 2021-10-26 | 北京八分量信息科技有限公司 | 基于时间开销进行异构任务的刻画方法、装置及相关产品 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10692048B2 (en) | Apparatus and method for generating a chronological timesheet | |
CN110427259A (zh) | 一种任务处理方法及装置 | |
US20170102986A1 (en) | Automatic correlation of dynamic system events within computing devices | |
CN109271321B (zh) | 一种贡献代码数统计方法及装置 | |
CN108255620B (zh) | 一种业务逻辑处理方法、装置、业务服务器及系统 | |
CN109918437A (zh) | 分布式数据处理方法、装置及数据资产管理系统 | |
CN109672936B (zh) | 一种视频评估集的确定方法、装置及电子设备 | |
US9268624B2 (en) | Application monitoring of related activities across multiple threads | |
EP2806383A1 (en) | Device and method for collecting and managing information of equipment | |
CN113792341B (zh) | 应用程序的隐私合规自动化检测方法、装置、设备及介质 | |
WO2020233347A1 (zh) | 工作流管理系统的测试方法、装置、存储介质及终端设备 | |
CN109033188A (zh) | 一种元数据采集方法、装置、服务器和计算机可读介质 | |
US11138086B2 (en) | Collecting hardware performance data | |
US10073938B2 (en) | Integrated circuit design verification | |
US9298468B2 (en) | Monitoring processing time in a shared pipeline | |
CN107168900B (zh) | 一种配置acl表项的方法和装置 | |
CN108038233A (zh) | 一种采集文章的方法、装置、电子设备及存储介质 | |
CN109992695A (zh) | 一种视频信息查询方法及装置 | |
WO2020171211A1 (ja) | 情報処理装置および方法 | |
US20140089058A1 (en) | Estimation of effects of process customization | |
CN107506299B (zh) | 一种代码分析方法及终端设备 | |
US20150242786A1 (en) | Integrating process context from heterogeneous workflow containers to optimize workflow performance | |
CN110457304A (zh) | 数据清洗方法、装置、电子设备及可读存储介质 | |
KR20210055934A (ko) | 기계 학습 모델을 개발하기 위한 자가학습 시스템 | |
CN109460346A (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 |