CN117472533A - 任务的调度处理方法、装置、存储介质及电子设备 - Google Patents

任务的调度处理方法、装置、存储介质及电子设备 Download PDF

Info

Publication number
CN117472533A
CN117472533A CN202311435915.0A CN202311435915A CN117472533A CN 117472533 A CN117472533 A CN 117472533A CN 202311435915 A CN202311435915 A CN 202311435915A CN 117472533 A CN117472533 A CN 117472533A
Authority
CN
China
Prior art keywords
result set
task
target task
incomplete
data
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
CN202311435915.0A
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.)
Tianyi Electronic Commerce Co Ltd
Original Assignee
Tianyi Electronic Commerce Co 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 Tianyi Electronic Commerce Co Ltd filed Critical Tianyi Electronic Commerce Co Ltd
Priority to CN202311435915.0A priority Critical patent/CN117472533A/zh
Publication of CN117472533A publication Critical patent/CN117472533A/zh
Pending legal-status Critical Current

Links

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
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种任务的调度处理方法、装置、存储介质及电子设备。该方法包括:在执行目标任务之前,从元数据库获取目标任务需要的结果集信息;基于结果集信息确定多个结果集中的完整结果集和不完整结果集,并根据不完整结果集判断是否允许目标任务提前运行;在允许目标任务提前运行的情况下,向目标任务调度完整结果集和不完整结果集中的数据,并在不完整结果集所属的上游任务的执行过程中,向目标任务调度不完整结果集中的增量数据,直至不完整结果集变更为完整结果集。通过本申请,解决了相关技术中下游任务需等待上游任务全部执行完成后才能开始运行,少数上游任务执行较慢会影响任务的整体运行效率的问题。

Description

任务的调度处理方法、装置、存储介质及电子设备
技术领域
本申请涉及任务调度领域,具体而言,涉及一种任务的调度处理方法、装置、存储介质及电子设备。
背景技术
在大数据领域中,任务调度平台的应用非常广泛,一个高效的调度平台可以为企业带来极大的收益。
在实际生产中,任务调度流程看做一个DAG(Directed Acyclic Graph,有向无环图),由于大部分任务会依赖于上游任务的结果,因此在进行任务调度时,下游任务需等待上游任务全部执行完成后才能开始运行,但当某个待执行的下游任务的多数上游任务执行较快,而少数上游任务执行较慢时,为保证执行任务时所需数据的数据完整性,待执行的下游任务需等待最慢的上游任务执行完毕后才能执行,影响待执行的下游任务的时效性,从而影响多层任务的整体执行效率。
针对相关技术中下游任务需等待上游任务全部执行完成后才能开始运行,少数上游任务执行较慢会影响任务的整体运行效率的问题,目前尚未提出有效的解决方案。
发明内容
本申请提供一种任务的调度处理方法、装置、存储介质及电子设备,以解决相关技术中下游任务需等待上游任务全部执行完成后才能开始运行,少数上游任务执行较慢会影响任务的整体运行效率的问题。
根据本申请的一个方面,提供了一种任务的调度处理方法。该方法包括:在执行目标任务之前,从元数据库获取目标任务需要的结果集信息,其中,结果集信息中包含多个结果集的完整度,多个结果集是指目标任务依赖的上游任务的结果集,每个上游任务在运行过程中更新对应结果集中的数据;基于结果集信息确定多个结果集中的完整结果集和不完整结果集,并根据不完整结果集判断是否允许目标任务提前运行;在允许目标任务提前运行的情况下,向目标任务调度完整结果集和不完整结果集中的数据,并在不完整结果集所属的上游任务的执行过程中,向目标任务调度不完整结果集中的增量数据,直至不完整结果集变更为完整结果集,其中,目标任务在接收数据的过程中分批数据执行任务。
可选地,根据不完整结果集判断是否允许目标任务提前运行包括:判断不完整结果集的数量是否小于等于预设数量;在不完整结果集的数量小于等于预设数量的情况下,判断每个不完整结果集是否携带有预设标签,其中,预设标签指示目标任务支持基于分批接收到的数据分批执行任务;在所有不完整结果集携带有预设标签的情况下,确定允许目标任务提前运行。
可选地,目标任务依赖的每个上游任务至少包括一个结果集,在一个上游任务包括两个以上的结果集的情况下,目标任务依赖的结果集小于等于一个上游任务包括的所有结果集。
可选地,在不完整结果集所属的上游任务的执行过程中,向目标任务调度不完整结果集中的增量数据,直至不完整结果集变更为完整结果集包括:按照预设调度规则分批向目标任务调度不完整结果集中的增量数据,并在每调度完成一批增量数据的情况下,为已调度的增量数据打上已调度标签,直至不完整结果集变更为完整结果集,且变更后的结果集中的所有数据均携带已调度标签,其中,目标任务基于分批接收到的数据分批执行任务。
可选地,按照预设调度规则分批向目标任务调度不完整结果集中的增量数据包括:每隔预设时间间隔获取不完整结果集中的未调度的增量数据,并向目标任务调度未调度的增量数据。
可选地,按照预设调度规则分批向目标任务调度不完整结果集中的增量数据包括:检测不完整结果集中生成的未调度的增量数据是否达到预设数据量,在未调度的增量数据每次达到预设数据量的情况下,向目标任务调度预设数据量的未调度的增量数据。
可选地,按照预设调度规则分批向目标任务调度不完整结果集中的剩余数据包括:每隔预设时间间隔判断不完整结果集中的未调度的增量数据是否大于等于预设数据量;在未调度的增量数据大于等于预设数据量的情况下,将未调度的增量数据调度至目标任务;在未调度的增量数据小于预设数据量的情况下,在预设时间间隔之后再次判断未调度的增量数据是否大于等于预设数据量,直至未调度的增量数据大于等于预设数据量,将未调度的增量数据调度至目标任务。
根据本申请的另一方面,提供了一种任务的调度处理装置。该装置包括:获取单元,用于在执行目标任务之前,从元数据库获取目标任务需要的结果集信息,其中,结果集信息中包含多个结果集的完整度,多个结果集是指目标任务依赖的上游任务的结果集,每个上游任务在运行过程中更新对应结果集中的数据;判断单元,用于基于结果集信息确定多个结果集中的完整结果集和不完整结果集,并根据不完整结果集判断是否允许目标任务提前运行;调度单元,用于在允许目标任务提前运行的情况下,向目标任务调度完整结果集和不完整结果集中的数据,并在不完整结果集所属的上游任务的执行过程中,向目标任务调度不完整结果集中的增量数据,直至不完整结果集变更为完整结果集,其中,目标任务在接收数据的过程中分批数据执行任务。
根据本发明实施例的另一方面,还提供了一种计算机存储介质,计算机存储介质用于存储程序,其中,程序运行时控制非易失性存储介质所在的设备执行一种任务的调度处理方法。
根据本发明实施例的另一方面,还提供了一种电子设备,包含处理器和存储器;存储器中存储有计算机可读指令,处理器用于运行计算机可读指令,其中,计算机可读指令运行时执行一种任务的调度处理方法。
通过本申请,采用以下步骤:在执行目标任务之前,从元数据库获取目标任务需要的结果集信息,其中,结果集信息中包含多个结果集的完整度,多个结果集是指目标任务依赖的上游任务的结果集,每个上游任务在运行过程中更新对应结果集中的数据;基于结果集信息确定多个结果集中的完整结果集和不完整结果集,并根据不完整结果集判断是否允许目标任务提前运行;在允许目标任务提前运行的情况下,向目标任务调度完整结果集和不完整结果集中的数据,并在不完整结果集所属的上游任务的执行过程中,向目标任务调度不完整结果集中的增量数据,直至不完整结果集变更为完整结果集,其中,目标任务在接收数据的过程中分批数据执行任务,解决了相关技术中下游任务需等待上游任务全部执行完成后才能开始运行,少数上游任务执行较慢会影响任务的整体运行效率的问题。在目标任务的大部分上游任务执行完成、少数任务未执行完成的情况下,生成完整结果集和不完整结果集,通过将目标任务依赖的完整结果集以及不完整结果集中的数据先输出给下游,让目标任务可以提前运行,进而达到了目标任务与不完整结果集对应的上游慢任务并行运行,提升任务的调度效率和任务的整体执行效率的效果。
附图说明
构成本申请的一部分的附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的任务的调度处理方法的流程图;
图2是本申请实施例的可选的任务调度的示意图一;
图3是本申请实施例的可选的任务调度的示意图二;
图4是本申请实施例的可选的任务调度的示意图三;
图5是本申请实施例的可选的任务调度的示意图四;
图6是本申请实施例的分批调度数据的示意图一;
图7是本申请实施例的分批调度数据的示意图二;
图8是本申请实施例的多层级任务的任务调度的示意图;
图9是根据本申请实施例的任务的调度处理装置的示意图;
图10是根据本申请实施例的电子设备的示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,本公开所涉及的相关信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于展示的数据、分析的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
为了便于描述,以下对本申请实施例涉及的部分名词或术语进行说明:
DAG:Directed Acyclic Graph,有向无环图,是一种在计算机科学和图论中常见的数据结构,DAG是由节点(或顶点)和有向边组成的图结构。每个边都有一个方向,从一个节点指向另一个节点。这表示在DAG中,有一定的流向,信息或操作从一个节点流向另一个节点,同时DAG中不存在形成环路的路径。
并发计算:是指在同一时间间隔内,有多个程序或线程同时进行数据处理或运算的过程。这种并发性可以发生在多个不同的计算实体之间,例如多核处理器、多线程处理器、分布式计算系统等。
根据本申请的实施例,提供了一种任务的调度处理方法。
图1是根据本申请实施例的任务的调度处理方法的流程图。该方法的执行主体为任务调度器,如图1所示,该方法包括以下步骤:
步骤S102,在执行目标任务之前,从元数据库获取目标任务需要的结果集信息,其中,结果集信息中包含多个结果集的完整度,多个结果集是指目标任务依赖的上游任务的结果集,每个上游任务在运行过程中更新对应结果集中的数据。
具体地,目标任务为待执行的下游任务,目标任务的执行需要依赖多个结果集,多个结果集是目标任务的上游任务在执行的过程中生成的结果数据构成的集合,目标任务需要接收任务调度器调度的结果集才可以执行,任务调度器关联有元数据库,调度器在元数据库中保存所有任务(包括上游任务和下游任务)的结果集状态和每个任务所需的结果集信息,任务执行完成后将对元数据库中对应的结果集状态进行更新。
结果集状态是指结果集所属的任务在运行了过程中是否生成该结果集的所有数据,结果集状态可以由结果集的完整度表征,结果集完整,则表明该结果集的所有数据都生成完成,结果集不完整,则表明该结果集的存在未生成完成的数据。
步骤S104,基于结果集信息确定多个结果集中的完整结果集和不完整结果集,并根据不完整结果集判断是否允许目标任务提前运行。
具体的,结果集的完整度为100%,说明是完整结果集,结果集的完整度小于100%,说明是不完整结果集。在多个结果集中具有不完整结果集的情况下,判断是否允许目标任务提前运行。
图2是本申请实施例的可选的任务调度的示意图一,如图2所示,下游任务为目标任务,目标任务依赖的上游任务包括快任务1、快任务1和慢任务1,快任务1和快任务2均已执行完成,它们的结果集是完整结果集,它至少存在一个不完整结果集。
需要说明的是,在相关技术中,目标任务需要等待慢任务1完成后才启动,慢任务1处于运行状态,则目标任务处于等待状态,在慢任务1需要较长时间才能执行完毕的情况下,会影响调度时效和目标任务的执行时效。因而,本实施例在特定情况下,在某个上游任务未完全执行完成时,允许下游目标任务时提前运行,使得目标任务和未完成的上游任务并行运行,从而提高任务的执行效率。
可以根据不完整结果集的数量和属性确定是否允许目标任务提前运行,可选地,在本申请实施例提供的任务的调度处理方法中,根据不完整结果集判断是否允许目标任务提前运行包括:判断不完整结果集的数量是否小于等于预设数量;在不完整结果集的数量小于等于预设数量的情况下,判断每个不完整结果集是否携带有预设标签,其中,预设标签指示目标任务支持基于分批接收到的数据分批执行任务;在所有不完整结果集携带有预设标签的情况下,确定允许目标任务提前运行。
需要说明的是,在不完整结果集的数量太多的情况下,会影响目标任务的执行,而且一些结果集的完整性决定了目标任务是否能够启动,若这类任务不完整则目标任务无法开始执行。因而,对于完整度不影响目标任务的启动的结果集,则打上预设标签,在允许目标任务提前运行之前,需要先判断不完整结果集的数量是否小于等于预设数量,且不完整结果集是否都携带预设标签,若任一条件不满足,则不允许目标任务提前运行,若两个条件都满足,则允许目标任务提前运行。例如,预设数量可以为2,在不完整结果集的数量小于等于2,且所有不完整结果集都携带预设标签的情况下,允许目标任务提前运行。
步骤S106,在允许目标任务提前运行的情况下,向目标任务调度完整结果集和不完整结果集中的数据,并在不完整结果集所属的上游任务的执行过程中,向目标任务调度不完整结果集中的增量数据,直至不完整结果集变更为完整结果集,其中,目标任务在接收数据的过程中分批数据执行任务。
具体的,允许目标任务提前运行是指允许目标任务在不完整结果集对应的上游任务执行完毕之前运行,如图2所示,目标任务依赖的上游任务包括快任务1、快任务1和慢任务1,快任务1和快任务2均已执行完成,慢任务1未完成,允许目标任务在慢任务1未完成之前提前运行。目标任务的运行需要依赖上游任务的结果集,因而,在不完整结果集对应的上游任务执行完毕之前运行,任务调度器向目标任务调度完整结果集中的数据以及不完整结果集中已有的数据,使得目标任务可以和未完成的上游任务并行执行,从而提高任务整体的运行效率。不完整结果集所属的上游任务的执行过程中,不完整结果集中不断产生增量数据,直至成为完整结果集,在这个过程中,任务调度器不断向目标任务调度不完整结果集中的增量数据,从而保证目标任务的数据处理的完整性。
本申请实施例提供的任务的调度处理方法,通过在执行目标任务之前,从元数据库获取目标任务需要的结果集信息,其中,结果集信息中包含多个结果集的完整度,多个结果集是指目标任务依赖的上游任务的结果集,每个上游任务在运行过程中更新对应结果集中的数据;基于结果集信息确定多个结果集中的完整结果集和不完整结果集,并根据不完整结果集判断是否允许目标任务提前运行;在允许目标任务提前运行的情况下,向目标任务调度完整结果集和不完整结果集中的数据,并在不完整结果集所属的上游任务的执行过程中,向目标任务调度不完整结果集中的增量数据,直至不完整结果集变更为完整结果集,其中,目标任务在接收数据的过程中分批数据执行任务,解决了相关技术中下游任务需等待上游任务全部执行完成后才能开始运行,少数上游任务执行较慢会影响任务的整体运行效率的问题。在目标任务的大部分上游任务执行完成、少数任务未执行完成的情况下,生成完整结果集和不完整结果集,通过将目标任务依赖的完整结果集以及不完整结果集中的数据先输出给下游,让目标任务可以提前运行,进而达到了目标任务与不完整结果集对应的上游慢任务并行运行,提升任务的调度效率和任务的整体执行效率的效果。
在相关技术中,目标任务需要等待所依赖的所有上游任务执行完毕再执行,需要说明的,目标任务执行时具体依赖的是上游任务的结果集,上游任务可以包含多个结果集,根据业务需求,下游任务可以仅依赖一个上游任务的部分结果集,而非依赖全部结果集,本申请将下游任务的执行时的依赖关系从任务维度变更至结果集维度,可选地,在本申请实施例提供的任务的调度处理方法中,目标任务依赖的每个上游任务至少包括一个结果集,在一个上游任务包括两个以上的结果集的情况下,目标任务依赖的结果集小于等于一个上游任务包括的所有结果集。
图3是本申请实施例的可选的任务调度的示意图二,如图3所示,假设目标任务依赖于n个结果集,当n-1个结果集处于完成状态时,该任务即可运行,具体的,目标任务依赖于快任务1的结果集A和结果集B、快任务1的结果集C、慢任务1的结果集D,在这些结果集中仅剩结果集D尚未完成,此时目标任务可以开始执行。也即,目标任务与慢任务1并发执行,以提高任务的整体执行效率。
图4是本申请实施例的可选的任务调度的示意图三,如图4所示,一个上游任务可以输出多个结果集,下游任务仅需根据自身所需结果集进行判断是否执行,而不需要依赖任务完成状态,具体的,快任务1对应结果集A和结果集B,此时结果集B已完成,结果集A未完成,因此快任务1任务还处于运行中,目标任务依赖于结果集B、结果集C和结果集D,此时仅有结果集D未完成,目标任务可以开始执行,与快任务1并发执行,以提高任务的整体执行效率。
为了保证目标任务的数据处理的完整性,可选地,在本申请实施例提供的任务的调度处理方法中,在不完整结果集所属的上游任务的执行过程中,向目标任务调度不完整结果集中的增量数据,直至不完整结果集变更为完整结果集包括:按照预设调度规则分批向目标任务调度不完整结果集中的增量数据,并在每调度完成一批增量数据的情况下,为已调度的增量数据打上已调度标签,直至不完整结果集变更为完整结果集,且变更后的结果集中的所有数据均携带已调度标签,其中,目标任务基于分批接收到的数据分批执行任务。
图5是本申请实施例的可选的任务调度的示意图四,如图5所示,目标任务依赖的结果集包括结果集A、结果集B、结果集C和慢任务1的结果集,结果集A、结果集B和结果集C均为完整结果集,也是静态结果集,慢任务1的结果为不完整结果集,其中已完成的部分构成静态结果集,目标任务在开始执行时先使用这些静态数据集提前开始计算,同时,慢任务1还在持续更新自己的结果集,得到增量数据,在这个过程中,目标任务可使用慢任务1中不断产生的增量数据进行计算,任务调度器按照预设调度规则分批向目标任务调度慢任务1生成的增量数据,同时为已参与计算的增量数据打上已调度标签,防止重复计算,从而在保证数据处理的完整性的情况下提高了整体的任务处理效率。
预设调度规则可以为定时抽取批次数据的调度规则,可选地,在本申请实施例提供的任务的调度处理方法中,按照预设调度规则分批向目标任务调度不完整结果集中的增量数据包括:每隔预设时间间隔获取不完整结果集中的未调度的增量数据,并向目标任务调度未调度的增量数据。
图6是本申请实施例的分批调度数据的示意图一,如图6所示,任务调度器每隔相同时间间隔将上游任务已完成的增量数据调度给下游的目标任务,下游的目标任务使用最新的增量数据进行计算,每次抽取一批增量数据后,为该批次的增量数据打上已调度标签,防止重复计算。本实施例的调度方式可以保证下游任务每隔固定时间间隔能获取数据进行计算,从而防止下游任务空等待。
预设调度规则可以是按用户定义的数据量来抽取批次数据的调度规则,可选地,在本申请实施例提供的任务的调度处理方法中,按照预设调度规则分批向目标任务调度不完整结果集中的增量数据包括:检测不完整结果集中生成的未调度的增量数据是否达到预设数据量,在未调度的增量数据每次达到预设数据量的情况下,向目标任务调度预设数据量的未调度的增量数据。
图7是本申请实施例的分批调度数据的示意图二,如图7所示,每隔固定数据量大小将一批增量数据调度给下游的目标任务,同时为已调度的增量数据打上已调度标签,防止重复计算。
需要说明的是,任务启动计算往往需要进行资源分配、启动计算等操作,这些操作会消耗一部分资源,当反复启动少数据数据量的计算任务,会造成一定的资源浪费,本实施例设置预设数据量,使用固定大小抽取增量数据,保证每次启动计算的数据量达到批次设定量,可有效避免调度数据量太小、反复启动计算带来的资源浪费。
预设调度规则还可以根据时间和数据量综合确定,可选地,在本申请实施例提供的任务的调度处理方法中,按照预设调度规则分批向目标任务调度不完整结果集中的剩余数据包括:每隔预设时间间隔判断不完整结果集中的未调度的增量数据是否大于等于预设数据量;在未调度的增量数据大于等于预设数据量的情况下,将未调度的增量数据调度至目标任务;在未调度的增量数据小于预设数据量的情况下,在预设时间间隔之后再次判断未调度的增量数据是否大于等于预设数据量,直至未调度的增量数据大于等于预设数据量,将未调度的增量数据调度至目标任务。
具体的,任务调度器每隔相同时间间隔判断上游任务已完成的增量数据是否达到预设数据量,在未达到的情况下,说明数据量太小,为了避免小数据量频繁启动目标任务的资源浪费,可以在下一个时间间隔后再判断判断上游任务已完成的增量数据是否达到预设数据量,在达到的情况下,说明数据量足够,可以进行数据的调度。需要说明的是,在最后一笔已完成的增量数据小于预设数量量的情况下,也可以启动下游目标任务。通过本实施例,在保证下游任务不会长时间空等的同时,避免了小数据量的情况下频繁启动下游任务的问题。
需要说明的是,本实施例的任务的调度处理方法可以应用在多层级的任务的处理中,若多个层级的任务都满足并行计算条件,计算效率能够进一步提升,图8是本申请实施例的多层级任务的任务调度的示意图,如图8所示,当上层的下游任务1仅等待结果集D时,下游任务1即可开始计算,当下层的下游任务2仅等待结果集H时,下游任务2即可开始计算,从而实现多层级任务并行计算。
需要说明的是,本实施例下游任务的启动依赖于结果集状态,设任务所需的x个结果集所耗费的时间为rt1,rt2,rt3...rtx,一个任务可以有多个结果集,因此结果集完成的时间rt将小于等于其对应的任务完成时间t,由此可求出下游任务的等待时间T_optimized:T_optimized=second_largest(rt1,rt2,rt3...rtx)。在相关技术中,下游任务的启动依赖于结果集状态上游任务状态,设上游n个任务所耗费的时间为t1,t2,t3...tn,由此可得下游任务的等待时间T_traditional:T_traditional=max(t1,t2,t3...tn)。
本实施例的任务的调度方法,在某个任务所依赖的某个结果集产生时间与其余差距较大时,能极大地提升计算效率,当整个链路中多个层级均满足本并行计算条件时,计算效率能更进一步提升,从而提高整个链路的任务执行效率。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例还提供了一种任务的调度处理装置,需要说明的是,本申请实施例的任务的调度处理装置可以用于执行本申请实施例所提供的用于任务的调度处理方法。以下对本申请实施例提供的任务的调度处理装置进行介绍。
图9是根据本申请实施例的任务的调度处理装置的示意图。如图9所示,该装置包括:获取单元902、判断单元904和调度单元906。
具体地,获取单元902,用于在执行目标任务之前,从元数据库获取目标任务需要的结果集信息,其中,结果集信息中包含多个结果集的完整度,多个结果集是指目标任务依赖的上游任务的结果集,每个上游任务在运行过程中更新对应结果集中的数据。
判断单元904,用于基于结果集信息确定多个结果集中的完整结果集和不完整结果集,并根据不完整结果集判断是否允许目标任务提前运行。
调度单元906,用于在允许目标任务提前运行的情况下,向目标任务调度完整结果集和不完整结果集中的数据,并在不完整结果集所属的上游任务的执行过程中,向目标任务调度不完整结果集中的增量数据,直至不完整结果集变更为完整结果集,其中,目标任务在接收数据的过程中分批数据执行任务。
本申请实施例提供的任务的调度处理装置,通过获取单元902,在执行目标任务之前,从元数据库获取目标任务需要的结果集信息,其中,结果集信息中包含多个结果集的完整度,多个结果集是指目标任务依赖的上游任务的结果集,每个上游任务在运行过程中更新对应结果集中的数据;判断单元904,基于结果集信息确定多个结果集中的完整结果集和不完整结果集,并根据不完整结果集判断是否允许目标任务提前运行;调度单元906,在允许目标任务提前运行的情况下,向目标任务调度完整结果集和不完整结果集中的数据,并在不完整结果集所属的上游任务的执行过程中,向目标任务调度不完整结果集中的增量数据,直至不完整结果集变更为完整结果集,其中,目标任务在接收数据的过程中分批数据执行任务,解决了相关技术中下游任务需等待上游任务全部执行完成后才能开始运行,少数上游任务执行较慢会影响任务的整体运行效率的问题,在目标任务的大部分上游任务执行完成、少数任务未执行完成的情况下,生成完整结果集和不完整结果集,通过将目标任务依赖的完整结果集以及不完整结果集中的数据先输出给下游,让目标任务可以提前运行,进而达到了目标任务与不完整结果集对应的上游慢任务并行运行,提升任务的调度效率和任务的整体执行效率的效果。
可选地,在本申请实施例提供的任务的调度处理装置中,判断单元904包括:第一判断模块,用于判断不完整结果集的数量是否小于等于预设数量;第二判断模块,用于在不完整结果集的数量小于等于预设数量的情况下,判断每个不完整结果集是否携带有预设标签,其中,预设标签指示目标任务支持基于分批接收到的数据分批执行任务;确定模块,用于在所有不完整结果集携带有预设标签的情况下,确定允许目标任务提前运行。
可选地,在本申请实施例提供的任务的调度处理装置中,目标任务依赖的每个上游任务至少包括一个结果集,在一个上游任务包括两个以上的结果集的情况下,目标任务依赖的结果集小于等于一个上游任务包括的所有结果集。
可选地,在本申请实施例提供的任务的调度处理装置中,调度单元906包括:调度模块,用于按照预设调度规则分批向目标任务调度不完整结果集中的增量数据,并在每调度完成一批增量数据的情况下,为已调度的增量数据打上已调度标签,直至不完整结果集变更为完整结果集,且变更后的结果集中的所有数据均携带已调度标签,其中,目标任务基于分批接收到的数据分批执行任务。
可选地,在本申请实施例提供的任务的调度处理装置中,调度模块包括第一子调度模块,第一子调度模块用于每隔预设时间间隔获取不完整结果集中的未调度的增量数据,并向目标任务调度未调度的增量数据。
可选地,在本申请实施例提供的任务的调度处理装置中,调度模块还包括第二子调度模块,第二子调度模块用于检测不完整结果集中生成的未调度的增量数据是否达到预设数据量,在未调度的增量数据每次达到预设数据量的情况下,向目标任务调度预设数据量的未调度的增量数据。
可选地,在本申请实施例提供的任务的调度处理装置中,调度模块还包括第三子调度模块,第三子调度模块用于每隔预设时间间隔判断不完整结果集中的未调度的增量数据是否大于等于预设数据量;在未调度的增量数据大于等于预设数据量的情况下,将未调度的增量数据调度至目标任务;在未调度的增量数据小于预设数据量的情况下,在预设时间间隔之后再次判断未调度的增量数据是否大于等于预设数据量,直至未调度的增量数据大于等于预设数据量,将未调度的增量数据调度至目标任务。
上述任务的调度处理装置包括处理器和存储器,上述获取单元、判断单元和调度单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来解决相关技术中下游任务需等待上游任务全部执行完成后才能开始运行,少数上游任务执行较慢会影响任务的整体运行效率的问题。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本申请实施例还提供了一种计算机存储介质,计算机存储介质用于存储程序,其中,程序运行时控制非易失性存储介质所在的设备执行一种任务的调度处理方法:在执行目标任务之前,从元数据库获取目标任务需要的结果集信息,其中,结果集信息中包含多个结果集的完整度,多个结果集是指目标任务依赖的上游任务的结果集,每个上游任务在运行过程中更新对应结果集中的数据;基于结果集信息确定多个结果集中的完整结果集和不完整结果集,并根据不完整结果集判断是否允许目标任务提前运行;在允许目标任务提前运行的情况下,向目标任务调度完整结果集和不完整结果集中的数据,并在不完整结果集所属的上游任务的执行过程中,向目标任务调度不完整结果集中的增量数据,直至不完整结果集变更为完整结果集,其中,目标任务在接收数据的过程中分批数据执行任务。
本申请实施例还提供了一种电子设备,图10是根据本申请实施例的电子设备的示意图,如图10所示,电子设备1001包含处理器和存储器;存储器中存储有计算机可读指令,处理器用于运行计算机可读指令,其中,计算机可读指令运行时执行一种任务的调度处理方法。本文中的电子设备可以是服务器、PC、PAD、手机等。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (10)

1.一种任务的调度处理方法,其特征在于,包括:
在执行目标任务之前,从元数据库获取所述目标任务需要的结果集信息,其中,所述结果集信息中包含多个结果集的完整度,所述多个结果集是指所述目标任务依赖的上游任务的结果集,每个上游任务在运行过程中更新对应结果集中的数据;
基于所述结果集信息确定所述多个结果集中的完整结果集和不完整结果集,并根据所述不完整结果集判断是否允许所述目标任务提前运行;
在允许所述目标任务提前运行的情况下,向所述目标任务调度所述完整结果集和所述不完整结果集中的数据,并在所述不完整结果集所属的上游任务的执行过程中,向所述目标任务调度所述不完整结果集中的增量数据,直至所述不完整结果集变更为完整结果集,其中,所述目标任务在接收数据的过程中分批数据执行任务。
2.根据权利要求1所述的方法,其特征在于,根据所述不完整结果集判断是否允许所述目标任务提前运行包括:
判断所述不完整结果集的数量是否小于等于预设数量;
在所述不完整结果集的数量小于等于所述预设数量的情况下,判断每个不完整结果集是否携带有预设标签,其中,所述预设标签指示所述目标任务支持基于分批接收到的数据分批执行任务;
在所有不完整结果集携带有所述预设标签的情况下,确定允许所述目标任务提前运行。
3.根据权利要求1所述的方法,其特征在于,所述目标任务依赖的每个上游任务至少包括一个结果集,在一个上游任务包括两个以上的结果集的情况下,所述目标任务依赖的结果集小于等于一个上游任务包括的所有结果集。
4.根据权利要求1所述的方法,其特征在于,在所述不完整结果集所属的上游任务的执行过程中,向所述目标任务调度所述不完整结果集中的增量数据,直至所述不完整结果集变更为完整结果集包括:
按照预设调度规则分批向所述目标任务调度所述不完整结果集中的增量数据,并在每调度完成一批增量数据的情况下,为已调度的增量数据打上已调度标签,直至所述不完整结果集变更为完整结果集,且变更后的结果集中的所有数据均携带所述已调度标签,其中,所述目标任务基于分批接收到的数据分批执行任务。
5.根据权利要求4所述的方法,其特征在于,按照预设调度规则分批向所述目标任务调度所述不完整结果集中的增量数据包括:
每隔预设时间间隔获取所述不完整结果集中的未调度的增量数据,并向所述目标任务调度所述未调度的增量数据。
6.根据权利要求4所述的方法,其特征在于,按照预设调度规则分批向所述目标任务调度所述不完整结果集中的增量数据包括:
检测所述不完整结果集中生成的未调度的增量数据是否达到预设数据量,在所述未调度的增量数据每次达到所述预设数据量的情况下,向所述目标任务调度所述预设数据量的未调度的增量数据。
7.根据权利要求4所述的方法,其特征在于,按照预设调度规则分批向所述目标任务调度所述不完整结果集中的剩余数据包括:
每隔预设时间间隔判断所述不完整结果集中的未调度的增量数据是否大于等于预设数据量;
在所述未调度的增量数据大于等于所述预设数据量的情况下,将所述未调度的增量数据调度至所述目标任务;
在所述未调度的增量数据小于所述预设数据量的情况下,在所述预设时间间隔之后再次判断所述未调度的增量数据是否大于等于所述预设数据量,直至所述未调度的增量数据大于等于所述预设数据量,将所述未调度的增量数据调度至所述目标任务。
8.一种任务的调度处理装置,其特征在于,包括:
获取单元,用于在执行目标任务之前,从元数据库获取所述目标任务需要的结果集信息,其中,所述结果集信息中包含多个结果集的完整度,所述多个结果集是指所述目标任务依赖的上游任务的结果集,每个上游任务在运行过程中更新对应结果集中的数据;
判断单元,用于基于所述结果集信息确定所述多个结果集中的完整结果集和不完整结果集,并根据所述不完整结果集判断是否允许所述目标任务提前运行;
调度单元,用于在允许所述目标任务提前运行的情况下,向所述目标任务调度所述完整结果集和所述不完整结果集中的数据,并在所述不完整结果集所属的上游任务的执行过程中,向所述目标任务调度所述不完整结果集中的增量数据,直至所述不完整结果集变更为完整结果集,其中,所述目标任务在接收数据的过程中分批数据执行任务。
9.一种计算机存储介质,其特征在于,所述计算机存储介质用于存储程序,其中,所述程序运行时控制所述计算机存储介质所在的设备执行权利要求1至7中任意一项所述的任务的调度处理方法。
10.一种电子设备,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行权利要求1至7中任意一项所述的任务的调度处理方法。
CN202311435915.0A 2023-10-31 2023-10-31 任务的调度处理方法、装置、存储介质及电子设备 Pending CN117472533A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311435915.0A CN117472533A (zh) 2023-10-31 2023-10-31 任务的调度处理方法、装置、存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311435915.0A CN117472533A (zh) 2023-10-31 2023-10-31 任务的调度处理方法、装置、存储介质及电子设备

Publications (1)

Publication Number Publication Date
CN117472533A true CN117472533A (zh) 2024-01-30

Family

ID=89637401

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311435915.0A Pending CN117472533A (zh) 2023-10-31 2023-10-31 任务的调度处理方法、装置、存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN117472533A (zh)

Similar Documents

Publication Publication Date Title
US20140026142A1 (en) Process Scheduling to Maximize Input Throughput
CN106293893B (zh) 作业调度方法、装置及分布式系统
CN110971430B (zh) 自动化扩容缩容的控制方法、装置、存储介质及处理器
CN112540841B (zh) 任务调度的方法、装置、处理器与电子设备
Zhou et al. A dynamic task scheduling method based on simulation in cloud manufacturing
CN107818012B (zh) 一种数据处理方法、装置及电子设备
Méndez‐Díaz et al. Energy‐aware scheduling mandatory/optional tasks in multicore real‐time systems
Kwon et al. Multicore scheduling of parallel real-time tasks with multiple parallelization options
CN115617494B (zh) 多cpu环境下的进程调度方法、装置、电子设备和介质
CN108509280A (zh) 一种基于推送模型的分布式计算集群本地性调度方法
Wang et al. A Smart Semipartitioned Real‐Time Scheduling Strategy for Mixed‐Criticality Systems in 6G‐Based Edge Computing
Qamhieh et al. Stretching algorithm for global scheduling of real-time DAG tasks
CN113742036B (zh) 指标处理方法、装置及电子设备
US9671779B2 (en) Method and system for filtering lot schedules using a previous schedule
Ramamritham et al. Scheduling strategies adopted in spring: An overview
Hangan et al. RTMultiSim: A versatile simulator for multiprocessor real-time systems
CN116820729A (zh) 离线任务调度方法、装置及电子设备
CN117472533A (zh) 任务的调度处理方法、装置、存储介质及电子设备
Krawczyk et al. Automated distribution of software to multi-core hardware in model based embedded systems development
CN115220887A (zh) 调度信息的处理方法、任务处理系统、处理器和电子设备
CN114816703A (zh) 一种任务处理方法、装置、设备及介质
CN112214020A (zh) Agv调度系统任务框架的建立和任务处理的方法及装置
CN113010290A (zh) 一种任务管理方法、装置、设备及存储介质
Qamhieh et al. Simulation-based evaluations of DAG scheduling in hard real-time multiprocessor systems
Sreenath et al. Performance evaluation of embedded system using scheduling algorithms

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