CN115630806A - 一种任务调度方法、装置、计算机设备及存储介质 - Google Patents
一种任务调度方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN115630806A CN115630806A CN202211236236.6A CN202211236236A CN115630806A CN 115630806 A CN115630806 A CN 115630806A CN 202211236236 A CN202211236236 A CN 202211236236A CN 115630806 A CN115630806 A CN 115630806A
- Authority
- CN
- China
- Prior art keywords
- task
- processed
- data
- directory
- processor
- 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
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开了一种任务调度方法、装置、计算机设备及存储介质,本方案确定待处理的批量任务,根据批量任务中的任务数据的数据属性,对批量任务进行任务拆分,将拆分得到的子任务根据数据属性保存到任务目录下得到数据目录;通过预设的主处理器查询数据目录,当数据目录中存在待处理的任务目录时,获取至少一个副处理器的任务处理状态;基于至少一个副处理器的任务处理状态,根据预设的任务调度逻辑确定处理待处理的任务目录对应的目标副处理器;将待处理的任务目录下的待处理子任务分配给目标副处理器,以使目标副处理器对待处理子任务进行任务处理,并将任务处理完成的待处理子任务发送至下游模块,从而提高多个任务进行处理时的处理效率。
Description
技术领域
本申请涉及任务调度技术领域,具体涉及一种任务调度方法、装置、计算机设备及存储介质。
背景技术
随着社会的发展,在多个流程画布同时运行时,由于一流程任务中存在多个子流程任务,而不同子流程任务所进行处理的数据,以及处理数据的时间均不相同,而在处理多个任务时,通常只能以特定顺序安排处理器对任务进行处理,但是不同任务的规模以及处理器的处理能力均不相同,从而导致多个任务进行处理时的处理效率较低。
发明内容
本申请实施例提供一种任务调度方法、装置、计算机设备及存储介质,可以提高多个任务进行处理时的处理效率。
本申请实施例提供了一种任务调度方法,包括:
确定待处理的批量任务,获取上述批量任务的任务数据的数据属性;
根据上述批量任务中的任务数据的数据属性,对上述批量任务进行任务拆分,以及将拆分得到的子任务根据上述数据属性保存到任务目录下得到数据目录,上述数据目录中的每一条任务目录下的子任务在上述数据属性上满足预设匹配条件;
通过预设的主处理器查询上述数据目录,当上述数据目录中存在待处理的任务目录时,获取至少一个副处理器的任务处理状态;
基于至少一个上述副处理器的任务处理状态,根据预设的任务调度逻辑确定处理上述待处理的任务目录对应的目标副处理器;
将上述待处理的任务目录下的待处理子任务分配给上述目标副处理器,以使上述目标副处理器对上述待处理子任务进行任务处理,并将任务处理完成的待处理子任务发送至下游模块。
相应的,本申请实施例还提供了一种任务调度装置,包括:
任务确定模块,用于确定待处理的批量任务,获取上述批量任务的任务数据的数据属性;
任务拆分模块,用于根据上述批量任务中的任务数据的数据属性,对上述批量任务进行任务拆分,以及将拆分得到的子任务根据上述数据属性保存到任务目录下得到数据目录,上述数据目录中的每一条任务目录下的子任务在上述数据属性上满足预设匹配条件;
状态获取模块,用于通过预设的主处理器查询上述数据目录,当上述数据目录中存在待处理的任务目录时,获取至少一个副处理器的任务处理状态;
处理器确定模块,用于基于至少一个上述副处理器的任务处理状态,根据预设的任务调度逻辑确定处理上述待处理的任务目录对应的目标副处理器;
任务分配模块,用于将上述待处理的任务目录下的待处理子任务分配给上述目标副处理器,以使上述目标副处理器对上述待处理子任务进行任务处理,并将任务处理完成的待处理子任务发送至下游模块。
在一些实施例中,上述任务调度装置还包括:
记录添加模块,用于当上述数据目录中存在待处理的任务目录时,在预设的任务状态监控表中添加上述待处理的任务目录对应的目标任务记录;
信号更新模块,用于根据上述目标副处理器在上述任务状态监控表中的目标任务记录处更新的心跳信号,确定上述待处理子任务的任务状态。
在一些实施例中,上述任务调度装置还包括:
状态确定模块,用于若监测到上述目标任务记录处的心跳信号在预设时间内并未更新,则确定上述待处理子任务的任务状态为处理失败;
状态获取模块,还用于重新获取至少一个副处理器的任务处理状态,并基于重新获取的至少一个上述副处理器的任务处理状态,根据预设的任务调度逻辑确定处理上述待处理子任务的副处理器。
在一些实施例中,上述处理器确定模块包括:
数量确定单元,用于根据上述任务状态监控表中各个任务记录对应的心跳信号,确定当前任务进行处理的任务数量;
处理器确定单元,用于当上述任务数量小于预设数量阈值时,基于至少一个上述副处理器的任务处理状态,根据预设的任务调度逻辑确定处理上述待处理的任务目录对应的目标副处理器。
在一些实施例中,上述任务拆分模块包括:
数据保存单元,用于将拆分得到的子任务对应的任务数据保存到上述子任务对应的任务目录的目录文件夹中;
上述任务分配模块包括:
数据获取单元,用于将上述待处理的任务目录下的待处理子任务分配给上述目标副处理器,以使上述目标副处理器从上述待处理的任务目录对应的目录文件夹中获取上述待处理子任务对应的任务数据,并对上述待处理子任务的任务数据进行任务处理。
在一些实施例中,上述数据属性包括时间属性,上述任务拆分模块还包括:
任务拆分单元,用于根据上述批量任务中的任务数据的时间属性,将时间属性一致的任务数据对应的任务拆分为一个子任务。
在一些实施例中,上述任务调度装置还包括:
时间获取模块,用于获取各个已注册的处理器的注册时间;
选举模块,用于根据各个处理器的注册时间,选举出注册时间最早的处理器作为主处理器;
处理器确定模块,还用于将各个已注册的处理器中除上述主处理器之外的处理器确定为副处理器。
相应的,本申请实施例还提供了一种计算机设备,包括存储器,处理器及存储在储存器上并可在处理器上运行的计算机程序,其中,处理器执行本申请实施例任一提供的任务调度方法。
相应的,本申请实施例还提供了一种存储介质,存储介质存储有多条指令,指令适于处理器进行加载,以执行如上的任务调度方法。
本申请实施例确定待处理的批量任务,获取上述批量任务的任务数据的数据属性;根据上述批量任务中的任务数据的数据属性,对上述批量任务进行任务拆分,以及将拆分得到的子任务根据上述数据属性保存到任务目录下得到数据目录,上述数据目录中的每一条任务目录下的子任务在上述数据属性上满足预设匹配条件;通过预设的主处理器查询上述数据目录,当上述数据目录中存在待处理的任务目录时,获取至少一个副处理器的任务处理状态;基于至少一个上述副处理器的任务处理状态,根据预设的任务调度逻辑确定处理上述待处理的任务目录对应的目标副处理器;将上述待处理的任务目录下的待处理子任务分配给上述目标副处理器,以使上述目标副处理器对上述待处理子任务进行任务处理,并将任务处理完成的待处理子任务发送至下游模块,从而通过任务拆分,以及通过任务调度逻辑调度任务对应的副处理器,来提高多个任务进行处理时的处理效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种任务调度方法的流程示意图。
图2为本申请实施例提供的一种任务状态机变化示意图。
图3为本申请实施例提供的一种任务调度装置的结构框图。
图4为本申请实施例提供的计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供一种任务调度方法、装置、存储介质及计算机设备。具体地,本申请实施例的任务调度方法可以由计算机设备执行,其中,该计算机设备可以为服务器,也可以为终端等设备。其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式***,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、台式计算机、笔记本电脑、平板电脑等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
例如,该计算机设备可以是终端,该终端可以确定待处理的批量任务,获取上述批量任务的任务数据的数据属性;根据上述批量任务中的任务数据的数据属性,对上述批量任务进行任务拆分,以及将拆分得到的子任务根据上述数据属性保存到任务目录下得到数据目录,上述数据目录中的每一条任务目录下的子任务在上述数据属性上满足预设匹配条件;通过预设的主处理器查询上述数据目录,当上述数据目录中存在待处理的任务目录时,获取至少一个副处理器的任务处理状态;基于至少一个上述副处理器的任务处理状态,根据预设的任务调度逻辑确定处理上述待处理的任务目录对应的目标副处理器;将上述待处理的任务目录下的待处理子任务分配给上述目标副处理器,以使上述目标副处理器对上述待处理子任务进行任务处理,并将任务处理完成的待处理子任务发送至下游模块。
基于上述问题,本申请实施例提供一种任务调度方法、装置、计算机设备及存储介质,可以提高多个任务进行处理时的处理效率。
以下分别进行详细说明。需说明的是,以下实施例的描述顺序不作为对实施例优选顺序的限定。
本申请实施例提供一种任务调度方法,该方法可以由终端或服务器执行,本申请实施例以任务调度方法由终端执行为例来进行说明。
请参阅图1,图1为本申请实施例提供的一种任务调度方法的流程示意图。该任务调度方法的具体流程可以如下:
101、确定待处理的批量任务,获取上述批量任务的任务数据的数据属性。
其中,上述待处理的批量任务为当前运行的多个流程画布对应的任务,由于一流程画布有不同的子流程,该子流程即为一个任务,而不同的子流程对应的执行数据处理的时间不同,所以终端通过获取批量任务中的各个任务所对应的任务数据的数据属性来对批量任务进行相应地处理。
其中,上述数据属性包括但不限于是任务所处的流程画布、执行任务所需的策略器粒度、获取任务数据的通道、任务处理结果的下发类型、任务所处的流程画布的画布类型以及时间属性等。其中,上述时间属性包括任务数据的数据处理时间,即相当于是将任务处理结果下发的时间。
102、根据上述批量任务中的任务数据的数据属性,对上述批量任务进行任务拆分,以及将拆分得到的子任务根据上述数据属性保存到任务目录下得到数据目录,上述数据目录中的每一条任务目录下的子任务在上述数据属性上满足预设匹配条件。
在本实施例中,终端通过对上述批量任务进行任务拆分,可以提高任务处理的灵活性,方便在对上述批量任务进行并发处理,并且降低了任务处理的延迟性。而在本实施例中,终端通过上述批量任务中的各个任务的任务数据对应的至少一项数据属性来对批量任务进行任务拆分,不仅提高了任务拆分效率,而且在任务处理时降低了资源占用的情况,从而提高了整体的时效性,例如,将批量任务中的各个任务的任务数据的数据属性的属性值一样的拆分为一个子任务,该子任务中的任务数量为至少一个。
具体地,上述数据属性包括时间属性,上述根据上述批量任务中的任务数据的数据属性,对上述批量任务进行任务拆分可以包括:根据上述批量任务中的任务数据的时间属性,将时间属性一致的任务数据对应的任务拆分为一个子任务。其中,可根据时间属性的属性值判断任务数据是否一致。
示例性地,设定当前批量任务对应有两个流程画布,分别为流程画布A和流程画布B,并且流程画布A和流程画布B中均有两个子流程,且流程画布A中的两个子流程任务数据的数据处理时间分别为3天和5天,流程画布B中的两个子流程任务数据的数据处理时间分别为7天和5天,那么将时间属性一致的任务数据对应的任务拆分为一个子任务,即将流程画布A中的任务数据的数据处理时间为5天的子流程,以及流程画布B中的任务数据的数据处理时间为5天的子流程,拆分为一个子任务。
在本实施例中,在将上述批量任务拆分后,终端通过将拆分得到的子任务根据拆分时所用到的数据属性保存到任务目录下,以得到数据目录,上述数据目录中的每一条任务目录下的子任务在上述数据属性上满足预设匹配条件,从而通过数据目录实现对拆分得到的子任务进行监控,并且还能依据该数据目录获取子任务的任务数据,例如,若设定一任务目录的数据属性为任务数据的数据处理时间,该数据属性的属性值为7天,那么保存在该任务目录下的子任务的任务数据的数据处理时间为7天。
在一些实施例中,在根据上述批量任务中的任务数据的数据属性,对上述批量任务进行任务拆分时,终端可以根据任务数据的数据属性将批量任务按照最细力度进行拆分。此外,在对上述批量任务进行拆分时,终端还可基于业务要求来确定出对上述批量任务进行任务拆分所需的至少一项数据属性。
在一些实施例中,上述将拆分得到的子任务根据上述数据属性保存到任务目录下得到数据目录可以包括:将拆分得到的子任务对应的任务数据保存到上述子任务对应的任务目录的目录文件夹中。
具体地,在将批量任务进行任务拆分后,可基于拆分结果,将拆分得到的子任务对应的任务数据保存在分布式文件***HDFS中,即根据该拆分得到的子任务根据拆分时所用到的数据属性将拆分得到的子任务对应的任务数据保存在HDFS的数据目录中的对应任务目录的目录文件夹中,以便于在有需求时,从子任务对应的目录文件夹中获取数据。其中,HDFS上的文件可以按照任务目录拆成多个对应的目录文件夹,以提高并发处理时的并发度。
在一些实施例中,在将拆分得到的子任务对应的任务数据保存在数据目录中的特定任务目录下后,还可以设定对应的关键属性索引,以便于通过关键属性索引来准确查找任务。
103、通过预设的主处理器查询上述数据目录,当上述数据目录中存在待处理的任务目录时,获取至少一个副处理器的任务处理状态。
在本实施例中,为了实现高可用,终端可设置任务调度模块,用于部署多个服务,例如任务查询服务、任务状态机管理服务,终端可通过任务调度模块中的主处理器进行任务查询服务,即查询上述数据目录,以得到当前未进行任务处理的任务,即数据目录中存在的任务目录为待处理的任务目录,该待处理的任务目录对应的子任务为待处理任务,从而终端可通过主处理器确定出当前需进行任务处理的任务对应的任务目录。并且,终端通过获取任务调度模块中至少一个副处理器的任务处理状态,以便于实现对待处理的任务目录对应的任务的调度。其中,上述任务调度模块通过一个有状态的java服务来构建,出于高可用的考虑,终端可以同时可以启动两个及两个以上调度模块。
其中,上述主处理器主要用于执行任务调度逻辑,即进行任务查询服务,并将查询到的任务分配给副处理器,以及用于任务状态机管理,即管理任务处理的状态。而上述副处理器主要用于进行任务处理,从而通过任务调度模块,实现各个任务的相关状态数据的增、删、查、改等至少一种操作。其中,主处理器可通过轮询的方式来定期进行任务查询服务,以通过扫描数据目录,来判断当前是否存在待处理的任务目录。
其中,上述副处理器的任务处理状态用于指示副处理器的负载情况,该任务处理状态包括但不限于是当前未处理的任务数量、当前所处理的任务的进度、处理失败的任务的数量等。
在一些实施例中,在通过预设的主处理器查询上述数据目录之前,还可以包括:终端可通过分布式锁zookeeper或redis来实现任务调度模块中的选主服务来从各个处理器中选举出leader角色,即上述主处理器,例如,终端通过zookeeper的临时节点来实现选主功能。
在一些实施例中,终端可通过各个处理器的注册时间确定出主处理器,即在通过预设的主处理器查询上述数据目录之前,还可以包括:终端获取各个已注册的处理器的注册时间,并根据各个处理器的注册时间,选举出注册时间最早的处理器作为主处理器,将各个已注册的处理器中除上述主处理器之外的处理器确定为副处理器。
104、基于至少一个上述副处理器的任务处理状态,根据预设的任务调度逻辑确定处理上述待处理的任务目录对应的目标副处理器。
在本实施例中,终端通过主处理器,来根据预设的任务调度逻辑来进行待处理的任务目录对应任务的任务调度,以确定处理上述待处理的任务目录对应的目标副处理器,实现了灵活分配任务以及合理配置处理器资源,从而致使资源占用降低,并且提高了任务处理的时效性。
其中,上述任务调度逻辑可基于待处理的任务目录下的任务数量、待处理的任务目录下的任务对应的用户规模以及负载情况中的至少一种参数来综合得到,确定出对应的逻辑。其中,上述负载情况可以是副处理器的负载情况。从而通过对待处理的任务目录的本身情况以及副处理器的处理能力的综合考量,来实现对批量任务进行处理,例如对多个不同租户的多个待处理任务进行处理。
105、将上述待处理的任务目录下的待处理子任务分配给上述目标副处理器,以使上述目标副处理器对上述待处理子任务进行任务处理,并将任务处理完成的待处理子任务发送至下游模块。
在本实施例中,在终端确定出目标副处理器之后,终端可通过将该待处理的任务目录下的待处理子任务分配给目标副处理器,来实现对待处理的任务目录下的待处理子任务的任务处理,并在目标副处理器将待处理子任务处理完成后,将任务处理完成的待处理子任务发送至下游模块,即将任务处理完成的待处理子任务的处理结果发送至下游模块,从而最终实现待处理子任务的任务处理和处理结果的下发逻辑。
具体地,副处理器可通过Flink的批处理模式,来实现对分配给副处理器的任务进行任务处理,即在该模式下,副处理器读取各个任务的任务数据,并对各个任务的任务数据分别进行任务处理。
在一些实施例中,为便于监控,任务调度模块中的副处理器在处理任务时,可定时更新任务的进程,以便于任务调度模块中的主处理器能够判断当前任务是否正在被处理,以便于在任务处理失败时,主处理器能够及时发现,并对处理失败的任务进行重新调度。其中,副处理器可通过更新心跳信号的方式来更新任务的进程。
在一些实施例中,若将拆分得到的子任务对应的任务数据保存到上述子任务对应的任务目录的目录文件夹中,则上述将上述待处理的任务目录下的待处理子任务分配给上述目标副处理器,以使上述目标副处理器对上述待处理子任务进行任务处理时从目录文件夹中获取相应任务数据,以提高各个任务的任务数据的获取速度。
具体地,可以包括:终端将上述待处理的任务目录下的待处理子任务分配给上述目标副处理器,以使上述目标副处理器从上述待处理的任务目录对应的目录文件夹中获取上述待处理子任务对应的任务数据,并对上述待处理子任务的任务数据进行任务处理。
在一些实施例中,为提高主处理器对任务的控制能力,在通过预设的主处理器查询上述数据目录之后还可以包括:当上述数据目录中存在待处理的任务目录时,终端在预设的任务状态监控表中添加上述待处理的任务目录对应的目标任务记录,以便于终端再将待处理的任务目录下的待处理子任务分配给目标副处理器之后,目标副处理器可定期在目标任务记录处更新特定信息,进而基于目标副处理器在目标任务记录处更新的特定信息,来确定任务的状态机变化,实现对任务的监控。
其中,上述任务状态监控表可以为MySQL数据表。
相应地,在将上述待处理的任务目录下的待处理子任务分配给上述目标副处理器之后还可以包括:根据上述目标副处理器在上述任务状态监控表中的目标任务记录处更新的心跳信号,该心跳信号即为上述特定信息,确定上述待处理子任务的任务状态,即可通过MySQL数据表来保存待处理子任务的任务状态。
可以理解的是,终端每次对任务进行任务调度,都会对任务状态监控表中的任务记录进行增、删、改、查等至少一种操作。
其中,上述任务状态包括但不限于是任务正常处理状态、任务处理失败状态、任务超时状态、处理完成状态等,即倘若目标任务记录处在一定时间内更新心跳信号,则说明该目标任务记录对应的任务正在进行处理,则该任务的任务状态未正常处理状态;倘若目标任务记录处在一定时间内未更新心跳信号,则说明该目标任务记录已丧失心跳,则需对丧失心跳的任务进行重新调度,以实现对过期数据的清理;倘若任务处理完成,则将该任务的任务状态更新为处理完成状态。
示例性地,如图2所示,待任务启动进行处理后,若任务定期更新心跳信号,则任务的任务状态为“Running”状态;若任务处理完成,则任务的任务状态由“Running”状态变为“Finished”状态,说明任务处理完成行;若任务的心跳信号在一定时间内未更新,则任务的任务状态由“Running”状态变为“Default”状态,说明任务处理失败;进一步地,倘若再次分配副处理器为心跳信号在一定时间内未更新的任务进行处理,则任务的任务状态由“Default”状态变为“Running”状态,说明任务重新被处理。
在一些实施例中,在将上述待处理的任务目录下的待处理子任务分配给上述目标副处理器之后还可以包括:若监测到上述目标任务记录处的心跳信号在预设时间内并未更新,则确定上述待处理子任务的任务状态为处理失败。终端需重新获取至少一个副处理器的任务处理状态,并基于重新获取的至少一个上述副处理器的任务处理状态,最后根据预设的任务调度逻辑确定处理上述待处理子任务的副处理器。
在一些实施例中,上述基于至少一个上述副处理器的任务处理状态,根据预设的任务调度逻辑确定处理上述待处理的任务目录对应的目标副处理器可以包括:终端根据上述任务状态监控表中各个任务记录对应的心跳信号,来确定当前任务进行处理的任务数量。为了防止集群资源被耗光,倘若上述任务数量等于预设数量阈值,则不进行任务分配,即不根据预设的任务调度逻辑确定处理上述待处理的任务目录对应的目标副处理器。而当上述任务数量小于预设数量阈值时,终端基于至少一个上述副处理器的任务处理状态,根据预设的任务调度逻辑确定处理上述待处理的任务目录对应的目标副处理器。
本申请实施例公开了一种任务调度方法,该方法包括:确定待处理的批量任务,获取上述批量任务的任务数据的数据属性;根据上述批量任务中的任务数据的数据属性,对上述批量任务进行任务拆分,以及将拆分得到的子任务根据上述数据属性保存到任务目录下得到数据目录,上述数据目录中的每一条任务目录下的子任务在上述数据属性上满足预设匹配条件;通过预设的主处理器查询上述数据目录,当上述数据目录中存在待处理的任务目录时,获取至少一个副处理器的任务处理状态;基于至少一个上述副处理器的任务处理状态,根据预设的任务调度逻辑确定处理上述待处理的任务目录对应的目标副处理器;将上述待处理的任务目录下的待处理子任务分配给上述目标副处理器,以使上述目标副处理器对上述待处理子任务进行任务处理,并将任务处理完成的待处理子任务发送至下游模块,以此,可以提高多个任务进行处理时的处理效率。
为便于更好的实施本申请实施例提供的任务调度方法,本申请实施例还提供一种基于上述任务调度方法的任务调度装置。其中名词的含义与上述任务调度方法中相同,具体实现细节可以参考方法实施例中的说明。
请参阅图3,图3为本申请实施例提供的一种任务调度装置的结构框图,该装置包括:
任务确定模块301,用于确定待处理的批量任务,获取上述批量任务的任务数据的数据属性;
任务拆分模块302,用于根据上述批量任务中的任务数据的数据属性,对上述批量任务进行任务拆分,以及将拆分得到的子任务根据上述数据属性保存到任务目录下得到数据目录,上述数据目录中的每一条任务目录下的子任务在上述数据属性上满足预设匹配条件;
状态获取模块303,用于通过预设的主处理器查询上述数据目录,当上述数据目录中存在待处理的任务目录时,获取至少一个副处理器的任务处理状态;
处理器确定模块304,用于基于至少一个上述副处理器的任务处理状态,根据预设的任务调度逻辑确定处理上述待处理的任务目录对应的目标副处理器;
任务分配模块305,用于将上述待处理的任务目录下的待处理子任务分配给上述目标副处理器,以使上述目标副处理器对上述待处理子任务进行任务处理,并将任务处理完成的待处理子任务发送至下游模块。
在一些实施例中,上述任务调度装置还包括:
记录添加模块,用于当上述数据目录中存在待处理的任务目录时,在预设的任务状态监控表中添加上述待处理的任务目录对应的目标任务记录;
信号更新模块,用于根据上述目标副处理器在上述任务状态监控表中的目标任务记录处更新的心跳信号,确定上述待处理子任务的任务状态。
在一些实施例中,上述任务调度装置还包括:
状态确定模块,用于若监测到上述目标任务记录处的心跳信号在预设时间内并未更新,则确定上述待处理子任务的任务状态为处理失败;
状态获取模块,还用于重新获取至少一个副处理器的任务处理状态,并基于重新获取的至少一个上述副处理器的任务处理状态,根据预设的任务调度逻辑确定处理上述待处理子任务的副处理器。
在一些实施例中,上述处理器确定模块304包括:
数量确定单元,用于根据上述任务状态监控表中各个任务记录对应的心跳信号,确定当前任务进行处理的任务数量;
处理器确定单元,用于当上述任务数量小于预设数量阈值时,基于至少一个上述副处理器的任务处理状态,根据预设的任务调度逻辑确定处理上述待处理的任务目录对应的目标副处理器。
在一些实施例中,上述任务拆分模块302包括:
数据保存单元,用于将拆分得到的子任务对应的任务数据保存到上述子任务对应的任务目录的目录文件夹中;
上述任务分配模块305包括:
数据获取单元,用于将上述待处理的任务目录下的待处理子任务分配给上述目标副处理器,以使上述目标副处理器从上述待处理的任务目录对应的目录文件夹中获取上述待处理子任务对应的任务数据,并对上述待处理子任务的任务数据进行任务处理。
在一些实施例中,上述数据属性包括时间属性,上述任务拆分模块302还包括:
任务拆分单元,用于根据上述批量任务中的任务数据的时间属性,将时间属性一致的任务数据对应的任务拆分为一个子任务。
在一些实施例中,上述任务调度装置还包括:
时间获取模块,用于获取各个已注册的处理器的注册时间;
选举模块,用于根据各个处理器的注册时间,选举出注册时间最早的处理器作为主处理器;
处理器确定模块,还用于将各个已注册的处理器中除上述主处理器之外的处理器确定为副处理器。
本申请实施例公开了一种任务调度装置,通过任务确定模块301,用于确定待处理的批量任务,获取上述批量任务的任务数据的数据属性;任务拆分模块302,用于根据上述批量任务中的任务数据的数据属性,对上述批量任务进行任务拆分,以及将拆分得到的子任务根据上述数据属性保存到任务目录下得到数据目录,上述数据目录中的每一条任务目录下的子任务在上述数据属性上满足预设匹配条件;状态获取模块303,用于通过预设的主处理器查询上述数据目录,当上述数据目录中存在待处理的任务目录时,获取至少一个副处理器的任务处理状态;处理器确定模块304,用于基于至少一个上述副处理器的任务处理状态,根据预设的任务调度逻辑确定处理上述待处理的任务目录对应的目标副处理器;任务分配模块305,用于将上述待处理的任务目录下的待处理子任务分配给上述目标副处理器,以使上述目标副处理器对上述待处理子任务进行任务处理,并将任务处理完成的待处理子任务发送至下游模块。以此,提高多个任务进行处理时的处理效率。
相应的,本申请实施例还提供一种计算机设备,该计算机设备可以为终端。如图4所示,图4为本申请实施例提供的计算机设备的结构示意图。该计算机设备400包括有一个或者一个以上处理核心的处理器401、有一个或一个以上计算机可读存储介质的存储器402及存储在存储器402上并可在处理器上运行的计算机程序。其中,处理器401与存储器402电性连接。本领域技术人员可以理解,图中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
处理器401是计算机设备400的控制中心,利用各种接口和线路连接整个计算机设备400的各个部分,通过运行或加载存储在存储器402内的软件程序和/或模块,以及调用存储在存储器402内的数据,执行计算机设备400的各种功能和处理数据,从而对计算机设备400进行整体监控。
在本申请实施例中,计算机设备400中的处理器401会按照如下的步骤,将一个或一个以上的应用程序的进程对应的指令加载到存储器402中,并由处理器401来运行存储在存储器402中的应用程序,从而实现各种功能:
确定待处理的批量任务,获取上述批量任务的任务数据的数据属性;
根据上述批量任务中的任务数据的数据属性,对上述批量任务进行任务拆分,以及将拆分得到的子任务根据上述数据属性保存到任务目录下得到数据目录,上述数据目录中的每一条任务目录下的子任务在上述数据属性上满足预设匹配条件;
通过预设的主处理器查询上述数据目录,当上述数据目录中存在待处理的任务目录时,获取至少一个副处理器的任务处理状态;
基于至少一个上述副处理器的任务处理状态,根据预设的任务调度逻辑确定处理上述待处理的任务目录对应的目标副处理器;
将上述待处理的任务目录下的待处理子任务分配给上述目标副处理器,以使上述目标副处理器对上述待处理子任务进行任务处理,并将任务处理完成的待处理子任务发送至下游模块。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
可选的,如图4所示,计算机设备400还包括:触控显示屏403、射频电路404、音频电路405、输入单元406以及电源407。其中,处理器401分别与触控显示屏403、射频电路404、音频电路405、输入单元406以及电源407电性连接。本领域技术人员可以理解,图4中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
触控显示屏403可用于显示图形用户界面以及接收用户作用于图形用户界面产生的操作指令。触控显示屏403可以包括显示面板和触控面板。其中,显示面板可用于显示由用户输入的消息或提供给用户的消息以及计算机设备的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。可选的,可以采用液晶显示器(LCD,Liquid Cryst客户端账户l Displ客户端账户y)、有机发光二极管(OLED,Org客户端账户nic Light-Emitting Diode)等形式来配置显示面板。触控面板可用于收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板上或在触控面板附近的操作),并生成相应的操作指令,且操作指令执行对应程序。可选的,触控面板可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸消息,并将它转换成触点坐标,再送给处理器401,并能接收处理器401发来的命令并加以执行。触控面板可覆盖显示面板,当触控面板检测到在其上或附近的触摸操作后,传送给处理器401以确定触摸事件的类型,随后处理器401根据触摸事件的类型在显示面板上提供相应的视觉输出。在本申请实施例中,可以将触控面板与显示面板集成到触控显示屏403而实现输入和输出功能。但是在某些实施例中,触控面板与触控面板可以作为两个独立的部件来实现输入和输出功能。即触控显示屏403也可以作为输入单元406的一部分实现输入功能。
射频电路404可用于收发射频信号,以通过无线通信与网络设备或其他计算机设备建立无线通讯,与网络设备或其他计算机设备之间收发信号。
音频电路405可以用于通过扬声器、传声器提供用户与计算机设备之间的音频接口。音频电路405可将接收到的音频数据转换后的电信号,传输到扬声器,由扬声器转换为声音信号输出;另一方面,传声器将收集的声音信号转换为电信号,由音频电路405接收后转换为音频数据,再将音频数据输出处理器401处理后,经射频电路404以发送给比如另一计算机设备,或者将音频数据输出至存储器402以便进一步处理。音频电路405还可能包括耳塞插孔,以提供外设耳机与计算机设备的通信。
输入单元406可用于接收输入的数字、字符消息或用户特征消息(例如指纹、虹膜、面部消息等),以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
电源407用于给计算机设备400的各个部件供电。可选的,电源407可以通过电源管理***与处理器401逻辑相连,从而通过电源管理***实现管理充电、放电、以及功耗管理等功能。电源407还可以包括一个或一个以上的直流或交流电源、再充电***、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管图4中未示出,计算机设备400还可以包括摄像头、传感器、无线保真模块、蓝牙模块等,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
由上可知,本实施例提供的计算机设备,通过确定待处理的批量任务,获取上述批量任务的任务数据的数据属性;根据上述批量任务中的任务数据的数据属性,对上述批量任务进行任务拆分,以及将拆分得到的子任务根据上述数据属性保存到任务目录下得到数据目录,上述数据目录中的每一条任务目录下的子任务在上述数据属性上满足预设匹配条件;通过预设的主处理器查询上述数据目录,当上述数据目录中存在待处理的任务目录时,获取至少一个副处理器的任务处理状态;基于至少一个上述副处理器的任务处理状态,根据预设的任务调度逻辑确定处理上述待处理的任务目录对应的目标副处理器;将上述待处理的任务目录下的待处理子任务分配给上述目标副处理器,以使上述目标副处理器对上述待处理子任务进行任务处理,并将任务处理完成的待处理子任务发送至下游模块。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例提供一种计算机可读存储介质,其中存储有多条计算机程序,该计算机程序能够被处理器进行加载,以执行本申请实施例所提供的任一种任务调度方法中的步骤。例如,该计算机程序可以执行如下步骤:
确定待处理的批量任务,获取上述批量任务的任务数据的数据属性;
根据上述批量任务中的任务数据的数据属性,对上述批量任务进行任务拆分,以及将拆分得到的子任务根据上述数据属性保存到任务目录下得到数据目录,上述数据目录中的每一条任务目录下的子任务在上述数据属性上满足预设匹配条件;
通过预设的主处理器查询上述数据目录,当上述数据目录中存在待处理的任务目录时,获取至少一个副处理器的任务处理状态;
基于至少一个上述副处理器的任务处理状态,根据预设的任务调度逻辑确定处理上述待处理的任务目录对应的目标副处理器;
将上述待处理的任务目录下的待处理子任务分配给上述目标副处理器,以使上述目标副处理器对上述待处理子任务进行任务处理,并将任务处理完成的待处理子任务发送至下游模块。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该存储介质可以包括:只读存储器(ROM,Re客户端账户d Only Memory)、随机存取记忆体(R客户端账户M,R客户端账户ndom客户端账户ccess Memory)、磁盘或光盘等。
由于该存储介质中所存储的计算机程序,可以执行本申请实施例所提供的任一种任务调度方法中的步骤,因此,可以实现本申请实施例所提供的任一种任务调度方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
以上对本申请实施例所提供的一种任务调度方法、装置、计算机设备及存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种任务调度方法,其特征在于,所述方法包括:
确定待处理的批量任务,获取所述批量任务的任务数据的数据属性;
根据所述批量任务中的任务数据的数据属性,对所述批量任务进行任务拆分,以及将拆分得到的子任务根据所述数据属性保存到任务目录下得到数据目录,所述数据目录中的每一条任务目录下的子任务在所述数据属性上满足预设匹配条件;
通过预设的主处理器查询所述数据目录,当所述数据目录中存在待处理的任务目录时,获取至少一个副处理器的任务处理状态;
基于至少一个所述副处理器的任务处理状态,根据预设的任务调度逻辑确定处理所述待处理的任务目录对应的目标副处理器;
将所述待处理的任务目录下的待处理子任务分配给所述目标副处理器,以使所述目标副处理器对所述待处理子任务进行任务处理,并将任务处理完成的待处理子任务发送至下游模块。
2.根据权利要求1所述的方法,其特征在于,在通过预设的主处理器查询所述数据目录之后,还包括:
当所述数据目录中存在待处理的任务目录时,在预设的任务状态监控表中添加所述待处理的任务目录对应的目标任务记录;
在将所述待处理的任务目录下的待处理子任务分配给所述目标副处理器之后,还包括:
根据所述目标副处理器在所述任务状态监控表中的目标任务记录处更新的心跳信号,确定所述待处理子任务的任务状态。
3.根据权利要求2所述的方法,其特征在于,在将所述待处理的任务目录下的待处理子任务分配给所述目标副处理器之后,还包括:
若监测到所述目标任务记录处的心跳信号在预设时间内并未更新,则确定所述待处理子任务的任务状态为处理失败;
重新获取至少一个副处理器的任务处理状态,并基于重新获取的至少一个所述副处理器的任务处理状态,根据预设的任务调度逻辑确定处理所述待处理子任务的副处理器。
4.根据权利要求2所述的方法,其特征在于,所述基于至少一个所述副处理器的任务处理状态,根据预设的任务调度逻辑确定处理所述待处理的任务目录对应的目标副处理器,包括:
根据所述任务状态监控表中各个任务记录对应的心跳信号,确定当前任务进行处理的任务数量;
当所述任务数量小于预设数量阈值时,基于至少一个所述副处理器的任务处理状态,根据预设的任务调度逻辑确定处理所述待处理的任务目录对应的目标副处理器。
5.根据权利要求1所述的方法,其特征在于,所述将拆分得到的子任务根据所述数据属性保存到任务目录下得到数据目录,包括:
将拆分得到的子任务对应的任务数据保存到所述子任务对应的任务目录的目录文件夹中;
所述将所述待处理的任务目录下的待处理子任务分配给所述目标副处理器,以使所述目标副处理器对所述待处理子任务进行任务处理,包括:
将所述待处理的任务目录下的待处理子任务分配给所述目标副处理器,以使所述目标副处理器从所述待处理的任务目录对应的目录文件夹中获取所述待处理子任务对应的任务数据,并对所述待处理子任务的任务数据进行任务处理。
6.根据权利要求1所述的方法,其特征在于,所述数据属性包括时间属性,所述根据所述批量任务中的任务数据的数据属性,对所述批量任务进行任务拆分,包括:
根据所述批量任务中的任务数据的时间属性,将时间属性一致的任务数据对应的任务拆分为一个子任务。
7.根据权利要求1至6任一项所述的方法,其特征在于,在通过预设的主处理器查询所述数据目录之前,还包括:
获取各个已注册的处理器的注册时间;
根据各个处理器的注册时间,选举出注册时间最早的处理器作为主处理器;
将各个已注册的处理器中除所述主处理器之外的处理器确定为副处理器。
8.一种任务调度装置,其特征在于,所述装置包括:
任务确定模块,用于确定待处理的批量任务,获取所述批量任务的任务数据的数据属性;
任务拆分模块,用于根据所述批量任务中的任务数据的数据属性,对所述批量任务进行任务拆分,以及将拆分得到的子任务根据所述数据属性保存到任务目录下得到数据目录,所述数据目录中的每一条任务目录下的子任务在所述数据属性上满足预设匹配条件;
状态获取模块,用于通过预设的主处理器查询所述数据目录,当所述数据目录中存在待处理的任务目录时,获取至少一个副处理器的任务处理状态;
处理器确定模块,用于基于至少一个所述副处理器的任务处理状态,根据预设的任务调度逻辑确定处理所述待处理的任务目录对应的目标副处理器;
任务分配模块,用于将所述待处理的任务目录下的待处理子任务分配给所述目标副处理器,以使所述目标副处理器对所述待处理子任务进行任务处理,并将任务处理完成的待处理子任务发送至下游模块。
9.一种计算机设备,其特征在于,包括存储器,处理器及存储在存储器上并在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现如权利要求1至7任一项所述的任务调度方法。
10.一种存储介质,其特征在于,所述存储介质存储有多条指令,所述指令适于处理器进行加载,以执行权利要求1至7任一项所述的任务调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211236236.6A CN115630806A (zh) | 2022-10-10 | 2022-10-10 | 一种任务调度方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211236236.6A CN115630806A (zh) | 2022-10-10 | 2022-10-10 | 一种任务调度方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115630806A true CN115630806A (zh) | 2023-01-20 |
Family
ID=84904784
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211236236.6A Pending CN115630806A (zh) | 2022-10-10 | 2022-10-10 | 一种任务调度方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115630806A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117667363A (zh) * | 2024-02-01 | 2024-03-08 | 深圳市极限网络科技有限公司 | 虚拟机器人的消息处理方法、消息处理装置及存储介质 |
-
2022
- 2022-10-10 CN CN202211236236.6A patent/CN115630806A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117667363A (zh) * | 2024-02-01 | 2024-03-08 | 深圳市极限网络科技有限公司 | 虚拟机器人的消息处理方法、消息处理装置及存储介质 |
CN117667363B (zh) * | 2024-02-01 | 2024-05-14 | 深圳市极限网络科技有限公司 | 虚拟机器人的消息处理方法、消息处理装置及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2893444B1 (en) | Quota-based resource management | |
JP5088234B2 (ja) | メッセージ紐付け処理装置、方法及びプログラム | |
CN110096336B (zh) | 数据监控方法、装置、设备和介质 | |
CN113849312B (zh) | 数据处理任务的分配方法、装置、电子设备及存储介质 | |
CN113110938A (zh) | 一种资源分配方法、装置、计算机设备及存储介质 | |
US10884801B2 (en) | Server resource orchestration based on application priority | |
CN111464659A (zh) | 节点的调度、节点的预选处理方法、装置、设备及介质 | |
US11126466B2 (en) | Server resource balancing using a fixed-sharing strategy | |
CN109213493B (zh) | 容器部署方法、特殊资源管理终端及可读存储介质 | |
US20200272510A1 (en) | Server resource balancing using a suspend-resume strategy | |
US11042402B2 (en) | Intelligent server task balancing based on server capacity | |
CN112231108A (zh) | 任务处理方法、装置、计算机可读存储介质及服务器 | |
CN116166395A (zh) | 任务调度方法、装置、介质及电子设备 | |
CN115630806A (zh) | 一种任务调度方法、装置、计算机设备及存储介质 | |
CN116541142A (zh) | 任务调度方法、装置、设备、存储介质及计算机程序产品 | |
CN108694083B (zh) | 一种服务器的数据处理方法和装置 | |
CN114237743B (zh) | 界面加载方法、装置、电子设备和存储介质 | |
CN115576684A (zh) | 任务处理方法、装置、电子设备及存储介质 | |
CN110706148A (zh) | 人脸图像处理方法、装置、设备和存储介质 | |
CN112463376A (zh) | 一种资源分配方法及装置 | |
CN113495787A (zh) | 资源分配方法、装置、存储介质及电子设备 | |
CN111382141A (zh) | 主从架构配置方法、装置、设备以及计算机可读存储介质 | |
CN111399999A (zh) | 计算机资源处理方法、装置、可读存储介质和计算机设备 | |
CN115629854A (zh) | 分布式任务调度方法、***、电子设备和存储介质 | |
CN114995970A (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 |