任务调度的方法、装置、电子设备和存储介质与流程

文档序号:26139213发布日期:2021-08-03 14:22阅读:83来源:国知局
任务调度的方法、装置、电子设备和存储介质与流程

本发明涉及自动程序设计领域,尤其涉及一种任务调度的方法、装置、电子设备和存储介质。



背景技术:

在大型的交易类系统中,为了满足交易类系统应用的要求,经常需要处理大量的批量任务。现有技术中通常通过定时触发批量任务,任务触发时从任务处理服务器的集群中调用一个任务处理服务器,以处理触发的任务。但是,由于触发的批量任务只会在一个任务处理服务器,很容易使集群中其他任务处理服务器不能满载运行,从而导致负载不均衡。



技术实现要素:

有鉴于此,本发明实施例提供一种任务调度的方法、装置、电子设备和存储介质,能够解决触发的批量任务只会在一个任务处理服务器,很容易使集群中其他任务处理服务器不能满载运行,从而导致负载不均衡。

为实现上述目的,根据本发明实施例的一个方面,提供了一种任务调度的方法。

本发明实施例的一种任务调度的方法包括:接收任务调度请求,基于所述调度节点的地址信息,查询所述调度节点的配置参数表,得出所述调度节点的状态值;判断所述状态值与预设目标值是否一致;若否,则忽略所述任务调度请求;若是,则获取所述任务调度请求中的任务标识,基于所述地址信息和所述任务标识,查询所述配置参数表得出所述调度节点的调度任务量,从任务库中获取所述任务标识对应的所述调度任务量个待处理任务,向一个或多个所述任务处理节点分配待处理任务。

在一个实施例中,所述向一个或多个所述任务处理节点分配待处理任务,包括:

查询所述地址信息和所述任务标识对应的并发批次数量、所述任务处理节点的数量和各所述任务处理节点的地址信息;

根据所述任务处理节点的数量,调用分配模型确定各所述任务处理节点对应的待处理任务,将每个所述任务节点对应的待处理任务拆分为所述并发批次数量个批次任务;

基于各所述任务处理节点的地址信息,向各所述任务处理节点发送对应的批次任务。

在又一个实施例中,所述查询所述任务处理节点的数量和各所述任务处理节点的地址信息,包括:

查询各所述任务处理节点的配置信息,以获取各所述任务处理节点的状态标识;

判断每个任务处理节点的状态标识是否为预设标识;

若是,则将所述任务处理节点确定为有效处理节点;若否,则将所述任务处理节点确定为无效处理节点;

查询所述有效处理节点的数量和各所述有效任务处理节点的地址信息。

在又一个实施例中,所述查询所述调度节点的配置参数表,包括:

向调度参数节点发送查询请求,以使所述调度参数节点基于所述查询请求中所述调度节点的地址信息查询所述调度节点的配置参数表,并返回至所述调度节点。

为实现上述目的,根据本发明实施例的一个方面,提供了又一种任务调度的方法。

本发明实施例的又一种任务调度的方法,用于任务处理节点,包括:

接收调度节点发送的任务处理请求,获取所述任务处理请求中待处理任务;

基于所述任务处理节点的地址信息,从任务处理节点的参数配置表中获取所述任务处理节点的状态标识,以判断所述任务处理节点的状态标识是否为预设标识;

若否,则丢弃所述待处理任务;

若是,则查询所述任务处理节点的运行参数值,判断所述运行参数值是否小于预设运行参数阈值,如果否,则丢弃所述待处理任务,如果是,则对所述待处理任务加锁。

在一个实施例中,所述查询所述任务处理节点的运行参数值,判断所述运行参数值是否小于预设运行参数阈值,包括:

查询所述任务处理节点的线程使用数量,判断所述线程使用数量是否小于预设运行参数阈值。

在又一个实施例中,所述对所述待处理任务的加锁,包括:

获取所述任务处理请求中待处理任务的并发批次数量;

计算所述线程使用数量与所述预设的阈值之间的差值;

判断所述差值是否大于所述并发批次数量;

若是,则对所述待处理任务加锁;

若否,则从所述待处理任务中筛选所述差值个批次任务,确定为目标任务,对所述目标任务加锁,丢弃所述待处理任务中除所述目标任务之外的其他任务。

为实现上述目的,根据本发明实施例的另一方面,提供了一种任务调度的装置。

本发明实施例的一种任务调度的装置,设置于调度节点,包括:接收单元,用于接收任务调度请求,基于所述调度节点的地址信息,查询所述调度节点的配置参数表,得出所述调度节点的状态值;判断单元,用于判断所述状态值与预设目标值是否一致;忽略单元,用于若否,则忽略所述任务调度请求;调度单元,用于若是,则获取所述任务调度请求中的任务标识,基于所述地址信息和所述任务标识,查询所述配置参数表得出所述调度节点的调度任务量,从任务库中获取所述任务标识对应的所述调度任务量个待处理任务,向一个或多个所述任务处理节点分配待处理任务。

在一个实施例中,所述调度单元,具体用于:

查询所述地址信息和所述任务标识对应的并发批次数量、所述任务处理节点的数量和各所述任务处理节点的地址信息;

根据所述任务处理节点的数量,调用分配模型确定各所述任务处理节点对应的待处理任务,将每个所述任务节点对应的待处理任务拆分为所述并发批次数量个批次任务;

基于各所述任务处理节点的地址信息,向各所述任务处理节点发送对应的批次任务。

在又一个实施例中,所述调度单元,具体用于:

查询各所述任务处理节点的配置信息,以获取各所述任务处理节点的状态标识;

判断每个任务处理节点的状态标识是否预设标识;

若是,则将所述任务处理节点确定为有效处理节点;若否,则将所述任务处理节点确定为无效处理节点;

查询所述有效处理节点的数量和各所述有效任务处理节点的地址信息。

在又一个实施例中,所述接收单元,具体用于向调度参数节点发送查询请求,以使所述调度参数节点基于所述查询请求中所述调度节点的地址信息查询所述调度节点的配置参数表,并返回至所述调度节点。

为实现上述目的,根据本发明实施例的另一方面,提供了一种任务调度的装置。

本发明实施例的一种任务调度的装置,设置于任务处理节点,包括:接收单元,用于接收调度节点发送的任务处理请求,获取所述任务处理请求中待处理任务;判断单元,用于基于所述任务处理节点的地址信息,从任务处理节点的参数配置表中获取所述任务处理节点的状态标识,以判断所述任务处理节点的状态标识是否为预设标识;丢弃单元,用于若否,则丢弃所述待处理任务;处理单元,用于若是,则查询所述任务处理节点的运行参数值,判断所述运行参数值是否小于预设运行参数阈值,如果否,则丢弃所述待处理任务,如果是,则对所述待处理任务加锁。

在又一个实施例中,所述处理单元,具体用于:

查询所述任务处理节点的线程使用数量,判断所述线程使用数量是否小于预设运行参数阈值。

在又一个实施例中,所述处理单元,具体用于:

获取所述任务处理请求中待处理任务的并发批次数量;

计算所述线程使用数量与所述预设运行参数阈值之间的差值;

判断所述差值是否大于所述并发批次数量;

若是,则对所述待处理任务加锁;

若否,则从所述待处理任务中筛选所述差值个批次任务,确定为目标任务,对所述目标任务加锁,丢弃所述待处理任务中除所述目标任务之外的其他任务。

为实现上述目的,根据本发明实施例的再一个方面,提供了一种电子设备。

本发明实施例的一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例提供的任务调度的方法。

为实现上述目的,根据本发明实施例的又一个方面,提供了一种计算机可读介质。

本发明实施例的一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例提供的任务调度的方法。

上述发明中的一个实施例具有如下优点或有益效果:本发明实施例中,调度节点接收任务调度请求后,可以先查询其状态值,通过判断状态值是否为预设目标值,来确定其是否为主节点,即是否可以进行任务调度;在确定状态值与预设目标值一致后,可以查询调度节点的调度任务量,然后从任务库中获取待处理任务,并将其分配至各任务处理中心,任务处理中心获取待处理任务后,在确定其能够处理这些待处理任务时,可以为待处理任务加锁,以便于保证这些待处理任务不会被分配至其他任务处理节点。如此本发明实施例中设置调度节点,通过调度节点实现对待处理任务进行调度,分配给各任务处理节点,并且各任务处理节点接收待处理任务后还可以基于运行参数值判定是否能够处理分配的待处理任务,从而可以避免将批量任务集中于一个任务处理节点处理,而其他各任务处理节点不能满载运行,导致负载不均衡的问题,提高任务处理的效率。

上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。

附图说明

附图用于更好地理解本发明,不构成对本发明的不当限定。其中:

图1是根据本发明实施例的任务调度的系统的一种系统架构的示意图;

图2是根据本发明实施例的任务调度的方法的一种主要流程的示意图;

图3是根据本发明实施例的任务调度的方法的又一种主要流程的示意图;

图4是根据本发明实施例的任务调度的方法的又一种主要流程的示意图;

图5是根据本发明实施例的任务调度的装置的主要单元的示意图;

图6是根据本发明实施例的任务调度的装置的主要单元的示意图;

图7是本发明实施例可以应用于其中的又一种示例性系统架构图;

图8是适于用来实现本发明实施例的计算机系统的结构示意图。

具体实施方式

以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。

需要指出的是,在不冲突的情况下,本发明中的实施例以及实施例中的特征可以互相组合。

本发明实施例提供一种任务调度的系统,该系统可以用于批量任务处理的场景,具体可以用于对定时批量任务进行调度的场景。具体的,任务调度的系统可以包括多个调度节点组成的调度节点集群,以及多个任务处理节点组成的任务处理节点集群,其中,调度节点集群中还可以包括用于存储调度参数的调度参数节点,任务处理节点集群还可以包括存储任务信息的任务信息节点。图1所示为本发明实施例中任务调度的系统的一种架构示意图。如图1所示,调度节点设置于调度引擎服务器,各调度引擎服务器组成调度节点集群,任务处理节点设置于批任务处理服务器,各批任务处理服务器组成任务处理节点集群,调度参数节点设置于调度参数服务器,任务信息节点设置于任务信息服务器。调度节点集群中各调度节点均可以对任务处理节点进行调用,调度节点和任务处理节点均可以从调度参数服务器查询配置参数等数据,调度节点和任务处理节点均可以从任务信息服务器查询任务信息等数据。

本发明实施例中,调度节点集群中可以采用quartz或者其他集群定时任务框架来定义定时批量任务,每个定时批量任务触发时,可以向每个调度节点发送任务调度请求,但只有一个调度节点被触发来执行任务调度,以避免出现任务调度争抢,被触发的调度节点被确定为主节点。调度参数服务器中存储各调度节点的配置参数表,通过配置参数调度表中是否主节点的状态值来表示哪个调度节点为主节点,所以各调度节点接收任务调度请求后可以查询其配置参数表中的状态值,以判断自身是否为主节点,如果是则进行任务调度。

调度参数服务器可以用于存储调度节点的各参数信息,具体可以通过数据表的方式来存储各参数信息,例如,配置参数表。调度节点的配置参数表可以包括各调度节点的地址信息(ip地址)、服务器名称、是否主节点的状态值、任务标识、并发批次数量、批次数等。任务处理节点的配置参数表可以包括任务处理节点的地址信息、服务器名称、是否生效的状态标识等。调度节点的配置参数可以用于调度节点在调度任务时获取待处理任务(即需要调度的任务)、并确定任务调度的具体方式;任务处理节点的配置参数可以用于判断其是否为有效的处理节点,是否可以执行待处理任务等。

需要说明的是,在上述配置参数中,任务标识可以用于标识任务,还表示当前待处理任务所对应的处理步骤。以批量转账业务为例,其会对应三个处理步骤,分别为账户检查、转账和生成结果三个处理步骤,所以会建立与每个处理步骤对应的定时任务和该定时任务对应的任务标识,所以基于任务标识可以查询出当前待处理任务对应的是哪个处理步骤。并发批次数量表示调度节点将待处理任务拆分成批次任务的数量。调度节点为各任务处理节点分配其要执行的待处理任务时,可以将这些待处理任务拆分为并发批次数量个批次任务,然后基于拆分的批次任务向任务处理节点发送。例如,分配给某个任务处理节点的待处理任务数量为10个,而并发批次数量为2,所以调度节点将10个待处理任务拆分为2个批次任务,如每5个待处理任务为一个批次任务,然后以每个批次任务为一个整体向任务处理节点发送。是否生效的状态标识用于表示任务处理节点是否有效,即是否为可以处理待处理任务的节点。由于待处理任务可能会随着时间变化而出现数量波动,本发明实施例中,可以通过是否生效的状态标识来实时调整任务处理节点集群中有效的任务处理节点的数量,从而避免待处理任务数量较少时,有效的任务处理节点过多,导致各任务处理节点无法满载运行,以及待处理任务数量较多时,有效的任务处理节点过少,导致各任务处理节点过载,处理待处理任务无法及时被处理的问题。

本发明实施例中,任务信息服务器中可以设置任务库,调度节点可以从任务库中获取待处理任务,任务库可以存储各待处理任务的任务信息,具体可以包括批次编号、批次类型、任务标识、明细数、批次状态。批次类型可以包括行内批次、行外批次等类型,按批次对任务分类是一种任务的分类方式。任务标识表示任务当前所对应的处理步骤,明细数表示任务执行时所需的明细数据,批次状态表示任务的执行状态,例如可以包括待处理、处理中(加锁)、完成等状态。调度节点获取待处理任务时可以通过任务标识查询出本次需要调度的任务,然后获取批次状态为待处理的任务作为待处理任务进行调度。

本发明实施例提供了一种任务调度的方法,该方法可由图1所示系统架构中调度节点执行,如图2所示,该方法包括:

s201:接收任务调度请求,基于调度节点的地址信息,查询调度节点的配置参数表,得出调度节点的状态值。

其中,定时任务触发后可以向各调度节点发送任务调度请求,调度节点接收调度请求后,可以先基于其地址信息查询调度节点的配置参数表,得出调度节点的状态值。

调度节点的配置参数表可以存储在调度参数服务器中,本步骤中调度节点可以向调度参数服务器发送包括地址信息的查询请求,以通过地址信息查询对应的配置参数表,进而得出状态值。或者调度参数服务器可以周期性的将配置参数表发送至调度节点,调度节点则可以存储配置参数表,所以本步骤中直接基于地址信息从存储的配置参数表中查询出调度节点的状态值。状态值用于表示调度节点是否为主节点,本发明实施例中,可以通过调度参数表来配置状态值,以表示哪个调度节点为主节点。

s202:判断状态值与预设目标值是否一致。

其中,预设目标值为调度节点为主节点时的状态值,所以本步骤中可以在查询出调度节点状态值后,通过判断状态值与预设目标值是否一致,来判断调度节点是否为主节点。如果状态值与预设目标值一致,则说明调度节点为主节点,可以进行任务调度;如果状态值与预设目标值不一致,则说明调度节点不为主节点,其不可以进行任务调度。

需要说明的是,本发明实施例中,为了避免任务调度时出现争抢或任务重复调度,调度节点集群中在同一时间只会配置一个调度节点为主节点。

s203:若否,则忽略任务调度请求;若是,则获取任务调度请求中的任务标识,基于地址信息和任务标识,查询配置参数表得出调度节点的调度任务量,从任务库中获取任务标识对应的调度任务量个待处理任务,向一个或多个任务处理节点分配待处理任务。

其中,若否,说明调度节点不是主节点,则可以不对任务调度请求进行处理,忽略任务调度请求。若是,说明调度节点是主节点,需要执行任务调度,所以可以先获取任务调度请求中的任务标识,用于确定是哪个处理步骤对应的任务需要处理,然后可以基于地址信息和任务标识,查询配置参数表,得出调度节点的调度任务量,即查询出调度节点本次需要调度的待处理任务数量。在查询出任务标识和调度任务量后,可以从任务库中获取待处理任务,待处理任务为任务标识对应的任务,待处理任务的数量为调度任务量。调度节点获取待处理任务后,即可将其分配给各任务处理节点,以便于任务处理节点执行待处理任务。

本发明实施例中,调度节点向各任务处理节点分配的待处理任务可以具体执行为:查询地址信息和任务标识对应的并发批次数量、任务处理节点的数量和各任务处理节点的地址信息;根据任务处理节点的数量,调用分配模型确定各任务处理节点对应的待处理任务,将每个任务节点对应的待处理任务拆分为并发批次数量个批次任务;基于各任务处理节点的地址信息,向各任务处理节点发送对应的批次任务。

调度节点获取待处理任务后,需要先确定出每个任务处理节点所对应的待处理任务,即各任务处理节点需要处理的待处理任务,本发明实施例中可以根据任务处理节点的数量来进行待处理任务的分配,具体可以采用分配模型,即将任务处理节点的数量输入分配模型得出待处理任务的分配方式,进而确定出各任务处理节点对应的待处理任务。例如,分配模型可以使用平均分配算法,即将待处理任务平均分配给各任务处理节点,所以可以依次为每个任务处理节点确定出所对应的待处理任务。在确定出各任务处理节点对应的待处理任务后,可以基于并发批次数量对每个任务处理节点对应的待处理任务拆分,得出并发批次数量个批次任务。调度节点的配置参数表中可以包括并发批次数量,本步骤中可以从调度节点的配置参数表中查询出并发批次数量,从而可以对每个任务处理节点的待处理任务进行拆分。在得出每个任务处理节点对应的批次任务后,可以基于任务处理节点的地址信息,发送至各任务处理节点。调度节点可以通过任务处理请求向任务处理节点发送对应的待处理任务。

本发明实施例中,在查询任务处理节点的数量和地址信息时,可以先确定有效的任务处理节点,即可以处理待处理任务的任务处理节点。所以可以先查询各任务处理节点的配置信息,以获取各任务处理节点的状态标识,具体的,配置信息可以从调度参数节点中查询。然后对每个任务处理节点,判断其状态标识是否为预设标识,预设标识表示任务处理节点为有效的任务处理节点时的状态标识。如果任务处理节点状态标识是预设标识,则可以确定为有效的任务处理节点,即有效处理节点;如果任务处理节点状态标识不是预设标识,则可以确定不为有效的任务处理节点,即无效处理节点。如此本发明实施例中在确定出有效处理节点后,可以只获取有效处理节点的数量和地址信息,以便于将待处理任务分配给有效的任务处理节点。

需要说明的是,本发明实施例中,任务处理节点的配置参数表中还可以包括任务处理节点的其他配置参数,例如最大线程数、最大处理任务数、可处理任务类型等等。调度节点在为各任务处理节点分配待处理任务时还可以查询各任务处理节点的上述配置参数,以便于可以基于这些配置参数进行待处理任务的分配。

本发明实施例中,通过调度节点实现对待处理任务的调度,将待处理任务分配给各任务处理节点,并且各任务处理节点接收待处理任务后还可以基于运行参数值判定是否对待处理任务的处理,从而可以避免将批量任务集中于一个任务处理节点处理,而其他各任务处理节点不能满载运行,导致负载不均衡的问题,提高任务处理的效率。

下面结合图1所示的系统架构,本发明实施例提供了一种任务调度的方法,该方法可由图1所示系统架构中任务处理节点执行,如图3所示,该方法包括:

s301:接收调度节点发送的任务处理请求,获取任务处理请求中待处理任务。

其中,调度节点确定任务处理节点对应的待处理任务后,可以通过任务处理请求将待处理任务发送至任务处理节点。任务处理节点接收任务处理请求后,可以获取任务处理请求中的待处理任务。具体的待处理任务可以包括待处理任务的各种信息,如待处理任务的批次编号、批次类型、任务标识、明细数等等,以便于任务处理节点可以执行待处理任务。

s302:基于任务处理节点的地址信息,从任务处理节点的参数配置表中获取任务处理节点的状态标识,以判断任务处理节点的状态标识是否为预设标识。

其中,任务处理节点在获取待处理任务后,需要先判断其是否能够处理待处理任务,所以可以基于任务处理节点的地址信息,从任务处理节点的参数配置表中获取任务处理节点的状态标识,然后通过判断任务处理节点的状态标识是否为预设标识来确定其是否为有效的任务处理节点。

如果任务处理节点的状态标识为预设标识,则说明其为有效的任务处理节点,即有效处理节点;如果任务处理节点的状态标识不为预设标识,则说明其不为有效的任务处理节点,即无效处理节点。

需要说明的是,任务处理节点的配置参数表存储在调度参数服务器中,本步骤中任务处理节点可以向调度参数服务器发送包括地址信息的查询请求,以通过查询对应的配置参数表得出状态标识。或者调度参数服务器可以周期性的将配置参数表发送至任务处理节点,任务处理节点则可以存储配置参数表,所以本步骤中直接基于地址信息从存储的配置参数表中查询出任务处理节点的状态标识。

s303:若否,则丢弃待处理任务;若是,则查询任务处理节点的运行参数值,判断运行参数值是否小于预设运行参数阈值,如果否,则丢弃待处理任务,如果是,则对待处理任务加锁。

其中,若否,则说明任务处理节点不是有效处理节点,不可以处理待处理任务,可以直接丢弃待处理任务。若是,则说明任务处理节点是有效处理节点,可以处理待处理任务,此时还需要判断任务处理节点是否有能力处理待处理任务,即处理待处理任务。本发明实施例中可以通过任务处理节点的运行参数值是否小于预设运行参数阈值,来确定其是否有能力处理待处理任务。如果运行参数值小于预设运行参数阈值,说明任务处理节点还可以处理任务,则可以对待处理任务加锁;如果运行参数值不小于预设运行参数阈值,说明任务处理节点不可以再处理任务,则可以直接丢弃待处理任务。

本发明实施例中,运行参数值可以为线程使用数量,预设运行参数阈值可以为任务处理节点的最大线程数量,所以查询任务处理节点的运行参数值,判断运行参数值是否小于预设运行参数阈值的步骤可以具体执行为:查询任务处理节点的线程使用数量,判断线程使用数量是否小于预设运行参数阈值。任务处理节点的运行参数值可以从任务处理节点中存储的运行参数中获得。

需要说明的是,在确定线程使用数量小于预设运行参数阈值后,还可以判断任务处理节点是否能够全部处理接收的待处理任务。通常情况下,调度节点会将待处理任务以批次任务发送至任务处理节点,任务处理节点在处理待处理任务时,每个批次任务会使用一个线程来处理,为了避免任务处理节点过载,所以在确定线程使用数量小于预设运行参数阈值后,还需要获取任务处理请求中待处理任务的并发批次数量,以确定处理待处理任务所需的线程数量;然后计算线程使用数量与预设的阈值之间的差值,以确定任务处理节点还有未使用的线程数量;如此可以通过判断差值是否大于并发批次数量,以判断任务处理节点是否可以处理全部的待处理任务。若是,即差值大于并发批次数量,则说明可以处理全部的待处理任务,对所述待处理任务加锁;若否,则说明不可以处理全部的待处理任务,所以可以从待处理任务中筛选差值个批次任务,确定为目标任务,即筛选出能够处理的待处理任务,然后对目标任务加锁,以便于调度节点可以对目标任务加锁,同时任务处理节点丢弃待处理任务中除目标任务之外的其他任务,即丢弃不能处理的待处理任务。

需要说明的是,由于任务处理节点在确定不能处理待处理任务时,会将其丢弃,所以运维人员通过查询任务处理节点中待处理任务的处理完成率(已处理的待处理任务数量除以全部接收的待处理任务数量)。如果处理完成率过低,则可以随时增加任务处理节点集群中任务处理节点的数量,增加方式为在调度参数服务器中对增加的任务处理节点进行注册即可;如果处理完成率过剩,则可以随时删除任务处理节点集群中任务处理节点,从而可以实现动态调整任务处理节点集群中任务处理节点的数量。

任务处理节点对待处理任务加锁的方式,可以为向任务库发送待处理任务加锁指令,以将任务库中对应待处理任务的批次状态更新为处理中,以便于避免这些任务被重复调度和执行。

本发明实施例中,通过调度节点实现对待处理任务进行调度,分配给各任务处理节点,并且各任务处理节点接收待处理任务后还可以基于运行参数值判定执行待处理任务的处理,从而可以避免将批量任务集中于一个任务处理节点处理,而其他各任务处理节点不能满载运行,导致负载不均衡的问题,提高任务处理的效率。

基于图2和图3所示实施例,本发明提供一种实施方式对任务调度的具体执行过程进行说明。如图4所示,该方法包括:

s401:调度节点接收任务调度请求,基于调度节点的地址信息,查询调度节点的配置参数表,得出调度节点的状态值。

s402:调度节点判断状态值与预设目标值是否一致。

s403:若是,则调度节点获取任务调度请求中的任务标识,基于地址信息和任务标识,查询配置参数表得出调度节点的调度任务量,从任务库中获取任务标识对应的调度任务量个待处理任务,向各任务处理节点分配的待处理任务。

本发明实施例中以状态值与预设目标值一致进行说明,状态值与预设目标值不一致时,可以通过图2所示实施例中说明进行处理。

s404:任务处理节点接收调度节点发送的任务处理请求,获取任务处理请求中待处理任务。

s405:任务处理节点基于任务处理节点的地址信息,从任务处理节点的参数配置表中获取任务处理节点的状态标识,以判断任务处理节点的状态标识是否为预设标识。

s406:若是,则任务处理节点查询任务处理节点的运行参数值,判断运行参数值是否小于预设运行参数阈值,如果是,则对待处理任务加锁。

本发明实施例中以任务处理节点的状态标识为预设标识、运行参数值小于预设运行参数阈值进行说明,任务处理节点的状态标识不为预设标识、或运行参数值不小于预设运行参数阈值时,可以通过图3所示实施例中说明进行处理。

需要说明的是,本发明实施例中各步骤的数据处理可以如图2好图3所示实施例中所述,在此不再赘述。

本发明实施例中,通过调度节点实现对待处理任务进行调度,分配给各任务处理节点,并且各任务处理节点接收待处理任务后还可以基于运行参数值判定执行待处理任务的处理,从而可以避免各任务处理节点不能满载运行,导致负载不均衡的问题,提高任务处理的效率。

为了解决现有技术存在的问题,本发明实施例提供了一种任务调度的装置500,设置于调度节点,如图5所示,该装置500包括:

接收单元501,用于接收任务调度请求,基于所述调度节点的地址信息,查询所述调度节点的配置参数表,得出所述调度节点的状态值;

判断单元502,用于判断所述状态值与预设目标值是否一致;

忽略单元503,用于若否,则忽略所述任务调度请求;

调度单元504,用于若是,则获取所述任务调度请求中的任务标识,基于所述地址信息和所述任务标识,查询所述配置参数表得出所述调度节点的调度任务量,从任务库中获取所述任务标识对应的所述调度任务量个待处理任务,向一个或多个所述任务处理节点分配待处理任务。

应理解的是,实施本发明实施例的方式与实施图2所示实施例的方式相同,在此不再赘述。

本发明实施例的一种实现方式中,所述调度单元504,具体用于:

查询所述地址信息和所述任务标识对应的并发批次数量、所述任务处理节点的数量和各所述任务处理节点的地址信息;

根据所述任务处理节点的数量,调用分配模型确定各所述任务处理节点对应的待处理任务,将每个所述任务节点对应的待处理任务拆分为所述并发批次数量个批次任务;

基于各所述任务处理节点的地址信息,向各所述任务处理节点发送对应的批次任务。

本发明实施例的又一种实现方式中,所述调度单元504,具体用于:

查询各所述任务处理节点的配置信息,以获取各所述任务处理节点的状态标识;

判断每个任务处理节点的状态标识是否预设标识;

若是,则将所述任务处理节点确定为有效处理节点;若否,则将所述任务处理节点确定为无效处理节点;

基于所述有效处理节点的数量和各所述有效任务处理节点的地址信息。

本发明实施例的又一种实现方式中,所述接收单元501,用于向调度参数节点发送查询请求,以使所述调度参数节点基于所述查询请求中所述调度节点的地址信息查询所述调度节点的配置参数表,并返回至所述调度节点。

应理解的是,实施本发明实施例的方式与实施图2所示实施例的方式相同,在此不再赘述。

本发明实施例中,通过调度节点实现对待处理任务进行调度,分配给各任务处理节点,并且各任务处理节点接收待处理任务后还可以基于运行参数值判定执行待处理任务的处理,从而可以避免各任务处理节点不能满载运行,导致负载不均衡的问题,提高任务处理的效率。

为了解决现有技术存在的问题,本发明实施例提供了一种任务调度的装置600,设置于任务处理节点,如图6所示,该装置600包括:

接收单元601,用于接收调度节点发送的任务处理请求,获取所述任务处理请求中待处理任务;

判断单元602,用于基于所述任务处理节点的地址信息,从任务处理节点的参数配置表中获取所述任务处理节点的状态标识,以判断所述任务处理节点的状态标识是否为预设标识;

丢弃单元603,用于若否,则丢弃所述待处理任务;

处理单元604,用于若是,则查询所述任务处理节点的运行参数值,判断所述运行参数值是否小于预设运行参数阈值,如果否,则丢弃所述待处理任务,如果是,则对所述待处理任务加锁。

应理解的是,实施本发明实施例的方式与实施图3所示实施例的方式相同,在此不再赘述。

本发明实施例的一种实现方式中,所述处理单元604,具体用于:

查询所述任务处理节点的线程使用数量,判断所述线程使用数量是否小于预设运行参数阈值。

本发明实施例的又一种实现方式中,所述处理单元604,具体用于:

获取所述任务处理请求中待处理任务的并发批次数量;

计算所述线程使用数量与所述预设的阈值之间的差值;

判断所述差值是否大于所述并发批次数量;

若是,则对所述待处理任务加锁;

若否,则从所述待处理任务中筛选所述差值个批次任务,确定为目标任务,对所述目标任务加锁,丢弃所述待处理任务中除所述目标任务之外的其他任务。

应理解的是,实施本发明实施例的方式与实施图3或图4所示实施例的方式相同,在此不再赘述。

本发明实施例中,通过调度节点实现对待处理任务进行调度,分配给各任务处理节点,并且各任务处理节点接收待处理任务后还可以基于运行参数值判定执行待处理任务的处理,从而可以避免各任务处理节点不能满载运行,导致负载不均衡的问题,提高任务处理的效率。

根据本发明的实施例,本发明实施例还提供了一种电子设备和一种可读存储介质。

本发明实施例的电子设备包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器执行本发明实施例所提供的任务调度的方法。

图7示出了可以应用本发明实施例的任务调度的方法或任务调度的装置的示例性系统架构700。

如图7所示,系统架构700可以包括终端设备701、702、703,网络704和服务器705。网络704用以在终端设备701、702、703和服务器705之间提供通信链路的介质。网络704可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。

用户可以使用终端设备701、702、703通过网络704与服务器705交互,以接收或发送消息等。终端设备701、702、703上可以安装有各种客户端应用。

终端设备701、702、703可以是但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。

服务器705可以是提供各种服务的服务器,服务器可以对接收到的批量任务等数据进行分析等处理,并将处理结果(例如任务执行结果--仅为示例)反馈给终端设备。

需要说明的是,本发明实施例所提供的任务调度的方法一般由服务器705执行,相应地,任务调度的装置一般设置于服务器705中。

应该理解,图7中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。

下面参考图8,其示出了适于用来实现本发明实施例的计算机系统800的结构示意图。图8示出的计算机系统仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图8所示,计算机系统800包括中央处理单元(cpu)801,其可以根据存储在只读存储器(rom)802中的程序或者从存储部分808加载到随机访问存储器(ram)803中的程序而执行各种适当的动作和处理。在ram803中,还存储有系统800操作所需的各种程序和数据。cpu801、rom802以及ram803通过总线804彼此相连。输入/输出(i/o)接口805也连接至总线804。

以下部件连接至i/o接口805:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至i/o接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。

特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被中央处理单元(cpu)801执行时,执行本发明的系统中限定的上述功能。

需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述的任意合适的组合。

附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个单元、程序段、或代码的一部分,上述单元、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本发明实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括接收单元、判断单元、忽略单元和调度单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,接收单元还可以被描述为“接收单元的功能的单元”。

作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备执行本发明所提供的任务调度的方法。

上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1