掌桥专利:专业的专利平台
掌桥专利
首页

技术领域

本申请涉及互联网技术领域,特别涉及一种任务处理方法、装置、设备及存储介质。

背景技术

目前,业务系统中往往包含各种处理数据和计算规模都很大的任务。在相关技术中,针对大规模的任务,可以采用分布式的任务处理节点对该大规模的任务(如订单数据统计任务)进行处理。

发明内容

本申请实施例提供了一种任务处理方法、装置、设备及存储介质,能够使得待处理任务的处理条件设置更加灵活。所述技术方案如下:

根据本申请实施例的一个方面,提供了一种任务处理方法,应用于包括多个任务处理节点的任务处理集群中,所述方法应用于所述任务处理集群中的第一任务处理节点,所述方法包括:

获取待处理的第一任务;

基于任务链确定所述第一任务的关联任务,所述任务链用于描述不同任务之间的依赖关系,所述关联任务包括所述第一任务所依赖的任务;

响应于所述关联任务处理完成,生成多个第一任务分片,所述第一任务分片是对所述第一任务进行划分得到的;

向所述任务处理集群中的目标任务处理节点发送所述第一任务分片。

根据本申请实施例的一个方面,提供了一种任务处理装置,应用于包括多个任务处理节点的任务处理集群中,所述装置应用于所述任务处理集群中的第一任务处理节点,所述装置包括:

任务获取模块,用于获取待处理的第一任务;

任务确定模块,用于基于任务链确定所述第一任务的关联任务,所述任务链用于描述不同任务之间的依赖关系,所述关联任务包括所述第一任务所依赖的任务;

分片生成模块,用于响应于所述关联任务处理完成,生成多个第一任务分片,所述第一任务分片是对所述第一任务进行划分得到的;

分片发送模块,用于向所述任务处理集群中的目标任务处理节点发送所述第一任务分片。

根据本申请实施例的一个方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有计算机程序,所述计算机程序由所述处理器加载并执行以实现上述任务处理方法。

根据本申请实施例的一个方面,提供了一种非临时性计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任务处理方法。

根据本申请实施例的一个方面,提供了一种计算机程序产品,当所述计算机程序产品运行时,使得计算机设备执行上述任务处理方法。

本申请实施例提供的技术方案可以带来如下有益效果:

通过任务链确定第一任务的关联任务,并在关联任务处理完成之后,对待处理的第一任务进行划分处理,即第一任务处理节点可以在第一任务的关联任务处理完成之后,对第一任务进行处理,使得第一任务处理节点可以根据关联任务的处理情况确定是否处理第一任务,避免相关技术中定时处理待处理任务的局限性,使得待处理任务的处理条件设置更加灵活;且任务处理集群中的各个任务处理节点相同,不需要配置额外的节点向任务处理节点发送任务分片,由任务处理节点向其它任务处理节点发送任务分片,减少多余节点的设置开销。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请一个实施例提供的任务处理集群的示意图;

图2是本申请一个实施例提供的任务处理方法的流程图;

图3是本申请另一个实施例提供的任务处理方法的流程图;

图4示例性示出了任务分片与任务处理结果的传输方式的示意图;

图5是本申请一个实施例提供的任务处理装置的框图;

图6是本申请另一个实施例提供的任务处理装置的框图;

图7是本申请一个实施例提供的计算机设备的结构框图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。

在相关技术中,在执行待处理任务时,设置有管理节点,该管理节点用于在获取待处理任务时对任务处理集群中的各个节点进行管理。例如,管理节点在获取待处理任务之后,定时对该待处理任务进行处理,并向任务处理集群中对应的节点发送该待处理任务。

然而,在上述相关技术中,管理节点仅仅依据时间决定是否对待处理任务进行处理,待处理任务的处理条件的设置方式单一,若待处理任务依赖于其它任务,则只能通过预估该其它任务的任务处理时长来设置待处理任务的处理条件,处理条件设置不准确。

本申请所提供的技术方案中,通过任务链来描述各个任务之间的依赖关系,任务处理集群中的任务处理节点在获取第一任务之后,基于任务链确定与该第一任务存在依赖关系的关联任务,并在该关联任务处理完成之后,确定对上述第一任务进行处理,实现了基于关联任务确定是否满足第一任务的处理条件,将处理条件设置为关联任务处理完成,处理条件的设置灵活准确。另外,任务处理集群中的各个任务处理节点相同,可以作为任务发起节点来对第一任务进行划分,也可以作为任务执行节点对任务分片进行处理,减少多余管理节点的设置开销。

请参考图1,其示出了本申请一个实施例提供的任务处理集群的示意图。该任务处理集群可以包括多个任务处理节点10。

任务处理节点10是指任务处理系统的任一节点。可选地,该任务处理节点10可以是计算机设备、后台服务器等。在本申请实施例中,该任务处理节点10可以用于划分待处理任务、处理任务分片和向其它任务处理节点发送任务集群的集群信息。其中,集群信息用于指示上述任务处理集群中所包括的任务处理节点。

在一种可能的实施方式中,上述任务处理节点10为任务发起节点。可选地,任务处理节点10在获取待处理任务之后,检测该待处理任务是否满足执行条件。若该待处理任务满足执行条件,则对该待处理任务进行划分,得到该待处理任务对应的多个任务分片,进而向目标任务处理节点发送该多个任务分片。其中,目标任务处理节点可以是任务处理集群中的任意任务处理节点,且目标任务处理节点的数量可以为一个或多个,本申请实施例对此不作限定。之后,任务处理节点10在接收到目标任务处理节点发送的多个任务分片对应的多个任务处理结果之后,对该多个任务处理结果进行聚合汇总,得到上述待处理任务对应的处理结果。

在另一种可能的实施方式中,上述任务处理节点10为任务执行节点。可选地,任务处理节点10在接收到目标任务处理节点发送的任务分片之后,对该任务分片进行处理。若任务处理节点10中包括正在处理的其它任务分片,则基于线程池对该任务分片进行处理。之后,任务处理节点10在得到上述任务分片对应的任务处理结果之后,向目标任务处理节点发送该任务处理结果。

在再一种可能的实施方式中,上述任务处理节点10为种子节点。可选地,任务处理集群中的各个任务处理节点中存储有配置文件,该配置文件用于指示任务处理集群中的种子节点。在任务处理集群中存在新节点的情况下,该新节点向任务处理节点10发送集群信息获取请求,对应的,任务处理节点10在获取该集群信息获取请求之后,向该新节点发送集群信息。在一种可能的实施方式中,上述新节点为任务处理集群中由停机状态转变为非停机状态的任务处理节点;在另一种可能的实施方式中,上述新节点为任务处理集群在扩容时新添加的任务处理节点。可选地,新节点在获取上述集群信息之后,基于集群信息向各个任务处理节点发送状态信息,该状态信息用于是指该新节点处于非停机状态。进一步地,各个任务处理节点在获取上述状态信息之后,可以向上述新节点发送任务分片。

需要说明的一点是,在本申请实施例中,任务处理集群中的任一任务处理节点,可以在上述任务发起节点、任务执行节点和种子节点三种角色之间进行互换。例如,对于任一任务处理节点,在接收到待处理任务时为任务发起节点,在接收到任务分片时为任务执行节点,在接收到集群信息获取请求时为种子节点。

可选地,上述任务处理集群中各个任务处理节点之间可以通过网络进行通信。

需要说明的一定是,上述是以任务处理集群为后台服务器集群为例进行介绍的,在实际运用中,上述任务处理集群中的各个任务处理节点也可以是设置在同一计算机设备的多个虚拟机,本申请实施例对此不作限定。

下面,将结合几个实施例对本申请技术方案进行详细的介绍说明。

请参考图2,其示出了本申请一个实施例提供的任务处理方法的流程图,应用于包括多个任务处理节点的任务处理集群中,该方法应用于任务处理集群中的第一任务处理节点。其中,各个步骤的执行主体可以是计算机设备,如图1任务处理集群中的任务处理节点10(以下称为“第一任务处理节点”)。该方法可以包括以下几个步骤(201~205):

步骤201,获取待处理的第一任务。

第一任务是指第一任务处理节点接收且未处理的任意任务。可选地,该第一任务可以是数据遍历、数据转换等数据处理任务;或者,该第一任务也可以是订单处理、订单存储等业务处理任务;当然,在实际运用中,上述第一任务还可以是其它任务,本申请实施例对此不作限定。在本申请实施例中,第一任务处理节点可以通过客户端接收上述第一任务,该第一任务可以中包括待处理的任务数据。其中,上述客户端可以是普通用户所使用的客户端,也可以是某项工作对应的工作人员所使用的客户端,本申请实施例对此不作限定。

在一种可能的实施方式中,第一任务处理节点实时获取上述第一任务。可选地,第一任务处理节点在接收到上述第一任务时,即确定获取该待处理的第一任务,进一步地,第一任务处理节点实时对第一任务的处理条件进行监测,并在满足该第一任务的处理条件时处理该第一任务。

在另一种可能的实施方式中,第一任务处理节点在满足上述第一任务对应的处理条件时,获取该第一任务。可选地,第一任务处理节点在接收到上述第一任务之后,存储该第一任务,并对该第一任务对应的处理条件进行监测。在满足该第一任务对应的处理条件时,获取该待处理的第一任务,并处理该第一任务。

其中,上述处理条件是指用于判定是否对某个任务进行处理的判断条件。可选地,不同的任务对应不同的任务处理条件。例如,第一任务对应的处理条件可以为关联任务处理完成,第二任务对应的处理条件为上午八点。

步骤202,基于任务链确定第一任务的关联任务。

任务链用于描述不同任务之间的依赖关系。在一种可能的实施方式中,该任务链中的任务可以包括第一任务处理节点所接收的任务,也可以包括第一任务处理节点未接收的任务,即任务链以相同的形式设置在不同的任务处理节点中,各个任务处理节点在接收到上述第一任务之后,均可以依据该任务链获取第一任务的关联任务,该关联任务可以在任务处理集群中的任意任务处理节点中处理完成,在这种情况下,各个任务处理节点在处理完成某个任务时,可以各个任务处理节点进行沟通交流,向各个任务处理节点发送该某个任务的处理完成信息。在另一种可能的实施方式中,该任务链中的任务仅仅包括第一任务处理节点所接收的任务,即任务链以不同的形式设置在不同的任务处理节点中,此时,各个任务处理节点具有不同的任务接收权限,第一任务处理节点在接收到第一任务之后,依据自身设置的任务链获取第一任务的关联任务,该关联任务仅仅可以在第一任务处理节点中处理完成。

可选地,上述任务链以链条的形式表示各个任务之间的依赖关系。例如,若B任务在处理过程中需要应用A任务的处理结果,则确定B任务依赖于A任务,A任务被B任务所依赖,此时,B任务在A任务之后处理,在任务链中将B任务设置在A任务之后,以此类推,基于各个任务之间的依赖关系,将各个任务以链条的形式串连起来,生成任务链。需要说明的一点是,在本申请实施例中,一个任务可以依赖于一个或多个其它任务,对应的,一个任务也可以被一个或多个其它任务所依赖。

需要说明的一点是,在本申请实施例中,上述任务处理集群的各个任务处理节点均包括任务链。在一种可能的实施方式中,不同任务处理节点中包括相同的任务链,即各个任务处理节点可以接收任意任务,每个任务处理节点具有相同的任务接收权限。在另一种可能的实施方式中,不同任务处理节点中包括不同的任务链,即每个任务处理节点具有不同的任务接收权限,不同的任务处理节点针对不同的任务,某个任务处理节点只能接收某种任务。可选地,在本申请实施例中,上述任务链可以是工作人员设置在任务处理节点中的,工作人员可以根据工作经验对上述任务链进行灵活设置,当然,工作人员也可以根据实际情况对设置好的任务链进行修改。

在本申请实施例中,第一任务处理节点在获取上述待处理的第一任务之后,基于上述任务链确定该第一任务的关联任务。其中,该关联任务包括第一任务所依赖的任务。可选地,该关联任务可以是在第一任务处理之前需要完成的任务,例如,在第一任务处理过程中需要运用关联任务的处理结果。需要说明的一点是,上述关联任务的数量可以是一个或多个,本申请实施例对此不作限定。

步骤203,响应于关联任务处理完成,生成多个第一任务分片。

第一任务分片是对第一任务进行划分得到的。在本申请实施例中,第一任务处理节点在获取上述关联任务之后,基于该关联任务确定是否开始对上述第一任务进行处理。可选地,在上述关联任务处理完成之后,第一任务处理节点确定满足该第一任务对应的处理条件,开始对上述第一任务进行处理,划分该第一任务,生成多个第一任务分片。其中,该第一任务分片是指基于对上述第一任务的划分处理得到的,包括该第一任务的部分内容的任务分片。可选地,不同的第一任务分片中所包括的内容可以不同。例如,上述第一任务中既包括针对数据A的处理任务,又包括针对数据B的处理任务,则在对该第一任务进行划分之后,一个第一任务分片中可以包括针对数据A的处理任务,而另一个第一任务分片中可以包括针对数据B的处理任务。

需要说明的一点是,在本申请实施例中,若上述关联任务的数量为多个,则在该多个关联任务均处理完成时,确定关联任务处理完成,并开始对上述第一任务进行处理。

可选地,在本申请实施例中,第一任务处理节点可以基于分片规则对上述第一任务进行划分。其中,该分片规则可以是工作人员设置在任务处理集群的各个任务处理节点中的。可选地,上述步骤203包括以下几个步骤:

1、基于分片规则确定分片参数;

分片规则用于指示第一任务处理节点对第一任务的划分方式。可选地,不同的任务可以具有相同的分片规则,也可以具有不同的分片规则,本申请实施例对此不作限定。

在本申请实施例中,第一任务处理节点在确定上述关联任务处理完成之后,获取该第一任务对应的分片规则,并基于该分片规则确定分片参数,确定该第一任务的划分方式。

2、根据分片参数对第一任务进行划分,生成多个第一任务分片。

分片参数用于指示第一任务分片对应的参数。其中,该参数可以包括数量参数,也可以包括数据量参数。可选地,第一任务处理节点在确定上述分片参数之后,根据该分片参数对上述第一任务进行划分,生成多个第一任务分片。

其中,上述分片参数包括分片数量和/或分片数据量,分片数量用于指示上述第一任务分片的数量上限值,分片数据量用于指示上述第一任务分片所包括的待处理的任务数据对应的数据量上限值。

在一种可能的实施方式中,上述分片参数包括分片数量。可选地,第一任务处理节点在确定上述关联任务处理完成之后,基于该分片数量对上述第一任务进行划分,得到上述多个第一任务分片。其中,该第一任务分片的数量少于或等于上述分片数量。

在另一种可能的实施方式中,上述分片参数包括分片数据量。可选地,第一任务处理节点在确定上述关联任务处理完成之后,基于该分片数据量对上述第一任务进行划分,得到上述多个第一任务分片。其中,该第一任务分片所包括的待处理的任务处理对应的数据量小于或等于上述分片数据量。

当然,在实际运用中,上述分片参数也可以包括分片数量和分片数据量。例如,在上述第一任务所包括的待处理的任务数据对应的数据量小于阈值时,基于分片数量对该第一任务进行划分;在上述第一任务所包括的待处理的任务数据对应的数据量大于或等于阈值时,基于分片数据量对该第一任务进行划分。

步骤204,向任务处理集群中的目标任务处理节点发送第一任务分片。

目标任务处理节点是指上述任务处理集群中的任务处理节点。其中,该目标任务处理节点的数量小于或等于上述第一任务分片的数量。在本申请实施例中,第一任务处理节点在生成第一任务分片之后,向目标任务处理节点发送该第一分片。其中,上述第一任务分片在发送时携带该第一任务分片所包括的待处理的任务数据。可选地,由于第一任务处理节点能够对任务分片进行处理,上述目标任务处理节点中可以包括第一任务处理节点。

需要说明的一点是,在本申请实施例中,第一任务处理节点可以基于上述目标任务处理节点的运行信息,确定第一任务分片的发送方式。其中,上述运行信息用于指示目标任务处理节点的当前任务处理能力。

在一种可能的实施方式中,第一任务处理节点根据上述运行信息确定分片发送频率,并基于该分片发送频率向上述目标任务处理节点发送该第一任务分片。可选地,第一任务处理节点在生成上述第一任务分片之后,获取目标任务处理节点的运行信息,并基于该目标任务处理节点的运行信息,确定分片发送频率。进一步地,根据该分片发送频率,向目标任务处理节点发送第一任务分片。其中,分片发送频率用于指示第一任务处理节点针对上述目标任务处理节点的任务分片发送速率。可选地,不同的目标任务处理节点对应的分片发送速率不同。需要说明的一点是,在本申请实施例中,第一任务处理节点可以在生成第一任务分片之后,实时获取任务处理集群中各个任务处理节点的运行信息;或者,第一任务处理节点也可以按照一定的时间间隔与任务处理集群中各个任务处理节点进行沟通交流,获取各个任务处理节点的运行信息。

在另一种可能的实施方式中,第一任务处理节点根据上述运行信息确定目标任务处理节点的顺序,并基于该顺序依次向目标任务处理节点发送第一任务分片。可选地,第一任务处理节点在生成上述第一任务分片之后,获取目标任务处理节点的运行信息,并基于该目标任务处理节点的运行信息,确定目标任务处理节点的当前任务处理能力。进一步地,根据该当前任务处理能力由高到低的顺序,依次向目标任务处理节点发送上述第一任务分片。其中,第一任务分片的发送先后次序与目标任务处理节点的当前任务处理能力的高低呈正相关。需要说明的一点是,在本申请实施例中,第一任务处理节点可以在生成第一任务分片之后,实时获取任务处理集群中各个任务处理节点的运行信息;或者,第一任务处理节点也可以按照一定的时间间隔与任务处理集群中各个任务处理节点进行沟通交流,获取各个任务处理节点的运行信息。

需要说明的一点是,在本申请实施例中,第一任务处理节点在发送上述第一任务分片之后,需要等待接收该第一任务分片对应的任务处理结果,并对该任务处理结果进行聚合汇总。可选地,上述步骤204之后还包括以下几个子步骤:

1、接收目标任务处理节点发送的多个第一任务分片对应的任务处理结果。

任务处理结果用于指示上述第一任务分片对应的处理结果。例如,该任务处理结果用于表征上述第一任务分片是否顺利处理完成。可选地,该任务处理结果中携带上述第一任务分片处理后的任务数据。

在本申请实施例中,第一任务处理节点在向目标任务处理节点发送上述多个第一任务分片之后,接收该目标任务处理节点发送的多个第一任务分片对应的任务处理结果。

2、对多个任务处理结果进行聚合汇总,得到第一任务对应的处理结果。

可选地,第一任务处理节点在获取上述任务处理结果之后,对该多个任务处理结果进行聚合汇总,得到上述第一任务对应的处理结果。

综上所述,本申请实施例提供的技术方案中,通过任务链确定第一任务的关联任务,并在关联任务处理完成之后,对待处理的第一任务进行划分处理,即第一任务处理节点可以在第一任务的关联任务处理完成之后,对第一任务进行处理,使得第一任务处理节点可以根据关联任务的处理情况确定是否处理第一任务,避免相关技术中定时处理待处理任务的局限性,使得待处理任务的处理条件设置更加灵活;且任务处理集群中的各个任务处理节点相同,不需要配置额外的节点向任务处理节点发送任务分片,由任务处理节点向其它任务处理节点发送任务分片,减少多余节点的设置开销。

另外,根据目标任务处理节点的运行信息,确定对应的分片发送频率,针对不同的目标任务处理节点确定不同的分片发送频率,避免分片发送速率不合适造成的目标任务处理节点负荷过大。

另外,根据目标任务处理节点的运行信息,确定针对不同目标任务处理节点的任务分片发送次序,向当前任务处理能力大的目标任务处理节点先发送任务分片,保证各个任务处理节点的负载均衡。

另外,对各个第一任务分片对应的任务处理结果进行聚合汇总,得到第一任务对应的处理结果,便于后续对第一任务的处理结果的查询与运用。

在示例性实施例中,上述第一任务处理节点中可以包括任务队列。其中,该任务队列用于存储该第一任务处理节点所接收到的未处理任务。可选地,该任务队列中各个任务的存储位置与任务链相对应,第一任务处理节点可以基于该任务队列确定是否处理上述第一任务。例如,在任务队列中,第一任务的关联任务存储在第一任务之前,第一任务处理节点依据任务队列中任务的存储顺序,在关联任务处理完成后,直接从任务队列获取存储在下一位置的第一任务,不需要判断是否满足第一任务的处理条件,提高任务处理效率,减少第一任务处理节点处理开销。

可选地,在本申请实施例中,第一任务处理节点在获取上述待处理的第一任务之后,基于上述任务链确定第一任务在任务队列中的存储位置,并根据该存储位置,在任务队列中存储该第一任务。其中,该第一任务的存储位置位于上述关联任务之后。进一步地,在第一任务处理节点获取上述第一任务的关联任务之后,对该关联任务的处理结果进行监测,在检测到该关联任务的处理结果的情况下,确定该关联任务处理完成,此时,若上述第一任务位于任务队列的首位,则对该第一任务进行划分处理。

需要说明的一点是,上述是以第一任务处理节点为任务发起节点的角度进行介绍的,在实际运用中,第一任务处理节点也可以作为任务执行节点,接收其它任务处理节点发送的任务分片进行处理,具体步骤如下:

1、接收来自于第二任务处理节点的第二任务分片。

第二任务处理节点是指上述任务处理集群中的任一任务处理节点。可选地,该第二任务处理节可以是任务处理集群中除上述第一任务处理节点之外的其它任务处理节点。

第二任务分片是对第二任务进行划分得到的。可选地,第二任务处理节点在获取第二任务之后,基于任务链获取该第二任务的关联任务,并在该关联任务处理完成之后,对第二任务进行划分,得到上述第二任务分片,进而向第一任务处理节点发送该第二任务分片。其中,该第二任务分片中可以携带待处理的任务数据。

对应的,第一任务处理节点接收来自于上述第二任务处理节点的第二任务分片。

2、若第一任务处理节点正在处理其它任务分片,基于线程池对第二任务分片进行并行处理。

线程池用于实现多个任务分片的并行处理。在本申请实施例中,利用线程池实现多个任务分片的并行处理,在任务分片执行的过程中,使用存在的线程,减少线程创建、消亡的开销,性能佳,而且,利用线程池可有效控制最大并发线程数,提高第一任务处理节点的资源使用率,避免过多资源竞争,避免堵塞。

可选地,第一任务处理节点在接收到上述第二任务分片之后,对自身任务处理情况进行监测。若第一任务处理节点正在处理其它任务分片,则基于线程池对第二任务分片进行并行处理。

3、响应于第二任务分片处理完成,向第二任务处理节点发送第二任务分片对应的任务处理结果。

在本申请后实施例中,在第一任务处理节点处理完成上述第二任务分片之后,生成该第二任务分片对应的任务处理结果,向上述第二任务处理节点发送第二任务分片对应的任务处理结果。其中,该任务处理结果中携带第二任务分片处理后的任务数据。

示例性地,结合参考图3,对本申请所提供的任务处理方法进行完整介绍。

步骤301,第一任务处理节点获取待处理的第一任务。

可选地,第一任务处理节点通过客户端获取待处理的第一任务。其中,该客户端可以是普通用户所使用的客户端,也可以是工作人员所使用的客户端。

步骤302,第一任务处理节点基于任务链在任务队列中存储第一任务。

任务链用于描述不同任务之间的依赖关系,即该任务链可以用于描述第一任务与其它任务之间的依赖关系。在本申请实施例中,第一任务处理节点在获取上述第一任务之后,基于任务链确定第一任务在任务队列中的存储位置,并在任务队列中存储该第一任务。其中,该第一任务的存储位置位于关联任务之后。

步骤303,在第一任务位于任务队列的首位时,将第一任务作为待处理任务,第一任务处理节点从任务队列的首位获取待处理任务。

在本申请实施例中,第一任务处理节点依据任务队列,从任务队列中依次获取待处理任务进行处理,并在上一个待处理任务处理完成之后,获取下一个待处理任务进行处理。可选地,在第一任务位于任务队列的首位时,第一任务处理节点将该第一任务作为待处理任务,第一任务处理节点从任务队列的首位获取该待处理任务。

步骤304,第一任务处理节点判断是否满足待处理任务的处理条件。若满足,则执行步骤305;若不满足,则执行步骤304。

处理条件是指判定是否处理上述待处理任务的判断条件。可选地,不同的待处理任务对应的处理条件不同。例如,第一任务的处理条件可以是第一任务的关联任务均处理完成,另一任务的处理条件可以是处理时刻为上午八点。

在本申请实施例中,第一任务处理节点在获取上述待处理任务之后,对该待处理任务的处理条件进行判断。若满足该处理条件,则开始处理该待处理任务;否则,继续对该处理条件进行监测,直到满足该处理条件。

步骤305,第一任务处理节点对待处理任务进行划分处理,生成待处理任务对应的任务分片。

在本申请实施例中,第一任务处理节点在确定满足上述处理条件之后,对该待处理任务进行划分处理,生成该待处理任务对应的任务分片。

步骤306,第一任务处理节点向目标任务处理节点发送待处理任务对应的任务分片。

对应的,目标任务处理节点接收该待处理任务对应的任务分片。

步骤307,目标任务处理节点基于线程池对待处理任务对应的任务分片进行处理。

可选地,目标任务处理节点在接收到上述待处理任务对应的任务分片之后,基于线程池对该待处理任务对应的任务分片进行处理。其中,该线程池用于实现多个任务分片的并行处理。也就是说,若目标任务处理节点正在处理其它任务分片,则基于该线程池,可以同时处理该待处理任务对应的任务分片,避免任务等待造成的处理开销。

步骤308,在待处理任务对应的任务分片处理完成之后,目标任务处理节点向第一任务处理节点发送待处理任务对应的任务分片的任务处理结果。

对应的,第一任务处理节点接收该任务处理结果。

步骤309,第一任务处理节点对待处理任务对应的任务分片的处理结果进行聚合汇总。

步骤310,第一任务处理结果判断针对待处理任务对应的任务分片的聚合汇总是否完成。若是,则执行步骤311;若否,则执行步骤309。

可选地,在针对待处理任务对应的任务分片的聚合汇总完成时,第一任务处理节点确定该待处理任务处理完成。

步骤311,第一任务处理节点判断任务队列是否为空。若是,则结束流程;若否,则执行步骤312。

可选地,在本申请实施例中,第一任务处理节点在确定上述待处理任务完成之后,对上述任务队列进行判断。若该任务队列中不存在其它任务,则确定该任务队列为空,结束流程。

步骤312,第一任务处理节点从任务队列的首位获取其它任务,并将该其它任务作为待处理任务,循环执行上述步骤304-311。

其中,上述其它任务可以依赖于上述第一任务,也就是说,第一任务可以是其它任务的关联任务。

当然,在本申请实施例中,由于上述第一任务分片中携带待处理的任务数据,且第一任务分片的任务处理结果中携带处理完成的任务数据。因此,在第一任务分片与第一任务分片的任务处理结果在传输之前,需要进行序列化,转换为可传输可存储的模式。

示例性地,结合参考图4,第一任务处理节点在获取第一任务分片40之后,通过转化层对第一任务分片40进行序列化,得到序列化后的第一任务分片41,并在缓冲层存储该序列化后的第一任务分片41,之后,通过传输层传输该序列化后的第一任务分片41。对应的,目标任务处理节点通过传输层接收到该序列化后的第一任务分片41之后,由缓冲层存储该序列化后的第一任务分片41,并通过转化层对序列化后的第一任务分片41进行反序列化,得到第一任务分片40,进一步地,目标任务处理节点对该第一任务分片40进行处理,得到该第一任务分片对应的任务处理结果42。相似的,目标任务处理节点通过转化层对该任务处理结果42进行序列化,得到序列化后的任务处理结果43,并在缓冲层存储该序列化后的任务处理结果43,之后,通过传输层传输该序列化后的任务处理结果43。对应的,第一任务处理节点通过传输层接收到该序列化后的任务处理结果43之后,由缓冲层存储该序列化后的任务处理结果43,并通过转化层对序列化后的任务处理结果43进行反序列化,得到任务处理处理结果42。另外,在第一任务处理节点完成第一任务的聚合汇总,得到第一任务对应的处理结果之后,第一任务处理节点与目标任务处理节点清除缓冲层针对第一任务的存储,如清除第一任务分片和第一任务分片对应的任务处理结果。

需要说明的一点是,在本申请实施例中,由于各种环境因素的影响,第一任务处理节点可能会发生状态转换,此时,需要依据第三任务处理节点(种子节点)与任务处理集群中的各个节点进行沟通交流,具体步骤如下:

1、响应于第一任务处理节点由停机状态转换为非停机状态,向任务处理集群中的第三任务处理节点发送集群信息获取请求。

停机状态用于指示第一任务处理节点处于不可工作状态。非停机状态用于指示第一任务处理节点处于可工作状态。在本申请实施例中,在第一任务处理节点由停机状态转换为非停机状态时,第一任务处理节点可以向第三任务处理节点发送集群信息获取请求,该集群信息获取请求用于向第三任务处理节点请求获取集群信息。

可选地,在本申请实施例中,任务处理集群中的各个任务处理节点中包括配置文件,该配置文件用于指示任务处理集群中的第三任务处理节点。在一种可能的实施方式中,在第一任务处理节点由停机状态转换为非停机状态时,第一任务处理节点可以基于配置文件确定第三任务处理节点,并向第三任务处理节点发送集群信息获取请求。

对应的,第三任务处理节点在接收到上述集群信息获取请求之后,基于该集群信息获取请求,向第一任务处理节点发送集群信息。

2、在接收到第三任务处理节点发送的集群信息的情况下,根据集群信息向各个任务处理节点发送第一状态信息。

集群信息用于指示任务处理集群中所包括的任务处理节点。可选地,该集群信息中可以包括任务处理集群中所包括的各个任务处理节点的唯一标识,第一任务处理节点可以根据该唯一标识确定上述任务处理集群中所包括的各个任务处理节点。

在本申请实施例中,第一任务处理节点在接收到第三任务处理节点发送的集群信息之后,根据该集群信息确定上述任务处理集群中的各个任务处理节点,并向各个任务处理节点发送第一状态信息。其中,第一状态信息用于指示第一任务处理节点处于非停机状态。

需要说明的一点是,在本申请实施例中,上述各个任务处理节点在接收到来自于第一任务处理节点的第一状态信息之后,需要向该第一任务处理节点发送针对该第一状态信息的反馈信息,进而,第一任务处理节点基于该反馈信息确定各个任务处理节点处于非停机状态。

3、若未接收到其它任务处理节点针对第一状态信息的反馈信息,则确定其它任务处理节点处于停机状态。

在本申请实施例中,在第一任务处理节点向上述各个任务处理节点发送第一状态信息之后,若未接收到其它任务处理节点针对该第一状态信息的反馈信息,则确定该其它任务处理节点处于停机状态。其中,上述其它任务处理节点是指任务处理集群中除第一任务处理节点之外的任一任务处理节点。

在一种可能的实施方式中,上述任务处理集群中的各个任务处理节点按照一点时间间隔进行沟通交流,以获取各个任务处理节点的状态信息和运行信息。由于任务处理集群中的各个任务处理节点均可以在沟通交流的过程中确定上述其它任务处理节点处于停机状态,因此,为了节省信令传输开销,第一任务处理节点在确定其它任务处理节点处于停机状态时,并不向各个任务处理节点发送第二状态信息。其中,该第二状态信息用于指示其它任务处理节点转换为停机状态。

在另一种可能的实施方式中,上述任务处理集群中的各个任务处理节点仅仅在转换为非停机状态时与各个任务处理节点进行沟通交流,因此,为了保证各个任务处理集群获取信息的准确性,第一任务处理节点在确定其它任务处理节点处于停机状态时,向各个任务处理节点发送第二状态信息。对应的,各个任务处理节点在接收到该第二状态信息之后,停止对上述其它任务处理节点发送任务分片。

当然,在本申请实施例中,上述方法也可以运用与针对任务处理集群的扩容过程。例如,第一任务处理节点为任务处理集群中的新投入使用的新节点,则第一任务处理节点可以依据第三任务处理节点获取集群信息,并基于该集群信息向任务处理集群中的各个任务处理节点发送第一状态信息。

需要说明的一点是,在本申请实施例中,上述任务处理集群中的任一任务处理节点均可以被配置为第三任务处理节点,如第一任务处理节点也可以被配置为第三任务处理节点,本申请实施例对此不作限定。

下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。

请参考图5,其示出了本申请一个实施例提供的任务处理装置的框图,应用于包括多个任务处理节点的任务处理集群中,该装置应用于任务处理集群中的第一任务处理节点。该装置具有实现上述任务处理方法的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。该装置可以是计算机设备,也可以设置计算机设备中。该装置500可以包括:任务获取模块501、任务确定模块502、分片生成模块503和分片发送模块504。

任务获取模块501,用于获取待处理的第一任务。

任务确定模块502,用于基于任务链确定所述第一任务的关联任务,所述任务链用于描述不同任务之间的依赖关系,所述关联任务包括所述第一任务所依赖的任务。

分片生成模块503,用于响应于所述关联任务处理完成,生成多个第一任务分片,所述第一任务分片是对所述第一任务进行划分得到的。

分片发送模块504,用于向所述任务处理集群中的目标任务处理节点发送所述第一任务分片。

在示例性实施例中,所述分片发送模块504,用于基于所述目标任务处理节点的运行信息,确定分片发送频率,所述分片发送频率用于指示所述第一任务处理节点针对所述目标任务处理节点的任务分片发送速率;根据所述分片发送频率,向所述目标任务处理节点发送所述第一任务分片;其中,所述运行信息用于指示所述目标任务处理节点的当前任务处理能力。

在示例性实施例中,所述分片发送模块504,用于基于所述目标任务处理节点的运行信息,确定所述目标任务处理节点的当前任务处理能力;根据所述当前任务处理能力由高到低的顺序,依次向所述目标任务处理节点发送所述第一任务分片。

在示例性实施例中,所述分片生成模块503,用于基于分片规则确定分片参数;根据所述分片参数对所述第一任务进行划分,生成所述多个第一任务分片;其中,所述分片参数包括分片数量和/或分片数据量,所述分片数据量用于指示所述第一任务分片所包括的待处理的任务数据对应的数据量上限值。

在示例性实施例中,如图6所示,所述装置500还包括:位置确定模块505、任务存储模块506和结果确定模块507。

位置确定模块505,用于基于所述任务链确定所述第一任务在任务队列中的存储位置,所述任务队列用于存储所述第一任务处理节点所接收到的未处理任务,所述第一任务的存储位置位于所述关联任务之后。

任务存储模块506,用于根据所述存储位置,在所述任务队列中存储所述第一任务。

结果确定模块507,用于在检测到所述关联任务的处理结果的情况下,确定所述关联任务处理完成。

所述分片生成模块503,还用于响应于所述第一任务位于所述任务队列的首位,执行所述生成多个第一任务分片的步骤。

在示例性实施例中,如图6所示,所述装置500还包括:结果接收模块508和结果聚合模块509。

结果接收模块508,用于接收所述目标任务处理节点发送的多个所述第一任务分片对应的任务处理结果。

结果聚合模块509,用于对所述多个任务处理结果进行聚合汇总,得到所述第一任务对应的处理结果。

在示例性实施例中,如图5所示,所述装置500还包括:任务处理模块510。

任务处理模块510,用于接收来自于第二任务处理节点的第二任务分片,所述第二任务分片是对第二任务进行划分得到的,所述第二任务分片中携带待处理的任务数据;若所述第一任务处理节点正在处理其它任务分片,则基于线程池对所述第二任务分片进行并行处理;响应于所述第二任务分片处理完成,向所述第二任务处理节点发送所述第二任务分片对应的任务处理结果,所述任务处理结果中携带所述第二任务分片处理后的任务数据。

在示例性实施例中,如图5所示,所述装置500还包括:请求发送模块511和信息发送模块512。

请求发送模块511,用于响应于所述第一任务处理节点由停机状态转换为非停机状态,向所述任务处理集群中的第三任务处理节点发送集群信息获取请求。

信息发送模块512,用于在接收到所述第三任务处理节点发送的集群信息的情况下,根据所述集群信息向各个任务处理节点发送第一状态信息,所述第一状态信息用于指示所述第一任务处理节点处于所述非停机状态,所述集群信息用于指示所述任务处理集群中所包括的任务处理节点。

在示例性实施例中,所述信息发送模块512,还用于若未接收到其它任务处理节点针对所述第一状态信息的反馈信息,则确定所述其它任务处理节点处于所述停机状态,所述其它任务处理节点是指所述任务处理集群中除所述第一任务处理节点之外的任一任务处理节点;向所述各个任务处理节点发送第二状态信息,所述第二状态信息用于指示所述其它任务处理节点转换为所述停机状态。

综上所述,本申请实施例提供的技术方案中,通过任务链确定第一任务的关联任务,并在关联任务处理完成之后,对待处理的第一任务进行划分处理,即第一任务处理节点可以在第一任务的关联任务处理完成之后,对第一任务进行处理,使得第一任务处理节点可以根据关联任务的处理情况确定是否处理第一任务,避免相关技术中定时处理待处理任务的局限性,使得待处理任务的处理条件设置更加灵活;且任务处理集群中的各个任务处理节点相同,不需要配置额外的节点向任务处理节点发送任务分片,由任务处理节点向其它任务处理节点发送任务分片,减少多余节点的设置开销。

需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

请参考图7,其示出了本申请一个实施例提供的计算机设备的结构框图。该计算机设备可用于实现上述任务处理方法。具体来讲:

计算机设备700包括中央处理单元(Central Processing Unit,CPU)701、包括随机存取存储器(Random Access Memory,RAM)702和只读存储器(Read Only Memory,ROM)703的系统存储器704,以及连接系统存储器704和中央处理单元701的系统总线705。计算机设备700还包括帮助计算机内的各个器件之间传输信息的基本输入/输出(Input/Output,I/O)系统706,和用于存储操作系统713、应用程序714和其他程序模块715的大容量存储设备707。

基本输入/输出系统706包括有用于显示信息的显示器707和用于用户输入信息的诸如鼠标、键盘之类的输入设备709。其中显示器708和输入设备709都通过连接到系统总线705的输入输出控制器710连接到中央处理单元701。基本输入/输出系统706还可以包括输入输出控制器710以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器710还提供输出到显示屏、打印机或其他类型的输出设备。

大容量存储设备707通过连接到系统总线705的大容量存储控制器(未示出)连接到中央处理单元701。大容量存储设备707及其相关联的计算机可读介质为计算机设备700提供非易失性存储。也就是说,大容量存储设备707可以包括诸如硬盘或者CD-ROM(CompactDisc Read-Only Memory,只读光盘)驱动器之类的计算机可读介质(未示出)。

不失一般性,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM(Erasable Programmable Read Only Memory,可擦除可编程只读存储器)、EEPROM(Electrically Erasable Programmable Read Only Memory,电可擦可编程只读存储器)、闪存或其他固态存储其技术,CD-ROM、DVD(Digital Video Disc,高密度数字视频光盘)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知计算机存储介质不局限于上述几种。上述的系统存储器704和大容量存储设备707可以统称为存储器。

根据本申请的各种实施例,计算机设备700还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即计算机设备700可以通过连接在系统总线705上的网络接口单元711连接到网络712,或者说,也可以使用网络接口单元711来连接到其他类型的网络或远程计算机系统(未示出)。

所述存储器还包括计算机程序,该计算机程序存储于存储器中,且经配置以由一个或者一个以上处理器执行,以实现上述任务处理方法。

在示例性实施例中,还提供了一种非临时性计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时以实现上述任务处理方法。

可选地,该计算机可读存储介质可以包括:ROM(Read Only Memory,只读存储器)、RAM(Random Access Memory,随机存取记忆体)、SSD(Solid State Drives,固态硬盘)或光盘等。其中,随机存取记忆体可以包括ReRAM(Resistance Random Access Memory,电阻式随机存取记忆体)和DRAM(Dynamic Random Access Memory,动态随机存取存储器)。

在示例性实施例中,还提供一种计算机程序产品,当所述计算机程序产品运行时,使得计算机设备执行上述任务处理方法。

应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。另外,本文中描述的步骤编号,仅示例性示出了步骤间的一种可能的执行先后顺序,在一些其它实施例中,上述步骤也可以不按照编号顺序来执行,如两个不同编号的步骤同时执行,或者两个不同编号的步骤按照与图示相反的顺序执行,本申请实施例对此不作限定。

以上所述仅为本申请的示例性实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

相关技术
  • 任务处理网络生成、任务处理方法、装置、电子设备及存储介质
  • 存储设备的任务处理方法、装置、设备及可读存储介质
技术分类

06120112216886