CN116932160A - 一种后台任务调度方法、设备及存储介质 - Google Patents
一种后台任务调度方法、设备及存储介质 Download PDFInfo
- Publication number
- CN116932160A CN116932160A CN202310813563.1A CN202310813563A CN116932160A CN 116932160 A CN116932160 A CN 116932160A CN 202310813563 A CN202310813563 A CN 202310813563A CN 116932160 A CN116932160 A CN 116932160A
- Authority
- CN
- China
- Prior art keywords
- task
- execution instance
- information
- execution
- scheduling
- 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 103
- 230000008569 process Effects 0.000 claims abstract description 38
- 230000001960 triggered effect Effects 0.000 claims abstract description 38
- 238000004590 computer program Methods 0.000 claims description 4
- 230000005856 abnormality Effects 0.000 description 5
- 239000002699 waste material Substances 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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)
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种后台任务调度方法、设备及存储介质,涉及后台任务调度技术领域,所述方法包括:获取调度任务队列信息,调度任务队列信息包括至少一个待执行任务;根据调度任务队列信息,当待执行任务触发,启动对应的容器并且运行执行实例;获取执行实例列表信息,执行实例列表信息包括各个执行实例的状态信息;根据调度任务队列信息以及执行实例列表信息,将待执行任务分配至执行实例,以使执行实例处理对应的待执行任务;获取执行实例的运行信息,当容器内全部的执行实例完成对应的任务后,销毁容器。当待执行任务需要执行时启动容器,任务结束后销毁容器,实现资源弹性调度,防止出现容器空运行的情况,有利于提高资源利用率以及处理效率。
Description
技术领域
本发明涉及后台任务调度技术领域,尤其涉及一种后台任务调度方法、设备及存储介质。
背景技术
在云平台迅速发展的环境下,基于容器的云平台技术迅猛增长。容器通过利用容器化技术、容器引擎,如Docker,将应用程序与运行环境封装形成,即容器包括了应用程序以及应用程序所需要的运行环境,可以独立运行于各种操作系统,具有隔离性和可移植性。基于容器的云平台采用容器为基础,能够有效降低虚拟化成本,提高资源利用率,提升系统发布效率,缩短系统故障恢复时间等。
然而,现有技术中,基于容器的云平台在处理后台任务时,每个后台任务对应启动容器运行执行实例进行处理,但是不是每个后台任务都是需要实时执行处理,导致存在容器空运行的情况,当后台任务数量庞大时,容器空运行造成资源被大量占用,浪费被占用的资源,进而降低云平台整体的资源利用率以及处理效率,影响云平台的性能。
发明内容
本发明提供一种后台任务调度方法,用以解决现有技术中在后台任务调度过程中存在容器空运行的缺陷。
本发明提供一种后台任务调度方法,包括:
获取调度任务队列信息,所述调度任务队列信息包括至少一个待执行任务;
根据所述调度任务队列信息,当所述待执行任务触发,启动对应的容器并且运行执行实例;
获取执行实例列表信息,所述执行实例列表信息包括各个执行实例的状态信息;
根据所述调度任务队列信息以及所述执行实例列表信息,将所述待执行任务分配至所述执行实例,以使所述执行实例处理对应的所述待执行任务;
获取所述执行实例的运行信息,当所述容器内全部的所述执行实例完成对应的任务后,销毁所述容器。
根据本发明提供的一种后台任务调度方法,所述调度任务队列信息包括批量任务;所述根据所述调度任务队列信息,当所述待执行任务触发,启动对应的容器并且运行执行实例,包括:
当所述批量任务触发,获取所述批量任务对应的批量任务文件;
对所述批量任务文件根据预设行数进行分片处理以形成多个分片文件;
根据多个所述分片文件,启动容器并运行与所述分片文件对应的执行实例。
根据本发明提供的一种后台任务调度方法,所述根据所述调度任务队列信息以及所述执行实例列表信息,将所述待执行任务分配至所述执行实例,以使所述执行实例处理对应的所述待执行任务,包括:
根据所述调度任务队列信息以及所述执行实例列表信息,将与所述分片文件对应的所述执行实例与所述批量任务关联;
将所述分片文件分配至对应的所述执行实例,以使所述执行实例对所述分片文件进行处理。
根据本发明提供的一种后台任务调度方法,所述调度任务队列信息包括流任务;所述根据所述调度任务队列信息,当所述待执行任务触发,启动对应的容器并且运行执行实例,包括:
当所述流任务触发,获取所述流任务对应的流节点配置信息,所述流节点配置信息包括多个流节点的信息以及流节点之间的依赖关系;
根据所述流节点配置信息,启动容器并且运行与所述流节点对应的执行实例。
根据本发明提供的一种后台任务调度方法,所述根据所述调度任务队列信息以及所述执行实例列表信息,将所述待执行任务分配至所述执行实例,以使所述执行实例处理对应的所述待执行任务,包括:
根据所述调度任务队列信息以及所述执行实例列表信息,将与所述流节点对应的所述执行实例与所述流任务关联;
将各个所述流节点的信息分配至对应的所述执行实例,以使所述执行实例获取所述流节点的流数据进行处理。
根据本发明提供的一种后台任务调度方法,在所述根据所述调度任务队列信息以及所述执行实例列表信息,将所述待执行任务分配至所述执行实例,以使所述执行实例处理对应的所述待执行任务之后,还包括:
定期向所述执行实例发送快照消息,以使所述执行实例保存当前运行状态生成快照信息并上传;
获取所述快照信息生成运行日志信息;
获取所述执行实例的运行信息,当所述执行实例运行异常时,根据所述运行日志信息恢复所述执行实例的运行状态。
根据本发明提供的一种后台任务调度方法,所述根据所述调度任务队列信息,当所述待执行任务触发,启动对应的容器并且运行执行实例,包括:
根据所述调度任务队列信息,确定各个所述待执行任务对应的任务类型;
当所述待执行任务触发,根据对应的所述任务类型,启动与所述任务类型对应的容器并且运行执行实例。
根据本发明提供的一种后台任务调度方法,在所述根据所述调度任务队列信息,当所述待执行任务触发,启动对应的容器并且运行执行实例,与所述获取执行实例列表信息之间,还包括:
获取各个所述执行实例的注册信息,所述注册信息反映所述执行实例的资源情况以及处理的任务类型;
根据所述注册信息,排列所述执行实例以形成所述执行实例列表信息。
根据本发明提供的一种后台任务调度方法,所述获取所述执行实例的运行信息,当所述容器内全部的所述执行实例完成对应的任务后,销毁所述容器,包括:
获取所述执行实例的运行信息;
当所述执行实例完成当前对应的任务时,根据所述执行实例对应的所述注册信息,查询所述调度任务队列信息,判断在预设时间内是否能够分配对应的所述待执行任务至所述执行实例;
若能够分配,将所述执行实例与对应的所述待执行任务关联;
若不能够分配,则判定所述执行实例完成对应的任务;
当容器内全部的所述执行实例完成对应的任务后,销毁所述容器。
根据本发明提供的一种后台任务调度方法,在所述获取调度任务队列信息之前,还包括:
获取任务列表信息,所述任务列表信息包括多个待执行任务;
获取调度列表信息,所述调度列表信息包括多个任务处理节点;
根据所述任务列表信息以及所述调度列表信息,将所述待执行任务分配给各个所述任务处理节点,以形成所述调度任务队列信息。
本发明还提供一种设备,包括:任务调度模块、资源调度模块以及执行模块,所述任务调度模块用于获取调度任务队列信息,所述调度任务队列信息包括至少一个待执行任务,根据所述调度任务队列信息,使所述执行模块启动容器并且运行执行实例,从所述资源调度模块获取执行实例列表信息,根据所述调度任务队列信息以及所述执行实例列表信息,将所述待执行任务分配至所述执行实例,以使所述执行实例处理对应的所述待执行任务,从所述执行模块获取所述执行实例的运行信息,当所述容器内全部的所述执行实例完成对应的任务后,使所述执行模块销毁所述容器。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种后台任务调度方法。
本发明提供的一种后台任务调度方法,至少具有以下有益效果:根据获取的调度任务队列信息,当待执行任务触发时,为待执行任务启动对应的容器,并且在容器内运行执行实例。根据获取的执行实例列表信息,将待执行的任务分配至执行实例,执行实例对分配的任务进行处理,当容器内全部的执行实例处理完对应的任务后,销毁容器以释放占用的资源。以此,当待执行任务需要执行时启动容器,任务结束后销毁容器,实现资源弹性调度,防止出现容器空运行的情况,避免浪费占用资源,有利于提高资源利用率以及处理效率。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的一种后台任务调度方法的流程示意图之一;
图2是本发明提供的一种后台任务调度方法的流程示意图之二;
图3是本发明提供的一种后台任务调度方法的流程示意图之三;
图4是本发明提供的一种后台任务调度方法的流程示意图之四;
图5是本发明提供的一种后台任务调度方法的流程示意图之五;
图6是本发明提供的一种后台任务调度方法的流程示意图之六;
图7是本发明提供的一种后台任务调度方法的流程示意图之七;
图8是本发明提供的一种后台任务调度方法的流程示意图之八;
图9是本发明提供的一种后台任务调度方法的流程示意图之九;
图10是本发明提供的一种后台任务调度方法的流程示意图之十;
图11是本发明其中一种实施例的云平台的结构框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合图1-图11描述本发明的一种后台任务调度方法,包括:
S100:获取调度任务队列信息,所述调度任务队列信息包括至少一个待执行任务;
S200:根据所述调度任务队列信息,当所述待执行任务触发,启动对应的容器并且运行执行实例;
S300:获取执行实例列表信息,所述执行实例列表信息包括各个执行实例的状态信息;
S400:根据所述调度任务队列信息以及所述执行实例列表信息,将所述待执行任务分配至所述执行实例,以使所述执行实例处理对应的所述待执行任务;
S500:获取所述执行实例的运行信息,当所述容器内全部的所述执行实例完成对应的任务后,销毁所述容器。
根据获取的调度任务队列信息,当待执行任务触发时,为待执行任务启动对应的容器,并且在容器内运行执行实例。根据获取的执行实例列表信息,将待执行的任务分配至执行实例,执行实例对分配的任务进行处理,当容器内全部的执行实例处理完对应的任务后,销毁容器以释放占用的资源。以此,当待执行任务需要执行时启动容器,任务结束后销毁容器,实现资源弹性调度,防止出现容器空运行的情况,避免浪费占用资源,有利于提高资源利用率以及处理效率。
在本发明的一些实施例中,待执行任务可能需要完成多个处理事项或者子任务,需要为每个事项或子任务分配执行实例,因此可能在容器内运行多个执行实例,亦可能启动多个容器运行多个执行实例。在本发明的一些实施例中,待执行任务可以是只对应启用一个容器并且运行一个执行实例。通过获取执行实例列表信息,并据此分配待执行任务至执行实例,有利于避免两个或多个执行实例处理同一个事项或子任务,防止造成任务处理冲突,提高可靠性。
执行实例具体可以是运行在容器内的进程、服务等。
参考图2,在本发明一种后台任务调度方法的一些实施例中,所述调度任务队列信息包括批量任务;所述S200,包括:
S211:当所述批量任务触发,获取所述批量任务对应的批量任务文件;
S212:对所述批量任务文件根据预设行数进行分片处理以形成多个分片文件;
S213:根据多个所述分片文件,启动容器并运行与所述分片文件对应的执行实例。
当触发的待执行任务为批量任务时,批量任务通常涉及大量的数据处理,据此首先获取批量任务文件,可以是下载批量任务文件到本体。然后根据预设行数,即预先配置的单个文件行数或者最佳效率的文件行数,对批量任务文件进行分片处理,形成多个分片文件。根据形成的多个分片文件,启动容器并且运行与分片文件对应的执行实例,以确保有足够的执行实例处理分片文件。以此,预先对批量任务文件进行分片处理,以形成符合预设行数的分片文件,有利于提高后续的处理效率,避免单个文件过大导致处理时间过长,或者单个文件过小,导致需要的执行实例数量过多。
可以理解的是,一个执行实例可以是对应多个分片文件的实施方式,亦可以是执行实例与分片文件一一对应的实施方式,根据实际需求预先配置分片文件与运行执行实例的数量对应关系。
参考图3,在本发明一种后台任务调度方法的一些实施例中,所述S400,包括:
S411:根据所述调度任务队列信息以及所述执行实例列表信息,将与所述分片文件对应的所述执行实例与所述批量任务关联;
S412:将所述分片文件分配至对应的所述执行实例,以使所述执行实例对所述分片文件进行处理。
在调度处理批量任务时,生成的分片文件可以理解为批量任务所包含的事项或子任务。将执行实例与批量任务关联,同时将执行实例与对应的分片文件相关联,防止不同执行实例处理同一个分片文件,亦方便后续根据执行实例的运行信息获知分片文件的处理进度。执行实例处理分配的分片文件,形成解析文件并上传。
在本发明的一些实施例中,一个执行实例对应多个分片文件,当一个执行实例处理完多个分片文件,对应生成多个解析文件后,可以是按批次上传解析文件至消息队列中,等待消息队列中的解析文件被消耗后再次上传其他批次的解析文件,以此能够避免消息队列拥挤。
参考图4,在本发明一种后台任务调度方法的一些实施例中,所述调度任务队列信息包括流任务;所述S200,包括:
S221:当所述流任务触发,获取所述流任务对应的流节点配置信息,所述流节点配置信息包括多个流节点的信息以及流节点之间的依赖关系;
S222:根据所述流节点配置信息,启动容器并且运行与所述流节点对应的执行实例。
当触发的待执行任务为流任务时,流任务需要不断地实时处理从流节点获取的数据流,并且各流节点之间通过数据传输关联,流节点之间存在依赖关系,需要有序地对数据流进行处理。据此,获取流任务对应的流节点配置信息,能够获知任务涉及的流节点以及相互之间的依赖关系,进而根据流节点配置信息启动容器并且运行与流节点对应的执行实例,以提供流节点所需的执行实例,并且各个执行实例之间亦能够按照流节点之间的依赖关系进行配置。
参考图5,在本发明一种后台任务调度方法的一些实施例中,所述S400,包括:
S421:根据所述调度任务队列信息以及所述执行实例列表信息,将与所述流节点对应的所述执行实例与所述流任务关联;
S422:将各个所述流节点的信息分配至对应的所述执行实例,以使所述执行实例获取所述流节点的流数据进行处理。
将执行实例与流任务关联,同时将执行实例与对应的流节点相关联,以使得执行实例能够与流节点绑定,避免出现多个执行实例处理同一个流节点的数据流造成冲突的情况。执行实例从流节点获取输入数据,或者从消息队列中获取输入数据流,处理完后形成输出数据流根据流节点的依赖关系传递至下一个流节点使用。
参考图6,在本发明一种后台任务调度方法的一些实施例中,在所述S400之后,还包括:
S430:定期向所述执行实例发送快照消息,以使所述执行实例保存当前运行状态生成快照信息并上传;
S440:获取所述快照信息生成运行日志信息;
S450:获取所述执行实例的运行信息,当所述执行实例运行异常时,根据所述运行日志信息恢复所述执行实例的运行状态。
在执行实例处理对应的任务过程中,通过向执行实例定期发送快照消息,即周期性发送快照消息,令执行实例保存当前的处理任务的状态,生成快照信息并上传,然后根据快照信息生成运行日志信息。当执行实例运行异常,如超期处理任务、无响应等情况时,根据运行日志信息恢复执行实例正常工作的运行状态,以继续执行对应的任务,有利于提高执行实例工作的可靠性,以及处理流程的可靠性,避免出现异常时需要从新执行任务,提高处理效率。
根据运行日志消息,亦能够获知执行实例的工作过程,除了用于恢复执行实例外,亦能够用于问题追溯,发现导致异常的问题点,便于进行改善。
在处理批量任务的过程中,执行实例处理分片文件,当收到快照消息后,执行实例完成当前对分片文件的计算处理步骤后,进行保存形成快照信息上传,在出现异常时,根据运行日志信息,恢复执行实例从保存的计算结果状态继续进行计算处理。以此,在实现恢复继承处理进度外,还能够防止对同一分片文件进行重复处理的问题,有利于提高批量任务处理的可靠性。
在处理流任务的过程中,执行实例处理流节点的数据流,当收到快照消息后,保存当前对数据流的处理状态,形成快照消息上传,在出现异常时,根据运行日志信息恢复执行实例从保存的处理状态继续对数据流进行处理。以此,能够在出现异常的时候恢复处理进行外,亦能够确保数据流只会被执行一次,避免出现重复处理的问题,提高流任务处理的可靠性。
参考图7,在本发明一种后台任务调度方法的一些实施例中,所述S200,包括:
S231:根据所述调度任务队列信息,确定各个所述待执行任务对应的任务类型;
S232:当所述待执行任务触发,根据对应的所述任务类型,启动与所述任务类型对应的容器并且运行执行实例。
不同的待执行任务可以分类为不同的任务类型,例如可以划分为批量任务、流任务等,根据调度任务队列信息,确定各个待执行任务的任务类型,当被触发时,根据任务类型启动容器并且运行执行实例,以确保执行实例的处理功能、逻辑能够满足待执行任务的需求。
可以理解的是,在待执行任务为批量任务或流任务时,亦可以是根据批量任务、流任务,启动对应的容器并且运行执行实例。
参考图8,在本发明一种后台任务调度方法的一些实施例中,在所述S200与S300之间,还包括:
S291:获取各个所述执行实例的注册信息,所述注册信息反映所述执行实例的资源情况以及处理的任务类型;
S292:根据所述注册信息,排列所述执行实例以形成所述执行实例列表信息。
根据触发的待执行任务,启动容器并且运行执行实例后,执行实例先进行注册,以上报自身的资源情况以及可以处理的任务类型,方便后续分配具体任务,同时根据执行实例的注册信息进行排列形成执行实例列表信息,能够从执行实例列表信息获取各个执行实例的情况,并且能够择优分配任务,有利于更加合理分配待执行任务的下属事项或子任务。
可以理解的是,一个待执行任务可能存在多个事项或子任务需要处理,根据待执行任务启动容器并且运行执行实例,此时执行实例还没有分配到具体的任务,即具体的事项或子任务,执行实例进行注册生成注册信息,根据执行实例的资源情况以及能够处理的任务类型,为执行实例分配最合适的事项或子任务进行处理,提高任务分配的合理性以及处理效率。
参考图9,在本发明一种后台任务调度方法的一些实施例中,所述S500,包括:
S510:获取所述执行实例的运行信息;
S520:当所述执行实例完成当前对应的任务时,根据所述执行实例对应的所述注册信息,查询所述调度任务队列信息,判断在预设时间内是否能够分配对应的所述待执行任务至所述执行实例;
S530:若能够分配,将所述执行实例与对应的所述待执行任务关联;
S540:若不能够分配,则判定所述执行实例完成对应的任务;
S550:当容器内全部的所述执行实例完成对应的任务后,销毁所述容器。
当执行实例完成当前分配的任务时,查询在预设时间内是否有合适的待执行任务可以分配,即与执行实例的资源情况以及处理的任务类型相适配的待执行任务,并且该待执行任务未触发或未分配执行实例。若可以分配,则直接将待执行任务与执行实例关联,在后续待执行任务触发时,直接将待执行任务分配给关联的执行实例,无需启动容器并运行执行实例,有利于节省启动运行步骤,提高运行效率;若不可以分配,则判定执行实例完成对应的任务,在同一容器内运行的执行实例均完成对应的任务时,销毁容器以释放资源。
需要说明的是,预设时间可以根据实际情况进行设置,未触发的执行任务在关联有执行实例的情况下,在触发时,直接分配给关联的执行实例。没有关联执行实例的待执行任务触发时,启动容器并且运行执行实例,再根据执行实例列表信息,分配给执行实例。在一些实施例中,在资源受限的情况下,待执行任务触发后,资源不足以为触发的待执行任务启动容器并且运行执行实例时,该触发的执行实例处于触发但没有分配给执行实例的状态,此时可以将合适的执行实例与其关联,以直接进行处理,或者没有合适的执行实例的情况下,等待存在足够的资源空闲,能够启动容器运行执行实例处理该待执行任务。
参考图10,在本发明一种后台任务调度方法的一些实施例中,在所述S100之前,还包括:
S001:获取任务列表信息,所述任务列表信息包括多个待执行任务;
S002:获取调度列表信息,所述调度列表信息包括多个任务处理节点;
S003:根据所述任务列表信息以及所述调度列表信息,将所述待执行任务分配给各个所述任务处理节点,以形成所述调度任务队列信息。
在云平台的环境下,存在多个任务处理流节点,通过获取任务列表信息,确定所有的待执行任务,然后根据调度列表信息,将待执行的任务分配给各个任务处理节点,形成与每个任务处理节点一一对应的调度任务队列信息。以此,在云平台的环境下,完成对待执行任务的一次分配,后续各个任务处理节点,根据调度任务队列信息进行二次分配处理,即执行S100、S200、S300、S400、S500,以完成待执行任务的处理。
需要说明的是,根据任务列表信息以及调度列表信息,将待执行任务分配给各个任务处理节点,形成调度任务队列信息,即完成一次分配的过程,可以是在某一任务处理节点中完成,该任务处理节点同样会为自身分配待执行任务,即会获取到调度任务队列信息,因此,S001、S002、S003、S100、S200、S300、S400以及S500可以在同一个任务处理节点中发生。
本发明还提供一种设备,包括:任务调度模块、资源调度模块以及执行模块,所述任务调度模块用于获取调度任务队列信息,所述调度任务队列信息包括至少一个待执行任务,根据所述调度任务队列信息,使所述执行模块启动容器并且运行执行实例,从所述资源调度模块获取执行实例列表信息,根据所述调度任务队列信息以及所述执行实例列表信息,将所述待执行任务分配至所述执行实例,以使所述执行实例处理对应的所述待执行任务,从所述执行模块获取所述执行实例的运行信息,当所述容器内全部的所述执行实例完成对应的任务后,使所述执行模块销毁所述容器。
任务调度模块根据获取的调度任务队列信息,当待执行任务触发时,任务调度模块控制执行模块为待执行任务启动对应的容器,并且在容器内运行执行实例。资源调度模块从执行模块获取执行实例的运行情况,生成执行实例列表信息提供给任务调度模块,任务调度模块根据执行实例列表信息,将待执行的任务分配至执行实例,执行模块中的执行实例对分配的任务进行处理,当容器内全部的执行实例处理完对应的任务后,任务调度模块控制执行模块销毁容器以释放占用的资源。以此,当待执行任务需要执行时启动容器,任务结束后销毁容器,实现资源弹性调度,防止出现容器空运行的情况,避免浪费占用资源,有利于提高资源利用率以及处理效率。
本发明提供的一种设备与上文描述的一种后台任务调度方法可相互对应参照,具体而言,任务调度模块、资源调度模块以及执行模块相互配合可以实现上述任一实施例中的一种后台任务调度方法,不再赘述。设备具体可以是为计算机、服务器等具有处理功能的物件,任务调度模块、资源调度模块以及执行模块可以是分别为设备中的功能模组或者功能程序。
本发明提供的一种设备,应用于搭建云平台的情况下,一般作为任务处理节点使用,参考图11,通常云平台还包括控制台、缓存数据库、任务协同服务组件、分布式数据文件存储组件、分布式搜索引擎组件等,其中,控制台用于显示待执行任务列表、处理中的任务情况以及对任务调度进行配置等;缓存数据库可以用于存储任务列表信息、消息队列、批量任务文件、流任务的数据等;任务协同服务组件用于存储执行实例的注册信息、执行实例与任务之间的关联关系以及执行实例和关联任务的状态;分布式数据文件存储组件可以用于存储执行实例上传的快照信息以及快照数据;分布式搜索引擎组件可以用于搜索运行日志信息,以配合恢复执行实例或进行异常追溯。
另一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的一种后台任务调度方法。
计算机程序被处理器执行时,能够根据获取的调度任务队列信息,当待执行任务触发时,为待执行任务启动对应的容器,并且在容器内运行执行实例。根据获取的执行实例列表信息,将待执行的任务分配至执行实例,执行实例对分配的任务进行处理,当容器内全部的执行实例处理完对应的任务后,销毁容器以释放占用的资源。以此,当待执行任务需要执行时启动容器,任务结束后销毁容器,实现资源弹性调度,防止出现容器空运行的情况,避免浪费占用资源,有利于提高资源利用率以及处理效率。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (12)
1.一种后台任务调度方法,其特征在于,包括:
获取调度任务队列信息,所述调度任务队列信息包括至少一个待执行任务;
根据所述调度任务队列信息,当所述待执行任务触发,启动对应的容器并且运行执行实例;
获取执行实例列表信息,所述执行实例列表信息包括各个执行实例的状态信息;
根据所述调度任务队列信息以及所述执行实例列表信息,将所述待执行任务分配至所述执行实例,以使所述执行实例处理对应的所述待执行任务;
获取所述执行实例的运行信息,当所述容器内全部的所述执行实例完成对应的任务后,销毁所述容器。
2.根据权利要求1所述的一种后台任务调度方法,其特征在于,所述调度任务队列信息包括批量任务;所述根据所述调度任务队列信息,当所述待执行任务触发,启动对应的容器并且运行执行实例,包括:
当所述批量任务触发,获取所述批量任务对应的批量任务文件;
对所述批量任务文件根据预设行数进行分片处理以形成多个分片文件;
根据多个所述分片文件,启动容器并运行与所述分片文件对应的执行实例。
3.根据权利要求2所述的一种后台任务调度方法,其特征在于,所述根据所述调度任务队列信息以及所述执行实例列表信息,将所述待执行任务分配至所述执行实例,以使所述执行实例处理对应的所述待执行任务,包括:
根据所述调度任务队列信息以及所述执行实例列表信息,将与所述分片文件对应的所述执行实例与所述批量任务关联;
将所述分片文件分配至对应的所述执行实例,以使所述执行实例对所述分片文件进行处理。
4.根据权利要求1所述的一种后台任务调度方法,其特征在于,所述调度任务队列信息包括流任务;所述根据所述调度任务队列信息,当所述待执行任务触发,启动对应的容器并且运行执行实例,包括:
当所述流任务触发,获取所述流任务对应的流节点配置信息,所述流节点配置信息包括多个流节点的信息以及流节点之间的依赖关系;
根据所述流节点配置信息,启动容器并且运行与所述流节点对应的执行实例。
5.根据权利要求4所述的一种后台任务调度方法,其特征在于,所述根据所述调度任务队列信息以及所述执行实例列表信息,将所述待执行任务分配至所述执行实例,以使所述执行实例处理对应的所述待执行任务,包括:
根据所述调度任务队列信息以及所述执行实例列表信息,将与所述流节点对应的所述执行实例与所述流任务关联;
将各个所述流节点的信息分配至对应的所述执行实例,以使所述执行实例获取所述流节点的流数据进行处理。
6.根据权利要求1至5任一权利要求所述的一种后台任务调度方法,其特征在于,在所述根据所述调度任务队列信息以及所述执行实例列表信息,将所述待执行任务分配至所述执行实例,以使所述执行实例处理对应的所述待执行任务之后,还包括:
定期向所述执行实例发送快照消息,以使所述执行实例保存当前运行状态生成快照信息并上传;
获取所述快照信息生成运行日志信息;
获取所述执行实例的运行信息,当所述执行实例运行异常时,根据所述运行日志信息恢复所述执行实例的运行状态。
7.根据权利要求1所述的一种后台任务调度方法,其特征在于,所述根据所述调度任务队列信息,当所述待执行任务触发,启动对应的容器并且运行执行实例,包括:
根据所述调度任务队列信息,确定各个所述待执行任务对应的任务类型;
当所述待执行任务触发,根据对应的所述任务类型,启动与所述任务类型对应的容器并且运行执行实例。
8.根据权利要求7所述的一种后台任务调度方法,其特征在于,在所述根据所述调度任务队列信息,当所述待执行任务触发,启动对应的容器并且运行执行实例,与所述获取执行实例列表信息之间,还包括:
获取各个所述执行实例的注册信息,所述注册信息反映所述执行实例的资源情况以及处理的任务类型;
根据所述注册信息,排列所述执行实例以形成所述执行实例列表信息。
9.根据权利要求8所述的一种后台任务调度方法,其特征在于,所述获取所述执行实例的运行信息,当所述容器内全部的所述执行实例完成对应的任务后,销毁所述容器,包括:
获取所述执行实例的运行信息;
当所述执行实例完成当前对应的任务时,根据所述执行实例对应的所述注册信息,查询所述调度任务队列信息,判断在预设时间内是否能够分配对应的所述待执行任务至所述执行实例;
若能够分配,将所述执行实例与对应的所述待执行任务关联;
若不能够分配,则判定所述执行实例完成对应的任务;
当容器内全部的所述执行实例完成对应的任务后,销毁所述容器。
10.根据权利要求1所述的一种后台任务调度方法,其特征在于,在所述获取调度任务队列信息之前,还包括:
获取任务列表信息,所述任务列表信息包括多个待执行任务;
获取调度列表信息,所述调度列表信息包括多个任务处理节点;
根据所述任务列表信息以及所述调度列表信息,将所述待执行任务分配给各个所述任务处理节点,以形成所述调度任务队列信息。
11.一种设备,其特征在于,包括:任务调度模块、资源调度模块以及执行模块,所述任务调度模块用于获取调度任务队列信息,所述调度任务队列信息包括至少一个待执行任务,根据所述调度任务队列信息,使所述执行模块启动容器并且运行执行实例,从所述资源调度模块获取执行实例列表信息,根据所述调度任务队列信息以及所述执行实例列表信息,将所述待执行任务分配至所述执行实例,以使所述执行实例处理对应的所述待执行任务,从所述执行模块获取所述执行实例的运行信息,当所述容器内全部的所述执行实例完成对应的任务后,使所述执行模块销毁所述容器。
12.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至10任一项所述一种后台任务调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310813563.1A CN116932160A (zh) | 2023-07-04 | 2023-07-04 | 一种后台任务调度方法、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310813563.1A CN116932160A (zh) | 2023-07-04 | 2023-07-04 | 一种后台任务调度方法、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116932160A true CN116932160A (zh) | 2023-10-24 |
Family
ID=88378245
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310813563.1A Pending CN116932160A (zh) | 2023-07-04 | 2023-07-04 | 一种后台任务调度方法、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116932160A (zh) |
-
2023
- 2023-07-04 CN CN202310813563.1A patent/CN116932160A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110888743B (zh) | 一种gpu资源使用方法、装置及存储介质 | |
CN110383764B (zh) | 无服务器系统中使用历史数据处理事件的系统和方法 | |
CN115328663B (zh) | 基于PaaS平台进行资源调度的方法、装置、设备和存储介质 | |
CN110351384B (zh) | 大数据平台资源管理方法、装置、设备及可读存储介质 | |
CN111625331B (zh) | 任务调度方法、装置、平台、服务器及存储介质 | |
CN109564528B (zh) | 分布式计算中计算资源分配的系统和方法 | |
CN107025139A (zh) | 一种基于云计算的高性能计算调度框架 | |
CN113569987A (zh) | 模型训练方法和装置 | |
CN109117252B (zh) | 基于容器的任务处理的方法、系统及容器集群管理系统 | |
CN108737560A (zh) | 云计算任务智能调度方法及系统、可读存储介质、终端 | |
CN113434284B (zh) | 一种隐私计算服务端设备、系统及任务调度方法 | |
CN111984385A (zh) | 基于装饰bim模型的任务调度方法和任务调度装置 | |
CN112579304A (zh) | 基于分布式平台的资源调度方法、装置、设备及介质 | |
CN115617497B (zh) | 线程处理方法、调度组件、监测组件、服务器和存储介质 | |
CN110659131A (zh) | 任务处理方法、电子装置、计算机设备及存储介质 | |
CN114546648A (zh) | 任务处理方法及任务处理平台 | |
CN114816709A (zh) | 任务调度方法、装置、服务器及可读存储介质 | |
CN110532060B (zh) | 一种混合网络环境数据采集方法及系统 | |
WO2001082074A1 (fr) | Systeme informatique et support d'enregistrement pouvant etre lu par ordinateur | |
CN117251269A (zh) | Jenkins资源管理方法、装置、设备及存储介质 | |
CN110750362A (zh) | 生物信息的分析方法、装置和存储介质 | |
CN116932160A (zh) | 一种后台任务调度方法、设备及存储介质 | |
CN115712572A (zh) | 任务的测试方法、装置、存储介质及电子装置 | |
CN113434591B (zh) | 数据处理方法以及装置 | |
CN115509716A (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 |