CN114168302A - 任务调度方法、装置、设备及存储介质 - Google Patents
任务调度方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114168302A CN114168302A CN202111632945.1A CN202111632945A CN114168302A CN 114168302 A CN114168302 A CN 114168302A CN 202111632945 A CN202111632945 A CN 202111632945A CN 114168302 A CN114168302 A CN 114168302A
- Authority
- CN
- China
- Prior art keywords
- task
- operated
- run
- queue
- computing
- 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
- 238000000034 method Methods 0.000 title claims abstract description 110
- 238000012545 processing Methods 0.000 claims abstract description 30
- 238000004590 computer program Methods 0.000 claims description 10
- 230000003111 delayed effect Effects 0.000 claims description 6
- 230000001174 ascending effect Effects 0.000 claims description 5
- 238000012163 sequencing technique Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 16
- 238000005516 engineering process Methods 0.000 description 12
- 238000006243 chemical reaction Methods 0.000 description 6
- 239000000284 extract Substances 0.000 description 4
- 238000000605 extraction Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
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
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
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
技术领域
本申请涉及资源管理技术领域,尤其涉及一种任务调度方法、装置、设备及存储介质。
背景技术
任务调度,是指基于预先设定的时间点,预先设定的时间间隔或者预先设定的执行次数自动执行任务。
任务调度是对任务创建线程,并对创建的线程分配计算资源以运行任务。当对任务创建线程后,任务调度中心会将任务分配至计算设备,若计算设备没有空闲资源运行该任务时,该任务就会长时间处于等待状态,并等待该计算节点具有足够的资源时,再执行所分配的任务。
如此,会导致创建的大量的线程处于等待状态,使得任务处于空跑状态。
发明内容
本申请提供一种任务调度方法、装置、设备及存储介质,用以解决现有技术中创建的大量的线程处于等待状态,使得任务处于空跑状态的问题。
第一方面,本申请提供一种任务调度方法,包括:获取待运行任务和所述待运行任务的配置信息;所述待运行任务的配置信息包括运行所述待运行任务所需的计算资源;判断所述待运行任务所需的计算资源是否小于或等于计算设备的剩余资源;所述计算设备用于进行任务处理;若所述待运行任务所需的计算资源大于所述计算设备的剩余资源,则继续执行判断步骤,直至所述待运行任务所需的计算资源小于或等于所述计算设备的剩余资源;对所述待运行任务创建线程,并对所述线程分配计算资源,以运行所述待运行任务。
第二方面,本申请提供一种任务调度装置,包括:获取模块,用于获取待运行任务和所述待运行任务的配置信息;所述待运行任务的配置信息包括运行所述待运行任务所需的计算资源;判断模块,用于判断所述待运行任务所需的计算资源是否小于或等于计算设备的剩余资源;所述计算设备用于进行任务处理;若所述待运行任务所需的计算资源大于所述计算设备的剩余资源,则继续执行判断步骤,直至所述待运行任务所需的计算资源小于或等于所述计算设备的剩余资源;分配模块,用于对所述待运行任务创建线程,并对所述线程分配计算资源,以运行所述待运行任务。
第三方面,本申请提供一种电子设备,包括:处理器,以及与所述处理器通信连接的存储器;所述存储器存储计算机执行指令;所述处理器执行所述存储器存储的计算机执行指令,以实现如第一方面所述的方法。
第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如第一方面所述的方法。
第五方面,本申请提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如第一方面所述的方法。
本申请提供的任务调度方法、装置、设备及存储介质,通过获取待运行任务和待运行任务的配置信息;待运行任务的配置信息包括运行待运行任务所需的计算资源;判断待运行任务所需的计算资源是否小于或等于计算设备的剩余资源;计算设备用于进行任务处理;若待运行任务所需的计算资源大于计算设备的剩余资源,则继续执行判断步骤,直至待运行任务所需的计算资源小于或等于计算设备的剩余资源;将待运行任务分配至计算设备,以运行待运行任务。由于是在获取待运行任务之后,确定待运行任务所需的计算资源小于或等于计算设备的剩余资源时,将待运行任务分配至计算设备,以运行待运行任务。因此,能够解决创建的大量的线程处于等待状态,使得任务处于空跑状态的问题。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为现有技术的任务调度的应用场景图;
图2为适用于本申请实施例的任务调度方法的应用场景图;
图3为本申请实施例提供的任务调度方法的流程图一;
图4为本申请实施例提供的任务调度方法的流程图二;
图5为本申请实施例提供的任务调度方法的流程图三;
图6为本申请实施例提供的包括多个子任务的运行计划树的示例图;
图7为本申请实施例提供的任务调度方法的流程图四;
图8为现有技术的ETL任务调度的应用场景图;
图9为本申请实施例提供的并行任务队列中任务调度方法的示例图;
图10为本申请实施例提供的串行任务队列中任务调度方法的示例图;
图11为本申请实施例提供的任务调度装置的结构示意图;
图12为本申请实施例提供的电子设备的结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
术语解释:
ETL:是英文Extract-Transform-Load的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。
平台:指系统架构。
图1为现有技术的任务调度的应用场景图。如图1所示,该应用场景包括:任务队列11、调度中心12和至少一个计算设备13;其中,任务队列中包括多个任务(图1中的每个矩形框示出)。
任务调度,是指基于预先设定的时间点,预先设定的时间间隔或者预先设定的执行次数自动执行任务。
现有技术中,调度中心12用于从任务队列获取任务并创建线程,以及将创建的线程分配至计算设备。当调度中心将创建的线程分配至计算设备后,若该计算设备没有足够的资源运行该线程所分配的任务,则任务就会一直挂在该计算节点上进行等待,相当于任务在空跑,当该计算设备执行完当前执行的任务,释放掉资源后,再执行所分配的任务。这样,会造成创建的大量的线程处于等待状态,使得任务处于空跑状态,进而影响任务执行效率。
针对上述技术问题,本申请提出如下技术构思:在获取到待运行任务后,首先判断计算设备是否存在足够的资源能够运行待运行任务,若计算设备存在足够的资源能够运行待运行任务,才对待运行任务创建线程,并对线程分配计算资源,以运行待运行任务。如此,便能够解决现有技术中存在的创建的大量的线程处于等待状态,使得任务处于空跑状态的问题。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
图2为适用于本申请实施例的任务调度方法的应用场景图。如图2所示,该应用场景包括:源端21、调度中心22、目的端23和计算设备24。其中,源端21包括一个或多个业务系统数据库,每个业务系统数据库中包括源数据。目的端23包括数据仓库或其他数据库。调度中心22可以是ETL调度工具,可以是一台服务器或者包括多台服务器的服务器集群。计算设备24可以是包括多个计算机的计算集群,每个计算机可以视为一个计算节点。
用户通过命令行的方式针对ETL任务调度的配置信息进行配置,并生成配置文件。调度中心22通过读取配置文件,并根据配置文件中的配置信息生成待执行任务,待执行任务包括从源端21抽取数据的任务,针对源端21抽取的数据进行转换的任务,针对转换的数据加载至目的端23的任务。
其中,任务调度的配置信息包括作业中的实体、作业运行频率、作业间依赖、作业与时间点依赖、作业与外部数据的依赖以及作业动态传参。
作业中的实体是指执行作业的线程,举例来说,可以设置线程的数量,线程的数量决定了计算设备所能够并行执行的任务的数量。
作业运行频率是指每隔多久运行一次作业。
作业间依赖是指作业之间的依赖关系,举例来说,假设存在作业A和作业B,作业A的运行需依赖作业B的执行结果,则作业A和作业B则可视为具有依赖关系。
作业与时间点依赖是指作业需要在规定的时间点之前完成。
作业与外部数据的依赖是指作业的执行需依赖外部数据。其中,外部数据可以是源端的数据,也可以是其他阶段执行完成的数据,例如转换阶段的作业需依赖抽取阶段的任务执行完成得到的结果数据,则抽取阶段的任务执行完成得到的结果数据即为转换阶段的作业所依赖的外部数据。
作业动态传参是指作业将依赖该作业的作业的配置信息传递给依赖该作业的作业。举例来说,假设存在作业A和作业B,作业A的运行需依赖作业B执行完成得到的结果数据。则作业B在将作业B执行完成得到的结果数据传递给作业A时,还可以将作业B的配置信息传递给作业A。
以上均以作业为例对配置信息进行说明,然而实际中,一个作业可以包括一个或多个任务,且任务是计算节点的执行对象。因此,任务调度的配置信息也可以理解为是对作业中每个任务的配置信息,即作业中的实体是指执行各个作业中每个任务的线程。作业间依赖是指各个作业中的任务之间的依赖关系。作业与时间点依赖是指各个作业中每个任务需要在规定的时间点之前完成。作业与外部数据的依赖是指各个作业中每个任务的执行需依赖外部数据。作业动态传参是指任务将依赖该任务的任务的配置信息传递给依赖该任务的任务。
基于图2所示的应用场景,本申请实施例还提供一种任务调度方法。图3为本申请实施例提供的任务调度方法的流程图一。如图3所示,该任务调度方法包括:
S301、获取任务队列中的待运行任务和待运行任务的配置信息;待运行任务的配置信息包括运行待运行任务所需的计算资源。
本实施例的方法的执行主体可以是图2中所示的调度中心。
本实施例中,可以同时通过并行任务队列和串行任务队列进行任务处理。其中,并行任务队列中的任务在执行时,即使并行任务队列中当前任务未执行完成,也可以开始执行下一个任务。而串行任务队列中的任务在执行时,当前任务必须执行完成,才可以开始执行下一个任务。
可选的,获取待运行任务,包括:从任务队列获取所述待运行任务;所述任务队列包括并行任务队列或串行任务队列。
在本步骤之前,需要配置每个任务所需的计算资源。每个任务所需的计算资源可以通过配置文件的方式进行配置,配置文件采用命令的方式进行配置信息的配置。
S302、判断待运行任务所需的计算资源是否小于或等于计算设备的剩余资源;计算设备用于进行任务处理。
本实施例中,计算设备的资源是指计算设备的CPU、内存等资源。计算设备包括多个计算节点,多个计算节点中正在运行任务的计算节点对应的资源为已使用资源,而未运行任务的空闲计算节点对应的资源即为剩余资源。
则在本步骤之前,还包括:
步骤a1、确定计算设备的总计算资源和当前时刻的已使用资源;
步骤a2、将计算设备的总计算资源减去当前时刻的已使用资源,得到计算设备的剩余资源。
S303、若待运行任务所需的计算资源大于计算设备的剩余资源,则继续执行判断步骤,直至待运行任务所需的计算资源小于或等于计算设备的剩余资源。
本步骤旨在将待运行任务分配至计算设备之前,确定计算设备中是否存在足够的计算资源能够对待运行任务进行处理。若计算设备中存在足够的计算资源能够对待运行任务进行处理,才将待运行任务分配至计算设备,否则,待运行任务会一直存储在任务队列中。
S304、对待运行任务创建线程,并对线程分配计算资源,以运行待运行任务。
本步骤是将待运行任务分配至其中一个计算节点,以使该计算节点运行该待运行任务。具体的,是对待运行任务创建一线程,并通过该线程运行该待运行任务。
本实施例通过获取待运行任务和待运行任务的配置信息;待运行任务的配置信息包括运行待运行任务所需的计算资源;判断待运行任务所需的计算资源是否小于或等于计算设备的剩余资源;计算设备用于进行任务处理;若待运行任务所需的计算资源大于计算设备的剩余资源,则继续执行判断步骤,直至待运行任务所需的计算资源小于或等于计算设备的剩余资源;对待运行任务创建线程,并对线程分配计算资源,以运行待运行任务。由于是在获取待运行任务之后,确定待运行任务所需的计算资源小于或等于计算设备的剩余资源时,对待运行任务创建线程,并对线程分配计算资源,以运行待运行任务。因此,能够解决创建的大量的线程处于等待状态,使得任务处于空跑状态的问题,能够实现通过资源预估进行任务运行管理的效果。
图4为本申请实施例提供的任务调度方法的流程图二。如图4所示,该任务调度方法,包括如下步骤:
S401、获取目标任务;目标任务是到达任务执行时间的任务。
本实施例是从任务列表获取目标任务。而在从任务列表获取目标任务之前,还包括:根据任务的运行频率,生成任务列表。具体的,是根据任务的运行频率,确定当前时刻是否到达任务的运行时间,若是,则将任务添加至任务列表;否则,对任务不做处理。其中,任务的运行频率是通过命令的进行配置,并存储在配置文件中的配置信息。
其中,任务列表可以理解为是任务计划列表。示例性地,可以根据任务的配置信息生成每一天的任务计划列表,则该任务计划列表中包括的任务即为当天需要执行的任务。举例来说,任务1的运行频率是每天的13:15执行1次,则在到达每天的13:15时,就可以确定需要执行任务1,并将任务1添加至任务列表。
S402、判断任务队列中所有待运行任务的数量,是否小于任务队列的最大任务数量。
其中,任务队列的最大任务数量是指任务队列所能够容纳的最多的任务的数量。也是能够从任务列表中添加至任务队列中的最大的任务数量。举例来说,任务队列的最大任务数量为100,且任务队列中当前存在的待运行任务的数量为90个,则确定待运行队列能够添加目标任务。
S403、若任务队列中所有待运行任务的数量,大于或等于任务队列的最大任务数量,则继续执行判断步骤,直至任务队列中所有待运行任务的数量小于任务队列的最大任务数量。
本实施例中,任务队列的最大任务数量是预先通过命令的方式进行配置,并存储在配置文件中。
S404、将目标任务添加至任务队列。
具体的,将目标任务添加至任务队列,包括:
步骤b1、获取目标任务的配置信息;目标任务的配置信息包括目标任务的标识,目标任务的标识用于指示将目标任务添加至并行任务队列或串行任务队列。
示例性地,可以将目标任务的标识设置为1,并且对应地操作是在到达目标任务的运行时间时,将目标任务添加至并行任务队列,以及将目标任务的标识设置为0,并且对应地操作是在到达目标任务的运行时间时,将目标任务添加至串行任务队列。
应理解,上述1和0所指示的操作仅为示例性说明,也可以是将目标任务的标识设置为0,并且对应地操作是在到达目标任务的运行时间时,将目标任务添加至并行任务队列,以及将目标任务的标识设置为1,并且对应地操作是在到达目标任务的运行时间时,将目标任务添加至串行任务队列。本实施例对此不作限制。
在步骤b1之前,需要配置任务的标识。其中,可以根据任务所需的计算资源和运行频率来配置目标任务的标识。具体的,可以是将所需的计算资源大于预设资源,且运行频率小于预设频率的任务的标识设置为1,而将所需的计算资源小于或等于预设资源,且运行频率大于或等于预设频率的任务的标识设置为0。
步骤b2、若目标任务的标识指示将目标任务添加至并行任务队列,则将目标任务添加至并行任务队列。
步骤b3、若目标任务的标识指示将目标任务添加至串行任务队列,则将目标任务添加至串行任务队列。
任务在执行过程中,存在执行成功和执行失败的情况。针对任务执行失败的情况,可以设置自动调度策略来自动调度失败任务重跑。具体的,可以提供失败任务队列暂时缓存执行失败的任务,并在当前时间到达预设的失败任务调度时间时,从失败任务队列获取执行失败的任务,重新添加至并行任务队列。该过程具体包括如下步骤:
步骤c1、确定待运行任务是否运行成功。
步骤c2、若待运行任务运行成功,则将待运行任务从任务队列中移出。
步骤c3、若待运行任务运行失败,且失败次数达到预设失败次数,则将待运行任务添加至失败任务队列。
如上介绍,任务队列包括并行任务队列和串行任务队列,则本实施例包括如下两种可选的实施方式:
在一种可选的实施方式中,针对并行任务队列,若待运行任务执行成功,则将待运行任务从并行任务队列移出;若待运行任务执行失败,且失败次数达到预设失败次数,将待运行任务添加至失败任务队列。
在另一种可选的实施方式中,针对串行任务队列,若待运行任务执行成功,则将待运行任务从串行任务队列移出;若待运行任务执行失败,且失败次数达到预设失败次数,将待运行任务添加至失败任务队列。
其中,在上述两种可选的实施方式中,将待运行任务添加至失败任务队列,可以理解为是将待运行任务从并行任务队列或串行任务队列中移出,并在失败任务队列中添加待运行任务。
在将待运行任务添加至失败任务队列之后,还可以包括如下步骤:
步骤c4、确定当前时刻是否到达失败任务的调度时间。
步骤c5、若当前时刻到达失败任务的调度时间,则从失败任务队列中获取失败任务,并添加至并行任务队列。
其中,从失败任务队列中获取失败任务,并添加至并行任务队列,包括:
步骤c51、确定失败任务所需的计算资源是否小于或等于计算设备的剩余资源。
步骤c52、若失败任务所需的计算资源大于计算设备的剩余资源,则继续执行判断步骤c51,直至失败任务所需的计算资源小于或等于计算设备的剩余资源。
步骤c53、将失败任务分配至计算设备,以运行失败任务。
进一步地,由于在将失败队列中的失败任务添加至并行任务队列之后,仍然存在执行失败的情况,因此,还可以在失败任务添加至失败队列的次数超过预设次数时,将失败任务添加至串行任务队列。
步骤c5、若当前时刻到达失败任务的调度时间,则从失败任务队列中获取失败任务,并添加至并行任务队列。能够实现自动进行失败任务的重跑的效果。
在上述实施例的基础上,并行任务队列或串行任务队列中的任务可能包括子任务,即待运行任务为任务集合。针对该类型的任务,本申请提出如下实施例:
图5为本申请实施例提供的任务调度方法的流程图三。如图5所示,该任务调度方法,包括如下步骤:
S501、根据N个子任务之间的执行顺序,确定当前所需执行的M个目标子任务;M为大于或等于1且小于或等于N的整数。
本实施例中,待运行任务的配置信息还包括:待运行任务包括N个子任务,N个子任务之间的执行顺序,以及每个子任务的标识,每个子任务的标识用于表征子任务是串行任务或并行任务;N为大于或等于2的整数。
在步骤S501之前,还可以包括如下步骤:
步骤d1、若待运行任务包括子任务,则可以根据待运行任务的配置信息,生成待运行任务的运行计划树结构;其中,待运行任务的运行计划树中包括N个节点,N个节点分别对应N个子任务。
其中,根据待运行任务的运行计划树结构可以确定N个子任务之间的执行顺序。
步骤d2、若父节点对应的子任务执行成功,则将父节点的至少一个子节点对应的子任务添加至任务队列。
具体的,是根据父节点的子节点对应的子任务的标识,将子任务添加至并行任务队列或串行任务队列。
步骤d3、当运行计划树中所有节点对应的子任务均执行成功,则确定待运行任务执行成功,将待运行任务从任务队列移出。
S502、根据目标子任务的标识,将目标子任务添加至并行任务队列或串行任务队列。
S503、确定N个子任务是否全部执行成功。
S504、若N个子任务全部执行成功,则确定待运行任务执行成功。
S505、若N个子任务中任意一个子任务未执行成功,则确定待运行任务执行失败。
下面结合一个示例对本实施例进行介绍:
图6为本申请实施例提供的包括多个子任务的运行计划树的示例图。如图6所示,假设存在任务A,任务A包括子任务1、子任务2、子任务3和子任务4,该4个子任务之间的依赖关系为:子任务1执行完成之后,执行子任务2,以及,子任务3执行完成之后,执行子任务4,其中,子任务2和子任务3可以并行执行。则在任务调度过程中,执行待运行任务,包括:
步骤A、执行子任务1。
步骤B、若子任务1执行成功,则执行子任务2和子任务3。
步骤C、若子任务2和子任务3均执行成功,则执行子任务4。
步骤D、若子任务4执行成功,则确定待运行任务执行成功。
图7为本申请实施例提供的任务调度方法的流程图四。如图7所示,该任务调度方法包括如下步骤:
S701、获取任务处理的配置信息;任务处理的配置信息包括计算设备的计算资源的预设占用率。
S702、确定计算设备的X个进程对计算资源的占用率。
S703、若计算设备的X个进程对计算资源的占用率,大于或等于计算设备的计算资源的预设占用率,则将计算设备的X个进程按照计算资源占用率由大到小的顺序进行排序,并停止前Y个进程对应的待运行任务,以使计算设备的X个进程对计算资源的占用率,小于计算设备的计算资源的预设占用率;每个进程包括一个或多个待运行任务。
具体的,步骤S703具体包括如下步骤:
步骤e1、判断计算设备的X个进程对计算资源的占用率,是否小于计算设备的计算资源的预设占用率;
步骤e2、若计算设备的X个进程对计算资源的占用率,大于或等于计算设备的计算资源的预设占用率,则将计算设备的X个进程按照计算资源占用率由大到小的顺序进行排序,并停止计算资源占用率最大的进程对应的待运行任务,以及继续执行判断步骤,直至计算设备的X个进程对计算资源的占用率,小于计算设备的计算资源的预设占用率。
步骤e3、将停止运行的待运行任务添加至失败任务队列。
可选的,为了避免任务直接被丢弃,造成任务执行失败,还可以在步骤S703之后,将占用资源最多的进程对应的待运行任务添加至失败任务队列。以提高任务执行成功率。
举例来说,计算设备的计算资源的预设占用率为90%,计算设备上所有的进程对内存的占用率之和为95%,则将该100个计算节点上所有的进程按照内存占用率从大到小的顺序进行排序,并停止执行内存占用率最大的进程对应的任务,从而释放计算资源。
本实施例通过判断计算设备的X个进程对计算资源的占用率,是否小于计算设备的计算资源的预设占用率,若计算设备的X个进程对计算资源的占用率,大于或等于计算设备的计算资源的预设占用率,则将计算设备的X个进程按照计算资源占用率由大到小的顺序进行排序,并停止计算资源占用率最大的进程对应的待运行任务,以及继续执行判断步骤,直至计算设备的X个进程对计算资源的占用率,小于计算设备的计算资源的预设占用率。从而能够实现在任务运行过程中,对计算资源的使用进行监控,防止计算资源被其中一个任务长时间占用,导致计算资源占用率过高,影响其他任务的处理效率。或者,任务数量过多导致计算资源平摊时引起的任务处理超时的问题。
在上述实施例的基础上,将待运行任务分配至所述计算设备,以运行待运行任务之后,本实施例的方法还包括如下步骤:
步骤f1、获取预设时间段内的多个待运行任务的任务运行结果;任务运行结果包括待运行任务是否运行成功。
其中,预设时间段可以是以天为单位,将每一天的任务列表中的所有任务的任务运行结果形成任务运行清单,并发送至目标对象的终端设备。
其中,任务运行清单中可以包括当天运行的任务的总数量、运行成功的任务的总数量和运行失败的任务的总数量。
步骤f2、根据预设时间段内的多个待运行任务的任务运行结果,生成任务运行清单。
步骤f3、发送任务运行清单至目标对象的终端设备;目标对象为布置待运行任务的对象。
在上述实施例的基础上,待运行任务的任务运行结果还包括:待运行任务是否按照约定时间完成;则本实施例的方法还包括:
步骤g1、确定待运行任务对应的数据的实际到达时间是否未超过约定时间。
举例来说,假设待运行任务为抽取阶段的任务,且待运行任务对应的数据为源端的数据,则是确定源端的数据是否按照约定时间到达。
步骤g2、若待运行任务对应的数据的实际到达时间未超过约定时间,则生成待运行任务的数据延迟到达的报警信息。
步骤g3、根据待运行任务的数据延迟到达的报警信息,生成待运行任务的任务运行结果。
举例来说,假设任务1对应的数据的约定时间是每天的13:15,则若任务1对应的数据的实际到达时间未超过每天的13:15,则确定待运行任务的数据未延迟到达,直接生成待运行任务的任务运行结果即可,而若任务1对应的数据的实际到达时间为每天的13:15之后,则确定任务1的数据延迟到达。
应当理解,任务在添加至任务列表之前,还需要判断任务对应的数据是否到达,若任务对应的数据到达,则将任务添加至任务列表,否则,对任务不作处理。而任务对应的数据延迟到达,并不影响任务的执行,当任务到达任务运行时间,且任务对应的数据未到达,则会继续判断任务对应的数据是否到达,直至任务对应的数据到达,将任务添加至任务队列。
则在对每天的任务的运行情况进行统计时,若任务对应的数据延迟到达,则将该任务对应的数据延迟到达的报警信息添加至待运行任务的任务运行结果,并生成当天的任务运行清单。
图8为现有技术的ETL任务调度的应用场景图。如图8所示,该应用场景包括:源端81、终端设备82、配置数据库83和目的端84。
其中,源端81包括一个或多个业务系统数据库,每个业务系统数据库包括多个源数据。目的端84包括数据仓库或其他数据库。
终端设备82上设置有ETL调度工具,终端设备82包括智能手机、平板电脑、笔记本电脑或台式电脑。
配置数据库83中存储有针对ETL任务调度的配置信息,包括ETL任务的运行频率、ETL任务与时间点的依赖关系、ETL任务之间的执行顺序、ETL任务之间的依赖关系、ETL任务之间的动态传参。
在现有技术中,ETL调度工具从配置数据库83中读取配置信息,并根据配置信息从源端11抽取源数据,并对源数据进行转换,和加载至目的端84。
所以,各类调度工具为了适应各类架构平台,就需要与数据库进行耦合,每种调度工具会指定固定类型的配置数据库。例如,B/S架构的ETL调度工具指定的配置数据库83的类型为oral数据库;C/S架构的ETL调度工具指定的配置数据库83为mysql数据库。当B/S架构的ETL调度工具需要使用mysql类型的配置数据库时,还需要安装一些文件,以及修改源代码,才能够使用。因此,无法实现异构数据库之间的调度,导致调度工具对数据库依赖较大,以及无法直接跨平台使用,调度灵活性较低。
另外,一个ETL过程包括多个阶段,举例来说,抽取为一个阶段,转换为一个阶段,加载为一个阶段。一个ETL过程可能采用一种技术类型,也可能采用不同的技术类型来实现。针对需要采用不同技术类型的ETL实现方式的场景,例如抽取阶段使用sas技术类型的ETL实现方式,转换阶段使用python技术类型的ETL实现方式,加载阶段使用datastage技术类型的ETL实现方式。由于每个阶段使用不同的技术类型,所以每个阶段需要通过一个单独的系统来实现。举例来说,ETL调度工具通过sas技术类型从源端抽取数据,得到第一中间结果数据,并将第一中间结果数据发送至转换阶段的系统,转换阶段的系统通过python技术类型根据第一中间结果数据进行数据转换,得到第二中间结果数据,并将第二中间结果数据发送至加载阶段的系统,加载阶段的系统通过datastage技术类型将第二中间结果数据加载至目的端。因此,现有技术中无法在一个系统中采用多种技术类型的ETL实现方式。
针对上述技术问题,本申请提出如下技术构思:考虑到跨平台使用的通用性,采用配置文件的方式配置ETL任务调度的配置信息,配置文件可以存储在系统的硬件设备的一个存储路径下,因此,可以不依赖数据库进行配置信息的配置,另外,配置文件中采用命令行的方式进行配置信息的配置,ETL调度工具中不同技术类型的ETL实现方式可以理解为是使用不同语言进行数据处理,但其在计算机上来执行时,最终都是通过基础的命令行的方式来执行,因此,采用命令行的方式进行配置信息的配置,能够适应多种不同技术类型的ETL实现方式。
则获取待运行任务的配置信息,包括:从配置文件中获取待运行任务的配置信息;其中,配置文件采用命令行的方式进行配置信息的配置。
具体的,是由用户通过终端设备,采用命令的方式配置任务的配置信息,并存储为配置文件,配置文件可以存储在系统的任意存储路径下,任意路径是网络能够访问到的路径。
在配置好任务的配置信息之后,还可以对配置文件中的配置信息进行查看、更改、修改等操作。具体的,是接收用户通过终端设备输入的针对配置文件的目标操作;目标操作包括:查看、增加、删除和修改中至少一项;根据目标操作,对配置文件执行相应操作。本实施例中的终端设备可以是调度中心。例如,用户在进行任务调度过程中,需要根据任务运行请求对任务的配置信息进行修改,或者查看任务的配置信息,则可以通过在终端设备上输入针对配置文件的目标操作,实现对配置信息的查看、增加、删除和修改中至少一项操作。应理解,本实施例的终端设备可以是调度中心的其中一台服务器。
在上述实施例的基础上,为了保证配置文件的安全性,还可以对配置文件进行加密,并存储在调度中心的其中一台服务器中。当用户想要查看或修改配置文件中的配置信息时,可以通过在服务器的图形用户界面提供的输入密码的提示框中输入密码,并在解密成功后,对配置文件中的配置信息进行查看操作和修改操作,其中,修改操作包括添加和删除。若服务器检测到用户对配置文件中的配置信息执行了修改操作,则将修改后的配置文件进行加密并存储。
在上述实施例中已介绍,任务在添加至任务列表之前,还需要判断任务对应的数据是否到达,若任务对应的数据到达,则将任务添加至任务列表,否则,对任务不作处理。然而,实际应用中,可能存在如下场景,即任务对应的数据到达之后,用户可能会手动设置任务重新执行,并得到该任务的新的数据,则为了使得任务执行时拿到的数据为最新的数据,本实施例中,对待运行任务创建线程,并对线程分配计算资源,以运行待运行任务,包括:
h1、确定是否接收到待运行任务所依赖的外部数据;外部数据为运行待运行任务所依赖的任务得到的数据;
h2、若接收到待运行任务所依赖的外部数据,则将待运行任务分配至计算设备,以运行待运行任务。
本实施例通过在判断到待运行任务所需的计算资源小于或等于计算设备的剩余资源时,确定是否接收到待运行任务所依赖的外部数据,以及在接收到待运行任务所依赖的外部数据时,对待运行任务创建线程,并对线程分配计算资源,以运行待运行任务,能够进一步减少任务空跑的情况。
下面通过一些具体的示例对并行任务队列、失败任务队列和串行任务队列中任务的执行过程进行详细介绍:
图9为本申请实施例提供的并行任务队列中任务调度方法的示例图。如图9所示,该任务调度方法包括如下步骤:
S901、确定是否已到达并行任务队列的队尾。
其中,S901旨在确定并行任务队列中是否存在可获取的待运行任务。
S902、若已到达并行任务队列的队尾,则结束。
若已到达并行任务队列的队尾,则表示并行任务队列中不存在可获取的待运行任务。
S903、若未到达并行任务队列的队尾,则从并行任务队列中获取待运行任务。
其中,若未到达并行任务队列的队尾,则表示并行任务队列中存在可获取的待运行任务。
S904、判断待运行任务所需的计算资源是否小于或等于计算设备的剩余资源。
S905、若待运行任务所需的计算资源小于或等于计算设备的剩余资源,则针对待运行任务创建线程,并通过线程执行待运行任务,以及返回步骤S901。
本实施例中,对待运行任务创建线程之后,就可以从并行任务队列获取下一个待运行任务,而无需判断任务是否执行完成。
S906、当任务执行完成后,将任务移出并行任务队列。
其中,任务执行完成,包括:任务执行成功,或者任务的失败次数达到预设次数。
图10为本申请实施例提供的串行任务队列中任务调度方法的示例图。如图10所示,该任务调度方法包括如下步骤:
S1001、确定串行任务队列是否为空队列;
S1002、若串行任务队列为空队列,则从任务列表中获取串行任务并添加至串行任务队列,并从串行任务队列中获取待运行任务;
S1003、若串行任务队列不为空队列,则确定是否已到达串行任务队列的队尾;
S1004、若未到达串行任务队列的队尾,则从串行任务队列中获取待运行任务;
S1005、若已到达串行任务队列的队尾,则结束;
S1006、判断待运行任务所需的计算资源是否小于或等于计算设备的剩余资源。
S1007、若待运行任务所需的计算资源小于或等于计算设备的剩余资源,则针对待运行任务创建线程,并通过线程执行待运行任务。
S1008、确定待运行任务是否处于执行状态;
S1009、若待运行任务处于执行状态,则从串行任务队列中获取下一个待运行任务。
S1010、若待运行任务不处于执行状态,则确定待运行任务是否执行成功;
其中,不处于执行状态,可以理解为处于执行完成状态。
S1011、若待运行任务执行成功,则将待运行任务移出串行任务队列。
S1012、若待运行任务执行失败,则确定是否达到最大失败次数;
S1013、若达到最大失败次数,则将待运行任务移出串行任务队列。
S1014、若未达到最大失败次数,对待运行任务创建线程,并对线程分配计算资源以运行待运行任务,并从串行任务队列中获取下一个待运行任务。
图11为本申请实施例提供的任务调度装置的结构示意图。如图11所示,该任务调度装置,包括:获取模块1101、判断模块1102和分配模块1103;
其中,获取模块1101,用于获取待运行任务和所述待运行任务的配置信息;所述待运行任务的配置信息包括运行所述待运行任务所需的计算资源;
判断模块1102,用于判断所述待运行任务所需的计算资源是否小于或等于计算设备的剩余资源;所述计算设备用于进行任务处理;若所述待运行任务所需的计算资源大于所述计算设备的剩余资源,则继续执行判断步骤,直至所述待运行任务所需的计算资源小于或等于所述计算设备的剩余资源;
分配模块1103,用于对所述待运行任务创建线程,并对所述线程分配计算资源,以运行所述待运行任务。
在一些实施例中,所述获取模块1101获取待运行任务,具体包括:从任务队列中获取所述待运行任务;所述任务队列包括并行任务队列或串行任务队列。
在一些实施例中,所述任务调度的配置信息还包括所述任务队列的最大任务数量;该装置还包括:添加模块1104;获取模块1101,还用于获取目标任务;所述目标任务是到达任务执行时间的任务;判断模块1102,还用于判断所述任务队列中所有待运行任务的数量,是否小于所述任务队列的最大任务数量;若所述任务队列中所有待运行任务的数量,大于或等于所述任务队列的最大任务数量,则继续执行判断步骤,直至所述任务队列中所有待运行任务的数量小于所述任务队列的最大任务数量;添加模块1104,用于将所述目标任务添加至所述任务队列。
在一些实施例中,所述添加模块1104将所述目标任务添加至所述任务队列,具体包括:获取所述目标任务的配置信息;所述目标任务的配置信息包括所述目标任务的标识,所述目标任务的标识用于指示将所述目标任务添加至并行任务队列或串行任务队列;若所述目标任务的标识指示将所述目标任务添加至并行任务队列,则将所述目标任务添加至所述并行任务队列;若所述目标任务的标识指示将所述目标任务添加至串行任务队列,则将所述目标任务添加至所述串行任务队列。
在一些实施例中,所述装置还包括:确定模块1105、移出模块1106;所述确定模块1105,用于确定所述待运行任务是否运行成功;移出模块1106,用于若所述待运行任务运行成功,则将所述待运行任务从任务队列中移出;所述添加模块1104,还用于若所述待运行任务运行失败,且失败次数达到预设失败次数,则将所述待运行任务添加至失败任务队列。
在一些实施例中,所述待运行任务的配置信息还包括:所述待运行任务包括N个子任务,所述N个子任务之间的执行顺序,以及每个子任务的标识,每个所述子任务的标识用于表征所述子任务是串行任务或并行任务;所述N为大于或等于2的整数,所述确定模块1105,还用于根据所述N个子任务之间的执行顺序,确定当前所需执行的M个目标子任务;所述M为大于或等于1且小于或等于N的整数;所述添加模块1104,还用于根据所述目标子任务的标识,将所述目标子任务添加至所述并行任务队列或串行任务队列;所述确定模块1105,还用于确定所述N个子任务是否全部执行成功;以及,若所述N个子任务全部执行成功,则确定所述待运行任务执行成功。
在一些实施例中,所述装置还包括:停止运行模块1107;所述获取模块1101,还用于获取任务处理的配置信息;所述任务处理的配置信息包括所述计算设备的计算资源的预设占用率;所述确定模块1105,还用于确定所述计算设备的计算资源的占用率;停止运行模块1107,用于若所述计算设备的计算资源的占用率,大于或等于所述计算设备的计算资源的预设占用率,则将计算设备的X个进程按照计算资源占用率由大到小的顺序进行排序,并停止前Y个进程对应的待运行任务;每个进程包括一个或多个待运行任务。
在一些实施例中,所述添加模块1104,还用于将占用资源最多的进程对应的待运行任务添加至失败任务队列。
在一些实施例中,所述装置还包括:生成模块1108和发送模块1109;所述获取模块1101,还用于获取预设时间段内的多个待运行任务的任务运行结果;所述任务运行结果包括所述待运行任务是否运行成功;所述生成模块1108,用于根据所述预设时间段内的多个待运行任务的任务运行结果,生成任务运行清单;所述发送模块1109,用于发送所述任务运行清单至目标对象的终端设备;所述目标对象为布置所述待运行任务的对象。
在一些实施例中,所述待运行任务的任务运行结果还包括:所述待运行任务是否按照约定时间执行完成;所述确定模块1105,还用于确定所述待运行任务对应的数据的实际到达时间是否未超过所述约定时间;所述生成模块1108,还用于若所述待运行任务对应的数据的实际到达时间未超过所述约定时间,则生成所述待运行任务的数据延迟到达的报警信息;,以及,根据所述待运行任务的数据延迟到达的报警信息,生成所述待运行任务的任务运行结果。
在一些实施例中,所述获取模块1101获取所述待运行任务的配置信息,具体包括:从配置文件中获取所述待运行任务的配置信息;其中,所述配置文件采用命令行的方式进行配置信息的配置。
在一些实施例中,所述装置还包括:接收模块1110,用于接收用户通过终端设备输入的针对所述配置文件的目标操作;所述目标操作包括:查看、增加、删除和修改中至少一项;执行模块1111,用于根据所述目标操作,对所述配置文件执行相应操作。
在一些实施例中,所述分配模块1103对所述待运行任务创建线程,并对所述线程分配计算资源,以运行所述待运行任务,具体包括:确定是否接收到所述待运行任务所依赖的外部数据;所述外部数据为运行所述待运行任务所依赖的任务得到的数据;若接收到所述待运行任务所依赖的外部数据,则将所述待运行任务分配至所述计算设备,以运行所述待运行任务。
本申请实施例提供的任务调度装置,可用于执行上述实施例中任务调度方法的技术方案,其实现原理和技术效果类似,在此不再赘述。
需要说明的是,应理解以上装置的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。例如,分配模块1103可以为单独设立的处理元件,也可以集成在上述装置的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以上分配模块1103的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
图12为本申请实施例提供的电子设备的结构示意图。如图12所示,该电子设备可以包括:收发器121、处理器122、存储器123。
处理器122执行存储器存储的计算机执行指令,使得处理器122执行上述实施例中的方案。处理器122可以是通用处理器,包括中央处理器CPU、网络处理器(networkprocessor,NP)等;还可以是数字信号处理器DSP、专用集成电路ASIC、现场可编程门阵列FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
存储器123通过系统总线与处理器122连接并完成相互间的通信,存储器123用于存储计算机程序指令。
收发器121可以用于获取待运行任务和待运行任务的配置信息。
系统总线可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。系统总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。收发器用于实现数据库访问装置与其他计算机(例如客户端、读写库和只读库)之间的通信。存储器可能包含随机存取存储器(randomaccess memory,RAM),也可能还包括非易失性存储器(non-volatile memory)。
本申请实施例提供的电子设备,可以是上述实施例的终端设备。
本申请实施例还提供一种运行指令的芯片,该芯片用于执行上述实施例中任务调度方法的技术方案。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令,当该计算机指令在计算机上运行时,使得计算机执行上述实施例任务调度方法的技术方案。
本申请实施例还提供一种计算机程序产品,该计算机程序产品包括计算机程序,其存储在计算机可读存储介质中,至少一个处理器可以从计算机可读存储介质读取计算机程序,至少一个处理器执行计算机程序时可实现上述实施例中任务调度方法的技术方案。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求书指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求书来限制。
Claims (17)
1.一种任务调度方法,其特征在于,包括:
获取待运行任务和所述待运行任务的配置信息;所述待运行任务的配置信息包括运行所述待运行任务所需的计算资源;
判断所述待运行任务所需的计算资源是否小于或等于计算设备的剩余资源;所述计算设备用于进行任务处理;
若所述待运行任务所需的计算资源大于所述计算设备的剩余资源,则继续执行判断步骤,直至所述待运行任务所需的计算资源小于或等于所述计算设备的剩余资源;
对所述待运行任务创建线程,并对所述线程分配计算资源,以运行所述待运行任务。
2.根据权利要求1所述的方法,其特征在于,所述获取待运行任务,包括:
从任务队列中获取所述待运行任务;所述任务队列包括并行任务队列或串行任务队列。
3.根据权利要求2所述的方法,其特征在于,所述任务调度的配置信息还包括所述任务队列的最大任务数量;则所述获取待运行任务之前,还包括:
获取目标任务;所述目标任务是到达任务执行时间的任务;
判断所述任务队列中所有待运行任务的数量,是否小于所述任务队列的最大任务数量;
若所述任务队列中所有待运行任务的数量,大于或等于所述任务队列的最大任务数量,则继续执行判断步骤,直至所述任务队列中所有待运行任务的数量小于所述任务队列的最大任务数量;
将所述目标任务添加至所述任务队列。
4.根据权利要求3所述的方法,其特征在于,所述将所述目标任务添加至所述任务队列,包括:
获取所述目标任务的配置信息;所述目标任务的配置信息包括所述目标任务的标识,所述目标任务的标识用于指示将所述目标任务添加至并行任务队列或串行任务队列;
若所述目标任务的标识指示将所述目标任务添加至并行任务队列,则将所述目标任务添加至所述并行任务队列;
若所述目标任务的标识指示将所述目标任务添加至串行任务队列,则将所述目标任务添加至所述串行任务队列。
5.根据权利要求2所述的方法,其特征在于,所述对所述待运行任务创建线程,并对所述线程分配计算资源,以运行所述待运行任务之后,所述方法还包括:
确定所述待运行任务是否运行成功;
若所述待运行任务运行成功,则将所述待运行任务从任务队列中移出;
若所述待运行任务运行失败,且失败次数达到预设失败次数,则将所述待运行任务添加至失败任务队列。
6.根据权利要求2所述的方法,其特征在于,所述待运行任务的配置信息还包括:所述待运行任务包括N个子任务,所述N个子任务之间的执行顺序,以及每个子任务的标识,每个所述子任务的标识用于表征所述子任务是串行任务或并行任务;所述N为大于或等于2的整数,所述方法还包括:
根据所述N个子任务之间的执行顺序,确定当前所需执行的M个目标子任务;所述M为大于或等于1且小于或等于N的整数;
根据所述目标子任务的标识,将所述目标子任务添加至所述并行任务队列或串行任务队列;
确定所述N个子任务是否全部执行成功;
若所述N个子任务全部执行成功,则确定所述待运行任务执行成功。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述方法还包括:
获取任务处理的配置信息;所述任务处理的配置信息包括所述计算设备的计算资源的预设占用率;
确定所述计算设备的计算资源的占用率;
若所述计算设备的计算资源的占用率,大于或等于所述计算设备的计算资源的预设占用率,则将计算设备的X个进程按照计算资源占用率由大到小的顺序进行排序,并停止前Y个进程对应的待运行任务;每个进程包括一个或多个待运行任务。
8.根据权利要求7所述的方法,其特征在于,所述停止运行占用资源最多的进程对应的待运行任务之后,所述方法还包括:
将占用资源最多的进程对应的待运行任务添加至失败任务队列。
9.根据权利要求1-6任一项所述的方法,其特征在于,所述对所述待运行任务创建线程,并对所述待运行任务分配计算资源,以运行所述待运行任务之后,所述方法还包括:
获取预设时间段内的多个待运行任务的任务运行结果;所述任务运行结果包括所述待运行任务是否运行成功;
根据所述预设时间段内的多个待运行任务的任务运行结果,生成任务运行清单;
发送所述任务运行清单至目标对象的终端设备;所述目标对象为布置所述待运行任务的对象。
10.根据权利要求9所述的方法,其特征在于,所述待运行任务的任务运行结果还包括:所述待运行任务是否按照约定时间执行完成;所述方法还包括:
确定所述待运行任务对应的数据的实际到达时间是否未超过所述约定时间;
若所述待运行任务对应的数据的实际到达时间未超过所述约定时间,则生成所述待运行任务的数据延迟到达的报警信息;
根据所述待运行任务的数据延迟到达的报警信息,生成所述待运行任务的任务运行结果。
11.根据权利要求1-6任一项所述的方法,其特征在于,所述获取所述待运行任务的配置信息,包括:
从配置文件中获取所述待运行任务的配置信息;
其中,所述配置文件采用命令行的方式进行配置信息的配置。
12.根据权利要求11所述的方法,其特征在于,所述方法还包括:
接收用户通过终端设备输入的针对所述配置文件的目标操作;所述目标操作包括:查看、增加、删除和修改中至少一项;
根据所述目标操作,对所述配置文件执行相应操作。
13.根据权利要求1-6任一项所述的方法,其特征在于,所述对所述待运行任务创建线程,并对所述线程分配计算资源,以运行所述待运行任务,包括:
确定是否接收到所述待运行任务所依赖的外部数据;所述外部数据为运行所述待运行任务所依赖的任务得到的数据;
若接收到所述待运行任务所依赖的外部数据,则对所述待运行任务创建线程,并对所述线程分配计算资源,以运行所述待运行任务。
14.一种任务调度装置,其特征在于,包括:
获取模块,用于获取待运行任务和所述待运行任务的配置信息;所述待运行任务的配置信息包括运行所述待运行任务所需的计算资源;
判断模块,用于判断所述待运行任务所需的计算资源是否小于或等于计算设备的剩余资源;所述计算设备用于进行任务处理;若所述待运行任务所需的计算资源大于所述计算设备的剩余资源,则继续执行判断步骤,直至所述待运行任务所需的计算资源小于或等于所述计算设备的剩余资源;
分配模块,用于对所述待运行任务创建线程,并对所述线程分配计算资源,以运行所述待运行任务。
15.一种电子设备,其特征在于,包括:处理器,以及与所述处理器通信连接的存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,以实现如权利要求1-13中任一项所述的方法。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1-13中任一项所述的方法。
17.一种计算机程序产品,其特征在于,包括计算机程序,该计算机程序被处理器执行时实现权利要求1-13中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111632945.1A CN114168302A (zh) | 2021-12-28 | 2021-12-28 | 任务调度方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111632945.1A CN114168302A (zh) | 2021-12-28 | 2021-12-28 | 任务调度方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114168302A true CN114168302A (zh) | 2022-03-11 |
Family
ID=80488377
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111632945.1A Pending CN114168302A (zh) | 2021-12-28 | 2021-12-28 | 任务调度方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114168302A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115237613A (zh) * | 2022-09-20 | 2022-10-25 | 华控清交信息科技(北京)有限公司 | 一种多方安全计算任务调度方法、装置和可读存储介质 |
CN115658279A (zh) * | 2022-12-20 | 2023-01-31 | 华控清交信息科技(北京)有限公司 | 一种密文计算任务调度方法、装置及电子设备 |
CN116225669A (zh) * | 2023-05-08 | 2023-06-06 | 之江实验室 | 一种任务执行方法、装置、存储介质及电子设备 |
CN116360990A (zh) * | 2023-03-27 | 2023-06-30 | 合芯科技有限公司 | 分布式计算任务合理性预判方法、系统、设备和存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108845884A (zh) * | 2018-06-15 | 2018-11-20 | 中国平安人寿保险股份有限公司 | 物理资源分配方法、装置、计算机设备和存储介质 |
CN110362407A (zh) * | 2019-07-19 | 2019-10-22 | 中国工商银行股份有限公司 | 计算资源调度方法及装置 |
CN112363821A (zh) * | 2021-01-12 | 2021-02-12 | 湖南大学 | 一种计算资源调度方法、装置及计算机设备 |
CN113051064A (zh) * | 2019-12-26 | 2021-06-29 | 中移(上海)信息通信科技有限公司 | 任务调度方法、装置、设备及存储介质 |
CN113127185A (zh) * | 2019-12-31 | 2021-07-16 | 北京懿医云科技有限公司 | 任务执行队列处理方法及装置、存储介质、电子设备 |
CN113434284A (zh) * | 2021-08-27 | 2021-09-24 | 华控清交信息科技(北京)有限公司 | 一种隐私计算服务端设备、系统及任务调度方法 |
US20210303344A1 (en) * | 2020-03-25 | 2021-09-30 | EMC IP Holding Company LLC | Task processing method, electronic device, and computer program product |
-
2021
- 2021-12-28 CN CN202111632945.1A patent/CN114168302A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108845884A (zh) * | 2018-06-15 | 2018-11-20 | 中国平安人寿保险股份有限公司 | 物理资源分配方法、装置、计算机设备和存储介质 |
CN110362407A (zh) * | 2019-07-19 | 2019-10-22 | 中国工商银行股份有限公司 | 计算资源调度方法及装置 |
CN113051064A (zh) * | 2019-12-26 | 2021-06-29 | 中移(上海)信息通信科技有限公司 | 任务调度方法、装置、设备及存储介质 |
CN113127185A (zh) * | 2019-12-31 | 2021-07-16 | 北京懿医云科技有限公司 | 任务执行队列处理方法及装置、存储介质、电子设备 |
US20210303344A1 (en) * | 2020-03-25 | 2021-09-30 | EMC IP Holding Company LLC | Task processing method, electronic device, and computer program product |
CN112363821A (zh) * | 2021-01-12 | 2021-02-12 | 湖南大学 | 一种计算资源调度方法、装置及计算机设备 |
CN113434284A (zh) * | 2021-08-27 | 2021-09-24 | 华控清交信息科技(北京)有限公司 | 一种隐私计算服务端设备、系统及任务调度方法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115237613A (zh) * | 2022-09-20 | 2022-10-25 | 华控清交信息科技(北京)有限公司 | 一种多方安全计算任务调度方法、装置和可读存储介质 |
CN115658279A (zh) * | 2022-12-20 | 2023-01-31 | 华控清交信息科技(北京)有限公司 | 一种密文计算任务调度方法、装置及电子设备 |
CN115658279B (zh) * | 2022-12-20 | 2023-04-07 | 华控清交信息科技(北京)有限公司 | 一种密文计算任务调度方法、装置及电子设备 |
CN116360990A (zh) * | 2023-03-27 | 2023-06-30 | 合芯科技有限公司 | 分布式计算任务合理性预判方法、系统、设备和存储介质 |
CN116360990B (zh) * | 2023-03-27 | 2024-01-09 | 合芯科技有限公司 | 分布式计算任务合理性预判方法、系统、设备和存储介质 |
CN116225669A (zh) * | 2023-05-08 | 2023-06-06 | 之江实验室 | 一种任务执行方法、装置、存储介质及电子设备 |
CN116225669B (zh) * | 2023-05-08 | 2024-01-09 | 之江实验室 | 一种任务执行方法、装置、存储介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114168302A (zh) | 任务调度方法、装置、设备及存储介质 | |
CN115328663B (zh) | 基于PaaS平台进行资源调度的方法、装置、设备和存储介质 | |
CN114138486B (zh) | 面向云边异构环境的容器化微服务编排方法、系统及介质 | |
WO2016078008A1 (zh) | 调度数据流任务的方法和装置 | |
US9577961B2 (en) | Input/output management in a distributed strict queue | |
US5925098A (en) | Apparatus and method for dispatching client method calls within a server computer system | |
US20180246765A1 (en) | System and method for scheduling jobs in distributed datacenters | |
US9843528B2 (en) | Client selection in a distributed strict queue | |
US9584593B2 (en) | Failure management in a distributed strict queue | |
US9571414B2 (en) | Multi-tiered processing using a distributed strict queue | |
EP3458959B1 (en) | Reconfigurable distributed processing | |
CN113641457A (zh) | 容器创建方法、装置、设备、介质及程序产品 | |
US20150381549A1 (en) | Message batching in a distributed strict queue | |
CN114416352A (zh) | 算力资源分配方法、装置、电子设备及储存介质 | |
US20150378796A1 (en) | Client control in a distributed strict queue | |
CN112905342A (zh) | 资源调度方法、装置、设备及计算机可读存储介质 | |
US9577878B2 (en) | Geographic awareness in a distributed strict queue | |
CN114546587A (zh) | 一种在线图像识别服务的扩缩容方法及相关装置 | |
CN110968422A (zh) | 用于集成场景的负载分发 | |
CN111831408A (zh) | 异步任务处理方法、装置、电子设备及介质 | |
CN103226480A (zh) | 用于动态地重新配置多核系统的操作系统的设备和方法 | |
US9628401B2 (en) | Software product instance placement | |
US11797342B2 (en) | Method and supporting node for supporting process scheduling in a cloud system | |
CN114237902A (zh) | 一种服务部署方法、装置、电子设备及计算机可读介质 | |
CN114675954A (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 |