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

任务处理方法、装置、计算机可读存储介质及服务器

文献发布时间:2023-06-19 09:35:27


任务处理方法、装置、计算机可读存储介质及服务器

技术领域

本申请涉及计算机领域,具体涉及一种任务处理方法、装置、计算机可读存储介质及服务器。

背景技术

近年来,伴随互联网技术的不断发展普及,用户与互联网之间的交互行为越来越多,用户根据业务需求可通过手机或平板等移动设备发起请求,组建该业务的前端管理服务器(master)会根据用户请求进行相应处理。

现有技术中,后台处理服务器(worker)在对用户发送的请求信息进行处理时,通常是由master实时收集worker的工作状态信息,并根据该工作状态信息将处理请求信息对应的多个任务指派给worker,worker在接收到任务后,再对任务进行处理。

在对现有技术的研究和实践过程中,本申请的发明人发现,由于worker的工作状态信息数据量庞大,并且容易受网络延迟影响,导致信息更新不及时,使得worker在处理完成任务后,会存在master未及时将下一待处理任务分配给该worker的情况,造成worker长时间处于空闲状态,导致工作节点处理资源的浪费,降低了任务处理效率。

发明内容

本申请实施例提供一种任务处理方法及装置,可以提升任务处理的效率。

为解决上述技术问题,本申请实施例提供以下技术方案:

一种任务处理方法,包括:

管理节点接收请求信息,并基于所述请求信息确定多个待处理的候选任务;

将所述多个待处理的候选任务发布至分布式存储节点;

工作节点根据所述待处理的候选任务的属性信息,从所述分布式存储节点的多个待处理的候选任务中确定目标任务;

所述工作节点处理所述目标任务。

一种任务处理装置,包括:

第一确定单元,用于管理节点接收请求信息,并基于所述请求信息确定多个待处理的候选任务;

第一发布单元,用于将所述多个待处理的候选任务发布至分布式存储节点;

第二确定单元,用于工作节点根据所述待处理的候选任务的属性信息,从所述分布式存储节点的多个待处理的候选任务中确定目标任务;

处理单元,用于所述工作节点处理所述目标任务。

在一些实施例中,所述装置还包括:

存储单元,用于所述分布式存储节点存储所述多个候选任务中每一候选任务的属性信息。

在一些实施例中,所述处理单元包括:

第一获取子单元,用于所述工作节点从所述分布式存储节点中获取所述目标任务;

标识子单元,用于所述工作节点对所述分布式存储节点中目标任务的目标属性信息进行第一状态标识,并处理所述目标任务;

更新子单元,用于当所述目标任务被所述工作节点处理完成后,所述工作节点将所述分布式存储节点中所述目标属性信息的状态标识更新为第二状态标识。

在一些实施例中,所述属性信息包括处理候选任务所需的资源信息,其中,所述资源信息用于表示处理候选任务所需要的处理资源,所述第二确定单元包括:

第二获取子单元,用于所述工作节点获取当前剩余处理资源;

筛选子单元,用于所述工作节点根据所述属性信息,从所述分布式存储节点中的多个候选任务中筛选出处理候选任务所需的处理资源满足所述当前剩余处理资源的任一候选任务,作为目标任务。

在一些实施例中,所述第一确定单元包括:

第一确定子单元,用于所述管理节点根据所述请求信息的请求类型或所述请求信息所携带的信息内容,确定多个任务集合以及多个所述任务集合的处理顺序,所述信息内容用于指示所述管理节点按照指定发布顺序向所述分布式存储节点发布候选任务;

第二确定子单元,用于所述管理节点根据所述发布顺序将首次发布的任务集合确定为目标集合,并将目标集合中的多个任务确定为待处理的候选任务;

所述装置还包括:

检测单元,用于所述管理节点检测所述分布式存储节点中多个待处理的候选任务的属性信息的状态标识是否均为第二状态标识;

第二发布单元,用于当所述管理节点检测到所述多个待处理的候选任务的属性信息的状态标识均为第二状态标识时,所述管理节点基于所述发布顺序及所述目标集合的发布序号确定待处理的下一任务集合;

执行单元,用于所述管理节点将待处理的下一任务集合确定为目标集合,并将目标集合中的多个任务确定为待处理的候选任务,返回执行将所述多个待处理的候选任务发布至分布式存储节点的步骤,直至管理节点检测到多个所述任务集合中的任务的属性信息的状态标识均为第二状态标识为止。

在一些实施例中,所述装置还包括:

第三确定单元,用于当所述分布式存储节点检测到所述工作节点中获取目标任务的候选工作节点的数量为多个时,确定多个候选工作节点中优先级最高的目标工作节点;

允许单元,用于允许所述目标工作节点获取所述目标任务,并禁止所述候选工作节点中除所述目标工作节点外的其他候选工作节点获取所述目标任务。

在一些实施例中,所述第三确定单元包括:

第三获取子单元,用于所述分布式存储节点获取每一所述候选工作节点对应的任务处理成功率,其中,所述任务处理成功率为在历史时间段内候选工作节点处理成功的任务的数量与处理过的任务的总数量的比值;

第三确定子单元,用于根据每一候选工作节点对应的任务处理成功率确定候选工作节点中优先级最高的目标工作节点,其中,任务处理成功率与优先级成正比。

在一些实施例中,所述第三确定单元包括:

第四获取子单元,用于所述分布式存储节点获取每一所述候选工作节点在历史时间段内处理任务的处理数量;

第四确定子单元,用于根据每一候选工作节点对应的处理数量确定候选工作节点中优先级最高的目标工作节点,其中,处理数量与优先级成正比。

在一些实施例中,所述装置还包括:

清除单元,用于当所述管理节点在预设时间段内未检测到目标任务被处理完成时,清除所述分布式存储节点中所述目标属性信息的状态标识。

一种计算机可读存储介质,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行上述任务处理方法中的步骤。

一种服务器,所述服务器包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如上所述任务处理方法中的步骤。

本申请实施例通过管理节点接收请求信息,并基于所述请求信息确定多个待处理的候选任务;将所述多个待处理的候选任务发布至分布式存储节点;工作节点根据所述待处理的候选任务的属性信息,从所述分布式存储节点的多个待处理的候选任务中确定目标任务;所述工作节点处理所述目标任务。以此,通过管理节点将任务发布至分布式存储节点,并由工作节点自行从分布式存储节点获取目标任务并进行处理,避免由管理节点向工作节点分配任务,导致工作节点处理空闲状态的情况,提高任务处理的效率。

附图说明

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

图1a为本申请实施例提供的任务处理方法的场景示意图。

图1b为本申请实施例提供的任务处理方法的流程示意图。

图2a为本申请实施例提供的任务处理方法的另一流程示意图。

图2b为本申请实施例提供的任务处理方法的信令流程示意图。

图2c为本申请实施例提供的任务处理方法的另一信令流程示意图。

图2d为本申请实施例提供的任务处理系统的框架示意图。

图3为本申请实施例提供的任务处理装置的结构示意图;

图4为本申请实施例提供的服务器的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请实施例提供了一任务处理方法、装置及计算机可读存储介质。

请参阅图1a,图1a为本申请实施例所提供的任务处理系统的场景示意图,包括:终端、数据库、前端服务器这类管理节点以及由工作节点B及工作节点C构成的工作节点集群(工作节点集群可以包括除工作节点B及工作节点C之外的其他工作节点,具体工作节点的数量此处不做限定)。终端A与管理节点之间可以通过通信网络连接,该通信网络,可以包括无线网络以及有线网络,其中无线网络包括无线广域网、无线局域网、无线城域网、以及无线个人网中的一种或多种的组合。网络中包括路由器、网关等等网络实体,图中并未示意出。终端可以为手机、电脑或个人数字助理等客户端设备,其通过通信网络与管理节点进行信息交互,比如终端A将用户通过点击某一应用软件所产生的请求信息发送至管理节点。

工作节点内的全部或者大部分工作节点构成一个分布式网络系统,从而共同向客户端提供一种或多种网络服务。工作节点可通过监听或其他预订协议与数据库建立连接关系。以监听为例,当工作节点中的工作节点B及工作节点C监听到数据库中存储有待处理的候选任务时,会从数据库中获取一待处理的候选任务并进行处理,此外,数据库也可以为分布式存储节点(例如键值存储仓库etcd),工作节点也可监听该分布式存储节点,并从分布式存储节点中获取待处理的候选任务并进行处理。

该任务处理系统可以包括任务处理装置,该任务处理装置具体可以集成在管理节点中,如图1a所示,该管理节点在接收到终端发送的请求信息时,基于该请求信息确定多个待处理的候选任务;将该多个待处理的候选任务发布至分布式存储节点;工作节点根据该待处理的候选任务的属性信息,从该分布式存储节点的多个待处理的候选任务中确定目标任务;该工作节点处理该目标任务。基于此,通过管理节点将任务发布至分布式存储节点,并由工作节点自行从分布式存储节点获取目标任务并进行处理,避免由管理节点向工作节点分配任务,导致工作节点处理空闲状态的情况,提高任务处理的效率。

需要说明的是,图1a所示的任务处理系统的场景示意图仅仅是一个示例,本申请实施例描述的任务处理系统以及场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着任务处理系统的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。

在本实施例中,将从任务处理装置的角度进行描述,该任务处理装置具体可以集成在具备储存单元并安装有微处理器而具有运算能力的服务器中。

请参阅图1b,图1b为本申请实施例提供的任务处理方法的流程示意图。该任务处理方法包括:

在步骤101中,管理节点接收请求信息,并基于该请求信息确定多个待处理的候选任务。

其中,请求信息为用户通过对终端进行操作,并由终端所发起的信息。例如用户在终端所展示的用户图形界面上点击预设的某一功能按键,终端根据用户点击的功能按键生成一请求信息,并将该请求信息发送至管理节点。

在一些实施方式中,该基于该请求信息确定多个待处理的候选任务的步骤,包括:

(1)该管理节点根据该请求信息的请求类型或该请求信息所携带的信息内容,确定多个任务集合以及多个该任务集合的处理顺序,该信息内容用于指示该管理节点按照指定发布顺序向该分布式存储节点发布候选任务;

(2)该管理节点根据该发布顺序将首次发布的任务集合确定为目标集合,并将目标集合中的多个任务确定为待处理的候选任务。

其中,请求类型为用于描述该请求信息的类型。请求类型由具体的业务类型而定,例如业务类型为贴图压缩业务,则贴图压缩业务对应的请求类型为类型A;若业务类型为其他业务,则请求类型也为其他类型。可通过预先设定每一业务与请求类型之间的映射关系,从而根据具体的业务确定出请求信息的请求类型。

其中,针对于一些处理复杂程度较高的业务,存在多阶段处理的过程,且每个阶段的处理之间存在相互依赖的关系。例如贴图压缩业务,需要事先执行贴图缓存清除任务,才能执行贴图压缩任务。否则不执行缓存清除任务直接执行贴图压缩任务时可能造成处理资源不足,无法执行的情况。因此,针对于不同类型的业务,也会有针对于每一业务对应的多个任务集合的处理顺序,该处理顺序同样可与业务的类型建立映射关系,从而根据业务类型(也即请求类型)确定多个任务集合之间的处理顺序。也即针对于不同的请求类型会对应要处理不同的任务集合。因此需根据请求信息的请求类型确定需要处理的任务集合,以及多个任务集合之间的处理顺序,并将该处理顺序当做发布顺序,分阶段的将多个任务集合发布至分布式存储节点,并将首次发布的任务集合确定为目标集合,将目标集合中的多个任务确定为待处理的候选任务。

具体的,在一些特定场景下,例如开发人员发送一段信息内容为控制管理节点按照A、B、C的指定发布顺序来发布任务集合,从而确定A、B、C三者之间的运行逻辑是否正确,则管理节点也会按照A、B、C的处理顺序来分阶段的向分布式存储节点发送任务集合。

步骤102、将多个待处理的候选任务发布至分布式存储节点。

其中,分布式存储节点可以由多个键值存储仓库(etcd)构成,可以实现对任务属性信息的可靠存储,任务的相关配置信息可以快速被服务器集群中的所有机器发现。由于工作节点监听分布式存储节点,为触发工作节点主动获取任务并处理,需将多个待处理的候选任务发布至分布式存储节点。应当理解的是,若任务复杂程度较低,不具有任务集合,则直接将候选任务发布至分布式存储节点即可。

在一些实施方式中,该在将该多个待处理的候选任务发布至分布式存储节点的步骤之后,还包括:

该分布式存储节点存储该多个候选任务中每一候选任务的属性信息。

其中,属性信息可以为元数据,元数据(Metadata),又称中介数据、中继数据,为描述数据的数据(data about data),主要是描述数据属性(property)的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。当管理节点将多个候选任务发布至分布式存储节点后,分布式存储节点可将每一候选任务的元数据进行存储。

步骤103、工作节点根据待处理的候选任务的属性信息,从分布式存储节点的多个待处理的候选任务中确定目标任务。

其中,由于分布式存储节点已被工作节点监听,因此在当分布式存储节点存储了多个待处理的候选任务的属性信息后,工作节点监听到分布式存储节点中存在待处理的候选任务,会主动从分布式存储节点中获取候选任务。而为了提高候选任务的处理效率,可设定工作节点中的每一服务器在获取候选任务时每次只获取一个候选任务并处理,从而使得工作节点中的多台服务器并行处理多个候选任务,进而提高候选任务的处理效率。属性信息不仅包括候选任务的元数据,还可以包括处理候选任务所需要的资源信息,该资源信息用于表示处理候选任务所需要的工作节点中服务器的处理资源。

具体的,目标任务为未被工作节点处理的候选任务,以及工作节点中的服务器根据自身的剩余处理资源确定出的候选任务。

在一些实施方式中,该属性信息包括处理候选任务所需的资源信息,其中,该资源信息用于表示处理候选任务所需要的处理资源,该工作节点根据该候选任务的属性信息,从该分布式存储节点的多个候选任务中确定目标任务的步骤,包括:

(1)该工作节点获取当前剩余处理资源;

(2)该工作节点根据该属性信息,从该分布式存储节点中的多个候选任务中筛选出处理候选任务所需的处理资源满足该当前剩余处理资源的任一候选任务,作为目标任务。

其中,当属性信息还包括有处理候选任务所需的资源信息时,工作节点可以根据在确定目标候选任务时根据自身的当前剩余处理资源以及每一候选任务的资源信息从多个候选任务中筛选满足工作节点的处理能力的候选任务,并将筛选出的多个候选任务中的任一候选任务确定为目标任务。

步骤104、工作节点处理该目标任务。

其中,当工作节点从分布式存储节点中获取到目标任务后,对该目标任务进行相应处理。

在一些实施方式中,该工作节点处理该目标任务的步骤,包括:

(1)该工作节点从该分布式存储节点中获取该目标任务;

(2)该工作节点对该分布式存储节点中目标任务的目标属性信息进行第一状态标识,并处理该目标任务;

(3)当该目标任务被该工作节点处理完成后,该工作节点将该分布式存储节点中该目标属性信息的状态标识更新为第二状态标识。

其中,为了区分布式存储节点中的每一候选任务是否被处理,可在工作节点获取目标任务时对分布式存储节点中的目标任务的目标属性信息进行状态标识,当目标任务被工作节点获取时,可将该目标属性信息标记为处理中状态。以标识该目标任务正在被工作节点处理,此处的第一状态标识即为处理中标识。

具体的,当目标任务被工作节点处理完成时,工作节点可将该目标属性信息标记为处理完成状态。以标识该目标任务已被处理完成。此处的第二状态标识即为处理完成标识。因此,分布式存储节点中的候选任务存在三种状态,第一种为不带有状态标识,表示候选任务未被获取;第二种为带有第一状态标识,表示候选任务正在被工作节点处理;第三种为带有第二状态标识,表示候选任务已经被工作节点处理完成。

其中,由于分布式存储节点中的候选任务存在三种状态,为了避免同一候选任务在被一工作节点处理完成后,又被其他工作节点获取,因此可设定一获取机制,工作节点仅获取分布式存储节点中未被状态标识的属性信息所对应的候选任务,因此该工作节点根据该候选任务的属性信息,从该分布式存储节点的多个候选任务中确定目标任务的步骤,包括:

(1)该工作节点将该分布式存储节点中未被标记状态标识的属性信息对应的任一候选任务,确定为目标任务。

在一些实施方式中,该方法还包括:

(1)当该分布式存储节点检测到该工作节点中获取目标任务的候选工作节点的数量为多个时,确定多个候选工作节点中优先级最高的目标工作节点;

(2)允许该目标工作节点获取该目标任务,并禁止该候选工作节点中除该目标工作节点外的其他候选工作节点获取该目标任务。

其中,由于多个工作节点可并行处理多个目标子任务,因此会存在多个工作节点同时获取一条目标任务的情况,因此可对分布式存储节点设定一机制,该机制用于确定允许工作节点中的哪一台服务器获取目标任务。

其中,具体允许哪一候选工作节点获取该目标任务,可通过确定每一候选工作节点的优先级,允许优先级最高的目标服务器获取,并禁止其他候选工作节点获取该目标任务的方式来确定。

在一些实施方式中,该确定多个候选工作节点中优先级最高的目标工作节点的步骤,包括:

该分布式存储节点获取每一该候选工作节点对应的任务处理成功率,其中,该任务处理成功率为在历史时间段内候选工作节点处理成功的任务的数量与处理过的任务的总数量的比值;

根据每一候选工作节点对应的任务处理成功率确定候选工作节点中优先级最高的目标工作节点,其中,任务处理成功率与优先级成正比。

其中,优先级可根据每一候选工作节点在历史时间段内的任务处理成功率确定。允许任务处理成功率最高的候选工作节点获取该目标任务,禁止其他候选工作节点获取该目标任务。

例如:候选工作节点为候选工作节点B及候选工作节点C,历史时间段为从当前时刻起始直到2个小时前的这一段时间。候选工作节点B在2小时内总共处理了100个任务,且100个任务全部处理完成,则候选工作节点B的任务处理成功率为100%;候选工作节点C在2小时内总共处理了100个任务,且处理完成97个任务,则候选工作节点B的任务处理成功率为97%,可以看出候选工作节点B的任务处理成功率高于候选工作节点C的任务处理成功率。因此可允许候选工作节点B获取该目标子任务,并禁止候选工作节点C获取该目标任务。因此,任务处理成功率与优先级成正比。

在一些实施方式中,该确定多个候选工作节点中优先级最高的目标工作节点的步骤,还包括:

(1.1)该分布式存储节点获取每一该候选工作节点在历史时间段内处理任务的处理数量;

(1.2)根据每一候选工作节点对应的处理数量确定候选工作节点中优先级最高的目标工作节点,其中,处理数量与优先级成正比。

其中,优先级可根据每一候选工作节点在历史时间段内的任务处理的处理数量确定。允许任务处理量最高的候选工作节点获取该目标任务,禁止其他候选工作节点获取该目标任务。

例如:候选工作节点为候选工作节点B及候选工作节点C,历史时间段为从当前时刻起始直到2个小时前的这一段时间。候选工作节点B在2小时内总共处理了100个任务;候选工作节点C在2小时内总共处理了95个任务,可以看出候选工作节点B的处理数量高于候选工作节点C的处理数量。因此可允许候选工作节点B获取该目标子任务,并禁止候选工作节点C获取该目标任务。因此,处理数量与优先级成正比。

在一些实施方式中,在该工作节点对该分布式存储节点中目标任务的目标属性信息进行第一状态标识,并处理该目标子任务的步骤之后,还包括:

(1)当该管理节点在预设时间段内未检测到目标任务被处理完成时,清除该分布式存储节点中该目标属性信息的状态标识。

其中,为了避免工作节点在处理目标任务时因自身异常导致无法处理目标任务,导致分布式存储节点中的目标任务长时间为第一状态标识,且无法被处理完成。因此可设定一预设时间段,例如10分钟,若在工作节点在获取该目标任务的10分钟时间内还未处理完成,则清除分布式存储节点中该目标任务的第一状态标识,进而保证工作节点中除异常服务器以外的其他服务器可继续获取该目标任务并进行处理。

在一些实施方式中,在该工作节点将该分布式存储节点中该目标属性信息的状态标识更新为第二状态标识的步骤之后,还包括:

(1)该管理节点检测该分布式存储节点中多个待处理的候选任务的属性信息的状态标识是否均为第二状态标识;

(2)当该管理节点检测到该多个待处理的候选任务的属性信息的状态标识均为第二状态标识时,该管理节点基于该发布顺序及该目标集合的发布序号确定待处理的下一任务集合;

(3)该管理节点将待处理的下一任务集合确定为目标集合,并将目标集合中的多个任务确定为待处理的候选任务,返回执行将该多个待处理的候选任务发布至分布式存储节点的步骤,直至管理节点检测到多个该任务集合中的任务的属性信息的状态标识均为第二状态标识为止。

其中,当工作节点对分布式存储节点中目标任务的目标属性信息更新为第二状态标识后,管理节点会检测分布式存储节点中每一候选任务的属性信息的状态标识是否均为第二状态标识,若均为第二状态标识,则说明目标集合的多个任务均被处理完成,可以向分布式存储节点发布下一阶段的任务集合。

具体的,可根据发布顺序以及目标集合的发布序号确定下一任务集合。例如发布顺序为1,2,3,目标集合的发布序号为2,则下一任务集合为3,则管理节点将发布序号为3的任务集合确定为下一待处理的任务集合,并将该任务集合确定为目标集合,并将目标集合中的多个任务确定为待处理的候选任务。返回执行将该多个待处理的候选任务发布至分布式存储节点的步骤,直至管理节点检测到多个该任务集合中的任务的属性信息的状态标识均为第二状态标识为止。当检测到多个任务集合中的任务属性信息的状态标识均为第二状态标识时,说明请求信息对应的所有任务均为工作节点处理完成。

由上述可知,本申请实施例通过管理节点接收请求信息,并基于该请求信息确定多个待处理的候选任务;将该多个待处理的候选任务发布至分布式存储节点;工作节点根据该待处理的候选任务的属性信息,从该分布式存储节点的多个待处理的候选任务中确定目标任务;该工作节点处理该目标任务。以此,通过管理节点将任务发布至分布式存储节点,并由工作节点自行从分布式存储节点获取目标任务并进行处理,避免由管理节点向工作节点分配任务,导致工作节点处理空闲状态的情况,提高任务处理的效率。

结合上述实施例所描述的方法,以下将举例作进一步详细说明。

请参阅图2a,图2a为本申请实施例提供的任务处理方法的另一流程示意图。该方法流程可以包括:

在步骤201中,管理节点接收请求信息,根据请求信息的请求类型或请求信息所携带的信息内容,确定多个任务集合以及多个任务集合的处理顺序。

其中,请求信息为用户通过对终端进行操作,并由终端所发起的信息。例如用户在终端所展示的用户图形界面上点击预设的某一功能按键,终端根据用户点击的功能按键生成一请求信息,并将该请求信息发送至管理节点。

其中,针对于一些处理复杂程度较高的业务,存在多阶段处理的过程,且每个阶段的处理之间存在相互依赖的关系。例如贴图压缩业务,需要事先执行贴图缓存清除任务,才能执行贴图压缩任务。否则不执行缓存清除任务直接执行贴图压缩任务时可能造成处理资源不足,无法执行的情况。因此,针对于不同类型的业务,也会有针对于每一业务对应的多个任务集合的处理顺序,该处理顺序同样可与业务的类型建立映射关系,从而根据业务类型(也即请求类型)确定多个任务集合之间的处理顺序。也即针对于不同的请求类型会对应要处理不同的任务集合。因此需根据请求信息的请求类型确定需要处理的任务集合,以及多个任务集合之间的处理顺序,并将该处理顺序当做发布顺序,分阶段的将多个任务集合发布至分布式存储节点

在步骤202中,管理节点根据发布顺序将首次发布的任务集合确定为目标集合,并将目标集合中的多个任务确定为待处理的候选任务。

其中,将首次发布的任务集合确定为目标集合,将目标集合中的多个任务确定为待处理的候选任务。

在步骤203中,将多个待处理的候选任务发布至分布式存储节点。

其中,由于工作节点监听分布式存储节点,为触发工作节点主动获取任务并处理,需将多个待处理的候选任务发布至分布式存储节点。

在步骤204中,分布式存储节点存储多个候选任务中每一候选任务的属性信息。

其中,属性信息可以为元数据,元数据(Metadata),又称中介数据、中继数据,为描述数据的数据(data about data),主要是描述数据属性(property)的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。当管理节点将多个候选任务发布至分布式存储节点后,分布式存储节点可将每一候选任务的元数据进行存储。

在步骤205中,工作节点获取当前剩余处理资源。

其中,由于分布式存储节点已被工作节点监听,因此在当分布式存储节点存储了多个待处理的候选任务的属性信息后,工作节点监听到分布式存储节点中存在待处理的候选任务,会主动从分布式存储节点中获取候选任务。

具体的,当属性信息还包括有处理候选任务所需的资源信息时,工作节点可获取当前的剩余处理资源。

在步骤206中,工作节点根据属性信息,从分布式存储节点中的多个候选任务中筛选出处理候选任务所需的处理资源满足当前剩余处理资源的任一候选任务,作为目标任务。

其中,工作节点可以根据在确定目标候选任务时根据自身的当前剩余处理资源以及每一候选任务的资源信息从多个候选任务中筛选满足工作节点的处理能力的候选任务,并将筛选出的多个候选任务中的任一候选任务确定为目标任务。

在步骤207中,工作节点从分布式存储节点中获取目标任务。

其中,在步骤206工作节点确定出目标任务后,可从分布式存储节点中拉去该目标任务。

在步骤208中,工作节点对分布式存储节点中目标任务的目标属性信息进行第一状态标识,并处理该目标任务。

其中,为了区分布式存储节点中的每一候选任务是否被处理,可在工作节点获取目标任务时对分布式存储节点中的目标任务的目标属性信息进行状态标识,当目标任务被工作节点获取时,可将该目标属性信息标记为处理中状态。以标识该目标任务正在被工作节点处理。此处的第一状态标识即为处理中标识。

在步骤209中,当分布式存储节点检测到工作节点中获取目标任务的候选工作节点的数量为多个时,获取每一候选工作节点对应的任务处理成功率。

其中,由于多个工作节点可并行处理多个目标子任务,因此会存在多个工作节点同时获取一条目标任务的情况,因此可对分布式存储节点设定一机制,该机制用于确定允许哪一工作节点获取目标任务。

具体的,优先级可根据每一候选工作节点在历史时间段内的任务处理成功率确定。允许任务处理成功率最高的候选工作节点获取该目标任务,禁止其他候选工作节点获取该目标任务。

例如:候选工作节点为候选工作节点B及候选工作节点C,历史时间段为从当前时刻起始直到2个小时前的这一段时间。候选工作节点B在2小时内总共处理了100个任务,且100个任务全部处理完成,则候选工作节点B的任务处理成功率为100%;候选工作节点C在2小时内总共处理了100个任务,且处理完成97个任务,则候选工作节点B的任务处理成功率为97%,可以看出候选工作节点B的任务处理成功率高于候选工作节点C的任务处理成功率。因此可允许候选工作节点B获取该目标子任务,并禁止候选工作节点C获取该目标任务。因此,任务处理成功率与优先级成正比。

在步骤210中,分布式存储节点根据每一候选工作节点对应的任务处理成功率确定候选工作节点中优先级最高的目标工作节点。

例如:将任务处理成功率最高的候选工作节点B确定为目标工作节点。

在步骤211中,允许目标工作节点获取目标任务,并禁止候选工作节点中除目标工作节点外的其他候选工作节点获取目标任务。

其中,在确定出目标工作节点后,分布式存储节点允许目标工作节点获取该目标任务,并禁止其他候选工作节点获取该目标任务。

在步骤212中,当目标任务被工作节点处理完成后,工作节点将分布式存储节点中目标属性信息的状态标识更新为第二状态标识。。

其中,当目标任务被工作节点处理完成时,工作节点可将该目标属性信息标记为处理完成状态。以标识该目标任务已被处理完成。此处的第二状态标识即为处理完成标识。因此,分布式存储节点中的候选任务存在三种状态,第一种为不带有状态标识,表示候选任务未被获取;第二种为带有第一状态标识,表示候选任务正在被工作节点处理;第三种为带有第二状态标识,表示候选任务已经被工作节点处理完成。

在步骤213中,管理节点检测分布式存储节点中多个待处理的候选任务的属性信息的状态标识是否均为第二状态标识。

其中,当工作节点对分布式存储节点中目标任务的目标属性信息更新为第二状态标识后,管理节点会检测分布式存储节点中每一候选任务的属性信息的状态标识是否均为第二状态标识,若均为第二状态标识,则说明目标集合的多个任务均被处理完成

在步骤214中,管理节点判断多个任务集合是否被处理完成,若是则结束,若否则执行步骤215。

其中,步骤214用于判断多个任务集合中的每一任务是否均被处理完成,若是则结束,若否则继续发布下一阶段任务集合中的多个任务。

在步骤215中,当管理节点检测到多个待处理的候选任务的属性信息的状态标识均为第二状态标识时,管理节点基于发布顺序及目标集合的发布序号确定待处理的下一任务集合。

其中,可根据发布顺序以及目标集合的发布序号确定下一任务集合。例如发布顺序为1,2,3,目标集合的发布序号为2,则下一任务集合为3,则管理节点将发布序号为3的任务集合确定为下一待处理的任务集合,并将该任务集合确定为目标集合,并将目标集合中的多个任务确定为待处理的候选任务。返回执行将该多个待处理的候选任务发布至分布式存储节点的步骤,直至管理节点检测到多个该任务集合中的任务的属性信息的状态标识均为第二状态标识为止。当检测到多个任务集合中的任务属性信息的状态标识均为第二状态标识时,说明请求信息对应的所有任务均为工作节点处理完成。

在步骤216中,管理节点将待处理的下一任务集合确定为目标集合,并将目标集合中的多个任务确定为待处理的候选任务,并返回执行步骤203。

在确定下一目标集合后,将目标集合的多个任务确定为待处理的候选任务,并由管理节点继续向分布式存储节点发布待处理的候选任务。直至每一任务集合中的任务被处理完成为止。

由上述可知,本申请实施例通过管理节点接收请求信息,并基于该请求信息确定多个待处理的候选任务;将该多个待处理的候选任务发布至分布式存储节点;工作节点根据该待处理的候选任务的属性信息,从该分布式存储节点的多个待处理的候选任务中确定目标任务;该工作节点处理该目标任务。以此,通过管理节点将任务发布至分布式存储节点,并由工作节点自行从分布式存储节点获取目标任务并进行处理,避免由管理节点向工作节点分配任务,导致工作节点处理空闲状态的情况,提高任务处理的效率。

请参阅图2b,图2b及图2c,图2b为本申请实施例提供的任务处理方法的信令流程示意图,图2c为本申请实施例提供的任务处理方法的另一信令流程示意图。该框架示意图是以分布式存储节点为独立于管理节点之外的第三方存储系统etcd为例。

其中,管理节点以及每一工作节点均通过监听etcd的方式与etcd建立连接,当用户通过终端等客户端设备发起请求信息时,管理节点会基于该请求信息的请求类型或请求内容确定出多个待处理的任务集合,且多个待处理任务之间存在相互依赖的关系,将需要首次处理的任务集合确定为目标集合,将目标集合中的多个任务确定为待处理的候选任务,管理节点会将每一待处理候选任务发布至在etcd集群中,etcd集群通过内部的多个etcd单元存储每一候选任务的属性信息,当工作节点检测到etcd集群中存在候选任务的属性信息时,会根据属性信息从etcd集群中确定出目标任务,并获取目标任务进行相应处理,并在获取到目标任务后对分布式存储节点的目标属性信息进行第一标识,当工作节点处理完成时,会对目标属性信息进行第二标识。当管理节点检测到多个待处理任务均被处理完成时,会通知终端等客户端设备该请求完成。

其中,etcd的核心算法raft可保证分布式系统数据的可用性及一致性,确保了服务的可靠性,也即通过etcd集群实现了存储在其内部的任务元数据可靠的增删查改。同时etcd提供了http接口,因此可利用多种编程语言提供的现有http库,使得交互控制更为简便。

其中,为了便于查看每一候选任务的处理状态,可限定etcd将每条候选任务的元数据及处理该候选任务的工作节点的信息进行记录,由于etcd提供的是key-value存储服务,因此key中可包含工作节点的名称、ID及信息内容。Value即为具体信息内容。通过使用Etcd中key的TTL属性,当工作节点故障下线时,对应的服务信息同样会消失,从而实现服务进程的动态监测。针对多种任务信息,可限定多个保存路径。首先,任务信息由管理节点定制化发布,该信息主要保存在根目录下,例如/jobs目录;然后,同类型请求信息的所有任务名称保存在根目录下的指定路径,例如/jobs/服务名/meta中,具体形式可以为json的字符串格式;最后,每个任务的信息保存在根目录下的另一指定路径,例如/jobs/服务名/任务id中,具体信息可以包括任务内容、完成状态和处理进程信息。

在一些实施方式中,请参阅图2d,图2d为本申请实施例提供的任务处理系统的框架示意图。其应用于贴图压缩业务,其中该业务框架包括:终端、管理节点、etcd集群、工作节点集群、增量分发服务以及打包服务。

其中,管理节点接收到由终端发送的“请求对A和B两个目录的图片执行贴图压缩”的请求信息后,会根据该请求信息的请求类型(贴图压缩)确定出需要处理的两个待处理任务(清除缓存及贴图压缩),而清除缓存需要在贴图压缩之前执行,因此构建出待处理任务的拓扑关系(处理顺序),管理节点先发布清除缓存任务,使得etcd集群存储该任务的元数据。当工作节点集群中的工作节点1监听到etcd集群中存储有候选任务的元数据后,从etcd集群中获取清除任务信息并对该任务进行处理。并对存储在其etcd中的元数据进行第一状态标识(处理中)。并在检测到该任务处理完成后,对元数据进行第二状态标识(处理完成)。当管理节点检测到清除缓存任务完成后,发布贴图压缩任务,而由于贴图压缩任务需要对目录A及目录B两个目录下的贴图进行压缩,则可将贴图压缩任务划分为对目录A下的贴图进行压缩的候选任务1,以及对目录B下的贴图进行压缩的候选任务2。当etcd集群存储了两个候选任务的元数据后,触发工作节点集群获取两个候选任务并进行处理。其处理流程与执行清除缓存任务相同,此处不做赘述。其中,工作节点集群中的工作节点在执行候选任务1及候选任务2时,会将处理完成的贴图数据同步至增量分发服务例如rsync服务,通过增量更新,以减少贴图资源或其他美术资源同步所带来的时间损耗,以及将处理完成的结果上传至打包服务(packer),并进行后续的打包流程。

其中,由于候选任务1及候选任务2为对贴图进行压缩,而目录中的贴图数量较多,当工作节点在将贴图分配给自身的处理进程进行处理时,若仅将贴图分成较少的组数并由多进程处理时,可能会存在有线程空闲的情况。例如:贴图数量为7000张,线程为5个,如果将7000张贴图划分成7组,每组1000张,并分配给线程处理时,会造成当3条线程处于空闲状态时,还有2条线程处理处理状态,导致处理资源的浪费。因此,在划分贴图组时,可以设定一贴图数量阈值,当达到该贴图数量阈值时,自动划分出一组贴图,从而划分出更多组的贴图,这样在处理时,避免存在处理线程长时间处于空闲状态。例如按照贴图数量阈值为140,将7000张贴图分成50组,这样在将50组贴图分配给5条处理线程时,保证每条处理线程都处于工作状态。

为便于更好的实施本申请实施例提供的任务处理方法,本申请实施例还提供一种基于上述任务处理方法的装置。其中名词的含义与上述任务处理方法中相同,具体实现细节可以参考方法实施例中的说明。

请参阅图3,图3为本申请实施例提供的任务处理装置的结构示意图,其中该任务处理装置可以包括第一确定单元301、第一发布单元302、第二确定单元303以及处理单元304等。

第一确定单元301,用于管理节点接收请求信息,并基于该请求信息确定多个待处理的候选任务;

第一发布单元302,用于将该多个待处理的候选任务发布至分布式存储节点;

第二确定单元303,用于工作节点根据该待处理的候选任务的属性信息,从该分布式存储节点的多个待处理的候选任务中确定目标任务;

处理单元304,用于该工作节点处理该目标任务。

在一些实施方式中,该装置还可以包括:

存储单元,用于该分布式存储节点存储该多个候选任务中每一候选任务的属性信息。

在一些实施例中,该处理单元304包括:

第一获取子单元,用于该工作节点从该分布式存储节点中获取该目标任务;

标识子单元,用于该工作节点对该分布式存储节点中目标任务的目标属性信息进行第一状态标识,并处理该目标任务;

更新子单元,用于当该目标任务被该工作节点处理完成后,该工作节点将该分布式存储节点中该目标属性信息的状态标识更新为第二状态标识。

在一些实施方式中,该属性信息包括处理候选任务所需的资源信息,其中,该资源信息用于表示处理候选任务所需要的处理资源,该第二确定单元303包括:

第二获取子单元,用于该工作节点获取当前剩余处理资源;

筛选子单元,用于该工作节点根据该属性信息,从该分布式存储节点中的多个候选任务中筛选出处理候选任务所需的处理资源满足该当前剩余处理资源的任一候选任务,作为目标任务。

在一些实施方式中,该第一确定单元301包括:

第一确定子单元,用于该管理节点根据该请求信息的请求类型或该请求信息所携带的信息内容,确定多个任务集合以及多个该任务集合的处理顺序,该信息内容用于指示该管理节点按照指定发布顺序向该分布式存储节点发布候选任务;

第二确定子单元,用于该管理节点根据该发布顺序将首次发布的任务集合确定为目标集合,并将目标集合中的多个任务确定为待处理的候选任务;

该装置还包括:

检测单元,用于该管理节点检测该分布式存储节点中多个待处理的候选任务的属性信息的状态标识是否均为第二状态标识;

第二发布单元,用于当该管理节点检测到该多个待处理的候选任务的属性信息的状态标识均为第二状态标识时,该管理节点基于该发布顺序及该目标集合的发布序号确定待处理的下一任务集合;

执行单元,用于该管理节点将待处理的下一任务集合确定为目标集合,并将目标集合中的多个任务确定为待处理的候选任务,返回执行将该多个待处理的候选任务发布至分布式存储节点的步骤,直至管理节点检测到多个该任务集合中的任务的属性信息的状态标识均为第二状态标识为止。

在一些实施方式中,该装置还包括:

第三确定单元,用于当该分布式存储节点检测到该工作节点中获取目标任务的候选工作节点的数量为多个时,确定多个候选工作节点中优先级最高的目标工作节点;

允许单元,用于允许该目标工作节点获取该目标任务,并禁止该候选工作节点中除该目标工作节点外的其他候选工作节点获取该目标任务。

在一些实施例中,该第三确定单元包括:

第三获取子单元,用于该分布式存储节点获取每一该候选工作节点对应的任务处理成功率,其中,该任务处理成功率为在历史时间段内候选工作节点处理成功的任务的数量与处理过的任务的总数量的比值;

第三确定子单元,用于根据每一候选工作节点对应的任务处理成功率确定候选工作节点中优先级最高的目标工作节点,其中,任务处理成功率与优先级成正比。

在一些实施方式中,该第三确定单元包括:

第四获取子单元,用于该分布式存储节点获取每一该候选工作节点在历史时间段内处理任务的处理数量;

第四确定子单元,用于根据每一候选工作节点对应的处理数量确定候选工作节点中优先级最高的目标工作节点,其中,处理数量与优先级成正比。

在一些实施方式中,该装置还包括:

清除单元,用于当该管理节点在预设时间段内未检测到目标任务被处理完成时,清除该分布式存储节点中该目标属性信息的状态标识。

由上述可知,本申请实施例通过第一确定单元301管理节点接收请求信息,并基于该请求信息确定多个待处理的候选任务;第一发布单元302将该多个待处理的候选任务发布至分布式存储节点;第二确定单元303工作节点根据该待处理的候选任务的属性信息,从该分布式存储节点的多个待处理的候选任务中确定目标任务;处理单元304该工作节点处理该目标任务。以此,通过管理节点将任务发布至分布式存储节点,并由工作节点自行从分布式存储节点获取目标任务并进行处理,避免由管理节点向工作节点分配任务,导致工作节点处理空闲状态的情况,提高任务处理的效率。

相应的,本申请实施例还提供一种服务器集群,包括有多个服务器,其中服务器集群中的至少一服务器作为管理节点,至少两个服务器作为工作节点,至少一服务器作为分布式存储节点。如图4所示,图4为本申请实施例提供的服务器的结构示意图。该服务器1000包括有一个或者一个以上处理核心的处理器401、有一个或一个以上计算机可读存储介质的存储器402及存储在存储器402上并可在处理器上运行的计算机程序。其中,处理器401与存储器402电性连接。本领域技术人员可以理解,图中示出的服务器结构并不构成对服务器的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

处理器401是服务器1000的控制中心,利用各种接口和线路连接整个服务器1000的各个部分,通过运行或加载存储在存储器402内的软件程序和/或模块,以及调用存储在存储器402内的数据,执行服务器1000的各种功能和处理数据,从而对服务器1000进行整体监控。

在本申请实施例中,服务器1000中的处理器401会按照如下的步骤,将一个或一个以上的应用程序的进程对应的指令加载到存储器402中,并由处理器401来运行存储在存储器402中的应用程序,从而实现各种功能:

管理节点接收请求信息,并基于该请求信息确定多个待处理的候选任务;将该多个待处理的候选任务发布至分布式存储节点;工作节点根据该待处理的候选任务的属性信息,从该分布式存储节点的多个待处理的候选任务中确定目标任务;该工作节点处理该目标任务。

以上各个操作的具体实施可参见前面的实施例,在此不再赘述。

可选的,如图4所示,服务器1000还包括:输入单元403以及电源404。其中,处理器401分别与输入单元403以及电源404电性连接。本领域技术人员可以理解,图4中示出的服务器结构并不构成对服务器的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

输入单元403可用于接收输入的数字、字符信息或用户特征信息(例如指纹、虹膜、面部信息等),以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。

电源404用于给服务器1000的各个部件供电。可选的,电源404可以通过电源管理系统与处理器401逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源404还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。

尽管图4中未示出,服务器1000还可以包括摄像头、传感器、无线保真模块、蓝牙模块等,在此不再赘述。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

由上可知,本实施例提供的服务器可以管理节点接收请求信息,并基于该请求信息确定多个待处理的候选任务;将该多个待处理的候选任务发布至分布式存储节点;工作节点根据该待处理的候选任务的属性信息,从该分布式存储节点的多个待处理的候选任务中确定目标任务;该工作节点处理该目标任务。以此,通过管理节点将任务发布至分布式存储节点,并由工作节点自行从分布式存储节点获取目标任务并进行处理,避免由管理节点向工作节点分配任务,导致工作节点处理空闲状态的情况,提高任务处理的效率。

本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。

为此,本申请实施例提供一种计算机可读存储介质,其中存储有多条计算机程序,该计算机程序能够被处理器进行加载,以执行本申请实施例所提供的任一种任务处理方法中的步骤。例如,该计算机程序可以执行如下步骤:

管理节点接收请求信息,并基于该请求信息确定多个待处理的候选任务;将该多个待处理的候选任务发布至分布式存储节点;工作节点根据该待处理的候选任务的属性信息,从该分布式存储节点的多个待处理的候选任务中确定目标任务;该工作节点处理该目标任务。

以上各个操作的具体实施可参见前面的实施例,在此不再赘述。

其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。

由于该存储介质中所存储的计算机程序,可以执行本申请实施例所提供的任一种任务处理方法中的步骤,因此,可以实现本申请实施例所提供的任一种任务处理方法所能实现的有益效果,详见前面的实施例,在此不再赘述。

以上对本申请实施例所提供的一种任务处理方法、装置、计算机可读存储介质及服务器进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

相关技术
  • 查询任务处理方法、系统、服务器集群及装置、计算机可读存储介质
  • 任务处理方法、装置、计算机可读存储介质及服务器
技术分类

06120112224909