一种任务处理方法及任务分配设备与流程

文档序号:17536100发布日期:2019-04-29 14:00阅读:221来源:国知局
一种任务处理方法及任务分配设备与流程

本发明属于任务处理技术领域,更具体地说,尤其涉及一种任务处理方法及任务分配设备。



背景技术:

目前,用户请求的待处理任务可通过主服务器(可视为任务分配设备)分发到从服务器(可视为任务处理设备)上,由从服务器对待处理任务进行处理,得到处理结果,然后通过主服务器将处理结果通知用户。

但是当主服务器接收到任一从服务器发送的处理结果,会直接将处理结果通知用户,这样在处理结果有误的情况下主服务器是无法识别到这一错误的。



技术实现要素:

有鉴于此,本发明的目的在于提供一种任务处理方法及任务分配设备,用于提高处理结果的准确度。技术方案如下:

一种任务处理方法,应用于任务分配设备中,所述方法包括:

获得第一任务处理设备对待处理任务进行处理后的第一处理结果;

在所述第一处理结果表明所述待处理任务失败时,将所述待处理任务分配给其他任务处理设备,由其他任务处理设备再次对所述待处理任务进行处理;

获得所述其他任务处理设备对所述待处理任务进行处理后的第二处理结果;

在所述第一处理结果和所述第二处理结果相同时,将所述第一处理结果和所述第二处理结果中的任一处理结果确定为所述待处理任务的处理结果;

在所述第一处理结果和所述第二处理结果不同时,将所述第二处理结果确定为所述待处理任务的处理结果。

可选的,所述在所述第一处理结果表明所述待处理任务失败时,将所述待处理任务分配给其他任务处理设备,包括:

在所述第一处理结果表明所述待处理任务失败时,确定所述待处理任务失败是否是由所述第一任务处理设备的任务处理环境导致,若是,则将所述待处理任务分配给其他任务处理设备。

可选的,所述方法还包括:获取所述第一任务处理设备处理所述待处理任务的任务处理信息;

所述确定所述待处理任务失败是否是由所述第一任务处理设备的任务处理环境导致,包括:

在所述任务处理信息中的处理时长小于预设时长时,确定所述待处理任务失败是由所述第一任务处理设备的任务处理环境导致;

或者

在所述任务处理信息中包含有预设关键词时,确定所述待处理任务失败是由所述第一任务处理设备的任务处理环境导致;

或者

基于所述任务处理信息中的第一任务处理设备的设备标识,确定所述任务分配设备中记录的所述第一任务处理设备的任务失败率是否高于预设失败率,如果是,则确定所述待处理任务失败是由所述第一任务处理设备的任务处理环境导致;

或者,

在所述任务处理信息中的处理时长小于预设时长且在所述任务处理信息中包含有预设关键词时,确定所述待处理任务失败是由所述第一任务处理设备的任务处理环境导致;

或者,

在所述任务处理信息中的处理时长小于预设时长且所述任务分配设备中记录的所述第一任务处理设备的任务失败率高于预设失败率时,确定所述待处理任务失败是由所述第一任务处理设备的任务处理环境导致,其中,所述第一任务处理设备的任务失败率由所述任务分配设备基于所述任务处理信息中的第一任务处理设备的设备标识确定。

可选的,所述方法还包括:在所述处理时长大于等于所述预设时长时,将所述第一处理结果确定为所述待处理任务的处理结果。

可选的,所述任务分配设备为主服务器,所述任务处理设备为从服务器,所述待处理任务为软件项目构建任务。

一种任务分配设备,所述任务分配设备包括:第一结果获得单元、任务分配单元、第二结果获得单元、第一结果确定单元和第二结果确定单元,

所述第一结果获得单元,用于获得第一任务处理设备对待处理任务进行处理后的第一处理结果;

所述任务分配单元,用于在所述第一处理结果表明所述待处理任务失败时,将所述待处理任务分配给其他任务处理设备,由其他任务处理设备再次对所述待处理任务进行处理;

所述第二结果获得单元,用于获得所述其他任务处理设备对所述待处理任务进行处理后的第二处理结果;

所述第一结果确定单元,用于在所述第一处理结果和所述第二处理结果相同时,将所述第一处理结果和所述第二处理结果中的任一处理结果确定为所述待处理任务的处理结果;

所述第二结果确定单元,用于在所述第一处理结果和所述第二处理结果不同时,将所述第二处理结果确定为所述待处理任务的处理结果。

可选的,所述任务分配单元,具体设置为:在所述第一处理结果表明所述待处理任务失败时,确定所述待处理任务失败是否是由所述第一任务处理设备的任务处理环境导致,若是则将所述待处理任务分配给其他任务处理设备。

可选的,所述任务分配设备还包括:信息获得单元,用于获取所述第一任务处理设备处理所述待处理任务的任务处理信息;

所述任务分配单元确定所述待处理任务失败是否是由所述第一任务处理设备的任务处理环境导致,具体设置为:在所述任务处理信息中的处理时长小于预设时长时,确定所述待处理任务失败是由所述第一任务处理设备的任务处理环境导致;

或者

在所述任务处理信息中包含有预设关键词时,确定所述待处理任务失败是由所述第一任务处理设备的任务处理环境导致;

或者

基于所述任务处理信息中的第一任务处理设备的设备标识,确定所述任务分配设备中记录的所述第一任务处理设备的任务失败率是否高于预设失败率,如果是,则确定所述待处理任务失败是由所述第一任务处理设备的任务处理环境导致;

或者,

在所述任务处理信息中的处理时长小于预设时长且在所述任务处理信息中包含有预设关键词时,确定所述待处理任务失败是由所述第一任务处理设备的任务处理环境导致;

或者,

在所述任务处理信息中的处理时长小于预设时长且所述任务分配设备中记录的所述第一任务处理设备的任务失败率高于预设失败率时,确定所述待处理任务失败是由所述第一任务处理设备的任务处理环境导致,其中,所述第一任务处理设备的任务失败率由所述任务分配设备基于所述任务处理信息中的第一任务处理设备的设备标识确定。

可选的,所述任务分配设备还包括:第三结果确定单元,用于在所述处理时长大于等于所述预设时长时,将所述第一处理结果确定为所述待处理任务的处理结果。

可选的,所述任务分配设备为主服务器,所述任务处理设备为从服务器,所述待处理任务为软件项目构建任务。

从上述技术方案可知,本发明实施例提供的一种任务处理方法及任务分配设备,可以在获得第一任务处理设备对待处理任务进行处理后的第一处理结果的情况下,若第一处理结果表明待处理任务失败,则将待处理任务分配给其他任务处理设备进行处理,获得其他任务处理设备对待处理任务进行处理后的第二处理结果,若第一处理结果和第二处理结果不同,则将第二处理结果确定为待处理任务的处理结果,若第一处理结果和第二处理结果相同,则将第一处理结果确定为待处理任务的处理结果。由此在任一第一任务处理设备对待处理任务处理失败时可通过其他任务处理设备对同一个待处理任务进行再次处理,以此通过对同一个待处理任务的多次处理,提高待处理任务的处理结果的准确度。

附图说明

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

图1为本发明实施例公开的一种任务处理方法的流程示意图;

图2为本发明实施例公开的另一种任务处理方法的流程示意图;

图3为本发明实施例公开的另一种任务处理方法的流程示意图;

图4为本发明实施例公开的应用于jenkins的master-slave架构的任务处理方法的流程示意图;

图5为本发明实施例公开的一种任务分配设备的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,为本发明实施例公开的一种任务处理方法的流程示意图,用于提高待处理任务的处理结果的准确度,该任务处理方法应用于任务分配设备中,包括以下步骤:

s101:获得第一任务处理设备对待处理任务进行处理后的第一处理结果。

其中,待处理任务是任务分配设备在接收到用户设备(如用户使用的终端)发送的待处理任务处理请求时向第一任务处理设备分配的一个待处理任务,该待处理任务可以用于测试用户设备中的一个应用程序或者一个功能对应的代码,以验证该代码是否编写正确。当然本实施例还可以通过待处理任务进行其他测试或者其他任务,对此本实施例不再一一阐述。

可选的,所述任务分配设备可以为主服务器,所述任务处理设备可以为从服务器,所述待处理任务可以为软件项目构建任务。可选的,本发明的任务分配设备和任务处理设备可以分别为jenkins中的master节点和slave节点。

jenkins是一个开源软件项目,是基于java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。jenkins通常会部署成master-slave模式,其中master节点负责接收软件项目构建任务,并且将软件项目构建任务分发到slave节点上,由slave节点进行软件项目构建。如果slave节点处理任务失败(即构建软件项目失败),则失败的原因可能是用户的软件项目代码自身的问题,也有可能是slave节点的任务处理环境问题,比如不能连接外网。如果是slave节点的任务处理环境问题导致的任务失败,本发明可以不将“任务处理失败”的处理结果返回给用户,而是将该软件项目构建任务分配到另一slave节点上进行处理,这样,当该另一slave节点不存在任务处理环境问题时,该软件项目构建任务就会被成功处理。这样,本发明就可以将“任务处理成功”的处理结果返回给用户,提高了待处理任务的处理结果的准确度。

s102:在所述第一处理结果表明所述待处理任务失败时,将所述待处理任务分配给其他任务处理设备,由其他任务处理设备再次对所述待处理任务进行处理。

其中待处理任务失败可能有两种原因所致:一种是代码自身原因,另外一种是第一任务处理设备的任务处理环境问题。其中,任务处理环境可以具体包括:硬件环境和软件环境两种,其中硬件环境可以包括:网络环境和硬件配置(如内存空间、处理器性能等)等;软件环境可以包括:操作系统、软件工具库等。

无论哪种原因导致待处理任务失败,均可以将待处理任务分配给其他任务处理设备,由其他任务处理设备再次处理待处理任务,以实现对待处理任务的多次处理。从实际应用来看,若是代码自身原因导致待处理任务失败,则无论待处理任务在哪个任务处理设备上处理均会得到相同的处理结果,因此在由代码自身原因导致待处理任务失败时可以放弃在其他任务处理设备上的再次处理,以节约其他任务处理设备的设备资源。

在本实施例中,其他任务处理设备可以为一个任务处理设备(如一个slave节点),或者多个任务处理设备(如多个slave节点)。在其他任务处理设备为多个任务处理设备时,这多个任务处理设备处理待处理任务的方式有两种:

一种方式是:任务分配设备将待处理任务分配给这多个任务处理设备中的一个任务处理设备,由该任务处理设备对待处理任务进行处理并返回该任务处理设备的处理结果,若该任务处理设备的处理结果仍表明待处理任务失败则会再次分配给多个任务处理设备中的另一个任务处理设备,若该任务处理设备的处理结果表明待处理任务成功,则停止分配。进一步地,若该任务处理设备的处理结果和前一任务处理设备的处理结果在表明待处理任务失败的原因不同时也可以停止分配,这样可以节约其他任务处理设备的设备资源。

另一种方式是:任务分配设备将待处理任务同时分配给这多个任务处理设备中的各任务处理设备,由这些任务处理设备分别对待处理任务进行一次处理。

s103:获得所述其他任务处理设备对所述待处理任务进行处理后的第二处理结果。

s104:在所述第一处理结果和所述第二处理结果相同时,将所述第一处理结果和第二处理结果中的任一处理结果确定为所述待处理任务的处理结果。

可以理解的是:所述第一处理结果和所述第二处理结果相同的含义可以为:第一处理结果和第二处理结果表明待处理任务的状态(失败或成功)相同。在本发明其他实施例中,所述第一处理结果和所述第二处理结果相同的含义也可以为:第一处理结果和第二处理结果表明待处理任务的状态(失败或成功)相同,且在第一处理结果和所述第二处理结果均表明待处理任务失败的情况下,二者失败原因也相同。此时,如若第一处理结果是指所述待处理任务失败的原因是由所述任务处理环境导致,而所述第二处理结果也是指所述待处理任务失败的原因是由所述任务处理环境导致,则视第一处理结果和第二处理结果相同。在两个处理结果相同时则可以将两个处理结果中的任意一个处理结果确定为待处理任务的处理结果,如将第一处理结果确定为待处理任务的处理结果。

在本实施例中,第一处理结果和第二处理结果所指待处理任务的状态以及失败原因可由第一任务处理设备在处理待处理任务之后返回的任务处理信息而定,对此本实施例不再详细阐述。

s105:在所述第一处理结果和所述第二处理结果不同时,将所述第二处理结果确定为所述待处理任务的处理结果。

可以理解的是:所述第一处理结果和所述第二处理结果不同的含义可以为:第一处理结果和第二处理结果表明待处理任务的状态(失败或成功)不同。在本发明其他实施例中,所述第一处理结果和所述第二处理结果不同的含义也可以为:在第一处理结果和第二处理结果均表明待处理任务的状态为失败的情况下,二者失败原因不同。此时,如若所述第一处理结果是指所述待处理任务失败的原因是由所述任务处理环境导致,而所述第二处理结果是指所述待处理任务失败的原因是由所述代码自身问题导致,则视第一处理结果和第二处理结果不同,此时将第二处理结果确定为待处理任务的处理结果。

从上述技术方案可知,本发明实施例提供的一种任务处理方法,在获得第一任务处理设备对待处理任务进行处理后的第一处理结果的情况下,若第一处理结果表明待处理任务失败,则将待处理任务分配给其他任务处理设备进行处理,获得其他任务处理设备对待处理任务进行处理后的第二处理结果,若第一处理结果和第二处理结果不同,则将第二处理结果确定为待处理任务的处理结果,若第一处理结果和第二处理结果相同,则将第一处理结果确定为待处理任务的处理结果。由此在任一第一任务处理设备对待处理任务处理失败时可通过其他任务处理设备对同一个待处理任务进行再次处理,以此通过对同一个待处理任务的多次处理,提高待处理任务的处理结果的准确度。

如图2所示,为本发明实施例提供的另一种任务处理方法的流程示意图,该任务处理方法流程示意图包括以下步骤:

s201:任务分配设备接收用户设备发送的待处理任务,并将所述待处理任务分配至第一任务处理设备。

s202:所述任务分配设备接收由所述第一任务处理设备处理待处理任务后得到的第一处理结果。

s203:所述任务分配设备对所述第一处理结果进行分析,以判断所述待处理任务是否成功。若所述待处理任务成功,则进入步骤s208。若所述第待处理任务失败,则进入步骤s204。

其中第一任务处理设备返回的第一处理结果可以包括:返回码,返回码可以用0或1来表示待处理任务的状态(如成功或失败),因此在返回码表明待处理任务的状态为成功时,说明第一处理结果表明待处理任务成功,此时则意味着第一任务处理设备成功处理待处理任务,若返回码表明待处理任务的状态为失败,说明第一处理结果表明待处理任务失败,此时则意味着第一任务处理设备处理待处理任务失败。

此外,第一任务处理设备返回的任务处理信息除包括第一处理结果,还可以包括:待处理任务对应的代码仓库、成功或错误信息(例如错误码)、待处理任务的处理时长和处理该待处理任务的任务处理设备的标识(即第一任务处理设备的标识)。其中,成功或错误信息用于表明成功或错误的原因,待处理任务的处理时长为第一任务处理设备处理该待处理任务所用时长,一般情况下,当处理结果为处理失败时,若待处理任务的处理时长较短则可以视为待处理任务失败是由第一任务处理设备的任务处理环境导致(由于任务处理环境会使得任务无法被处理;而当代码有问题时,任务会执行一段时间直到执行到有问题的代码处而出现错误导致任务无法继续执行)。

在这里需要说明的一点是:任务处理设备在每处理一个待处理任务均会返回任务处理信息,这样任务分配设备可以基于该任务处理设备的多个历史任务处理信息来对该任务处理设备进行分析和/或对多个历史任务处理信息中表明处理任务失败的原因进行分析。

如通过对同一个任务处理设备的多个历史任务处理信息分析发现:多个历史任务处理信息中有预设数量的历史任务处理信息表明处理任务失败,则确定该任务处理设备是具有高失败率的设备,如通过对同一个任务处理设备的历史任务处理信息分析发现:处理失败的原因有:缺少xxx工具、找不到xxx库和无法启动等,而这些原因可以视为是任务处理环境导致,由此可以将这些内容视为是由任务处理环境导致处理任务失败的预设关键词,以通过预设关键词来确定后续处理任务的失败原始是否是由任务处理环境导致。

s204:基于第一任务处理设备处理待处理任务的任务处理信息,判断所述待处理任务失败的原因是否是由所述第一任务处理设备的任务处理环境导致。若所述待处理任务失败的原因不是由所述第一任务处理设备的任务处理环境导致,则进入步骤s208。若所述待处理任务失败的原因是由所述第一任务处理设备的任务处理环境,则进入步骤s205。

在本实施例中,确定所述待处理任务失败是由所述第一任务处理设备的任务处理环境导致的方式包括但不限于如下方式:

第一种方式:在所述任务处理信息中的处理时长小于预设时长时,则确定所述待处理任务失败是由所述第一任务处理设备的任务处理环境导致。

若处理时长小于预设时长,说明第一任务处理设备在处理待处理任务初始段就失败,而待处理任务初始段对应的代码错误的几率较小,因此在此种情况下会视为待处理任务失败且是由第一任务处理设备的任务处理环境导致,其中预设时长可以根据实际应用而定,对此本实施例不加以限制。

第二种方式:在所述任务处理信息中包含有预设关键词时,确定所述待处理任务失败是由所述第一任务处理设备的任务处理环境导致。

如任务处理信息中的成功或错误信息中包含有上述预设关键词时,确定是由第一任务处理设备的任务处理环境导致失败,对于上述预设关键词来说,并不限于本实施例所阐述的,可以根据实际应用设定,对此本实施例不加以限制。其中,预设关键词可以为预设的错误代码或预设的错误类型标识,可以理解的是,错误代码和错误类型标识可以表征错误类型,某些错误类型是由于任务处理环境导致的错误,本发明可以根据识别这些错误类型对应的错误代码或错误类型标识来确定是否由于任务处理环境导致的错误。

第三种方式:基于所述任务处理信息中的第一任务处理设备标识,确定所述任务分配设备中记录的所述第一任务处理设备的任务失败率是否高于预设失败率,如果是,则确定所述待处理任务失败是由所述第一任务处理设备的任务处理环境导致。

其中预设失败率可以根据实际应用而定,对此本实施例不加以限制。当然从上述阐述可知通过第一任务处理设备的历史任务处理信息可确定第一任务处理设备是否是任务失败率高于预设失败率(高失败率)的设备。任务分配设备可以在第一任务处理设备是具有高失败率的设备的情况下,为其添加表明其是具有高失败率的设备的标记,这样在基于第一任务处理设备标识可以查找到任务分配设备中是否为该第一任务处理设备添加了上述标记,若添加上述标记,则在该第一任务处理设备的第一处理结果表明待处理任务失败时可以直接确定是由第一任务处理设备的任务处理环境导致。

进一步的,若在所述任务处理信息中的处理时长大于等于所述预设时长时,本发明可以将所述第一处理结果确定为所述待处理任务的处理结果。

第四种方式:在所述任务处理信息中的处理时长小于预设时长且在所述任务处理信息中包含有预设关键词时,确定所述待处理任务失败是由所述第一任务处理设备的任务处理环境导致;

第四种方式为第一种方式和第二种方式的结合,通过第一种方式和第二种方式共同确定所述待处理任务失败是否由所述第一任务处理设备的任务处理环境导致,准确率更高。

第五种方式:在所述任务处理信息中的处理时长小于预设时长且所述任务分配设备中记录的所述第一任务处理设备的任务失败率高于预设失败率时,确定所述待处理任务失败是由所述第一任务处理设备的任务处理环境导致,其中,所述第一任务处理设备的任务失败率由所述任务分配设备基于所述任务处理信息中的第一任务处理设备的设备标识确定。

第五种方式为第一种方式和第三种方式的结合,通过第一种方式和第三种方式共同确定所述待处理任务失败是否由所述第一任务处理设备的任务处理环境导致,准确率更高。

s205:所述任务分配设备将所述待处理任务分配至其他任务处理设备,所述其他任务处理设备对所述待处理任务进行处理得到第二处理结果,并所述第二处理结果发送给所述任务分配设备。对于第二处理结果的分析请参阅第一处理结果中的相关说明,本实施例不再阐述。

s206:所述任务分配设备判断所述第一处理结果和所述第二处理结果是否相同。若所述第一处理结果和所述第二处理结果相同,则进入步骤s208。若所述第一处理结果和所述第二处理结果不相同,则进入步骤s207。对于第一处理结果和第二处理结果相同或不同的说明请参阅上一实施例中的相关说明,对此本实施例不在阐述。

s207:所述任务分配设备将所述第二处理结果确定为所述待处理任务的处理结果,并将所述处理结果发送给所述用户设备。

需要说明的是:所述任务分配设备可以将所述第一处理结果发送给管理员设备(即管理员所使用设备),以由管理员对第一处理结果对应的第一任务处理设备进行维护。

s208:所述任务分配设备将所述第一处理结果和第二处理结果中的任一处理结果确定为所述待处理任务的处理结果,并将所述处理结果发送给所述用户设备。

从上述技术方案可知,在待处理任务失败的原因是由第一任务处理设备的任务处理环境导致时,可以通过其他任务处理设备对待处理任务的再次验证来确定待处理任务对应的代码是否有问题,实现在某个任务处理设备有问题的情况下仍可通过其他任务处理设备验证待处理任务对应的代码,从而提高待处理任务的处理结果的准确度。

如图3所示为本发明实施例提供的另一种任务处理方法的流程示意图,该任务处理方法流程示意图包括以下步骤:

s301:任务分配设备接收用户设备发送的待处理任务,并将所述待处理任务分配至第一任务处理设备。

s302:所述任务分配设备接收由所述第一任务处理设备处理待处理任务后得到的第一处理结果。

s303:所述任务分配设备对所述第一处理结果进行分析,以判断所述待处理任务是否成功。若所述待处理任务成功,则进入步骤s309。若所述待处理任务失败,则进入步骤s304。

上述步骤s301至步骤s303:与上述步骤s201至步骤s203相同,对此本实施例不再阐述。

s304:所述任务分配设备获取所述第一任务处理设备处理所述待处理任务的任务处理信息,并判断所述任务处理信息中的处理时长是否小于预设时长。如果是,进入步骤s307。如果否,进入步骤s305。其中所述预设时长是预先设定的,可以根据实际应用变化,对此本实施例不再阐述。

若处理时长小于预设时长,说明第一任务处理设备在处理待处理任务初始段就失败,而待处理任务初始段对应的代码错误的几率较小,因此在此种情况下可以直接视为待处理任务失败且是由第一任务处理设备的任务处理环境导致,省略结合其他信息的确认,提高处理效率。

s305:判断所述处理时长是否小于第二预设时长。若所述处理时长小于第二预设时长,则进入步骤s306。若所述处理时长大于等于所述第二预设时长时,则进入步骤s309。其中,所述第二预设时长是预先设定的,可以根据实际应用变化,对此本实施例不再阐述。

在这里需要说明的一点是:在处理时长大于等于第二预设时长时,说明任务分配设备和第一任务处理设备的处理时长可能超过或邻近需要返回处理结果的时间,此时则需要向用户设备返回待处理任务的处理结果,以在对待处理任务进行多次验证的情况下还可以保证不影响用户体验。

s306:判断所述任务处理信息中是否包含有预设关键词和/或基于所述任务处理信息中的第一任务处理设备标识是否查找到所述第一任务处理设备的历史任务处理信息中有预设数量的结果表明处理任务失败,如果是,进入步骤s307;如果否,进入步骤s309。

在本实施例中,若任务处理信息中包含有预设关键词和/或基于任务处理信息中的第一任务处理设备标识查找到第一任务处理设备的历史任务处理信息中有预设数量的结果表明处理任务失败,则说明待处理任务失败是由第一任务处理设备的任务处理环境导致,此时进入步骤s307以由其他任务处理设备对待处理任务进行再次处理,若任务处理信息不包含有预设关键词和/或基于任务处理信息中的第一任务处理设备标识没有查找到第一任务处理设备的历史任务处理信息中有预设数量的结果表明处理任务失败,则说明待处理任务失败不是由第一任务处理设备的任务处理环境导致,此时可以进入步骤s309直接反馈第一处理结果。

s307:所述任务分配设备将所述待处理任务分配至其他任务处理设备,由所述其他任务处理设备对所述待处理任务进行处理得到第二处理结果,并将所述第二处理结果发送给所述任务分配设备。

s308:所述任务分配设备判断所述第一处理结果和所述第二处理结果是否相同。若所述第一处理结果和所述第二处理结果相同,则进入步骤s309。若所述第一处理结果和所述第二处理结果不相同,则进入步骤s310。

s309:所述任务分配设备将所述第一处理结果确定为所述待处理任务的处理结果,并将所述处理结果发送给所述用户设备。

需要说明的是:所述任务分配设备可以将所述第一处理结果发送给管理员设备(即管理员所使用设备),以由管理员对第一处理结果对应的第一任务处理设备进行维护。

s310:所述任务分配设备将所述第二处理结果确定为所述待处理任务的处理结果,并将所述处理结果发送给所述用户设备。

上述步骤s307至步骤s310:与上述步骤s205至步骤s208相同,对此本实施例不再阐述。

从上述技术方案可知,本实施例通过任务处理信息中的处理时长、是否包含有预设关键词以及是否查找到预设数量的结果表明处理任务失败的相结合来决定是否分配待处理任务给其他任务处理设备,在提高处理效率的情况下还可以提高处理结果的准确度,且不会影响用户体验。

下面提供一种应用于jenkins的master-slave架构的任务处理方法,如图4所示,该方法可以包括:

s001、master节点将软件项目构建任务分配给第一slave节点;

s002、master节点获得第一slave节点对软件项目构建任务进行处理后的第一处理结果;

s003、master节点确定第一处理结果是否表明所述软件项目构建任务失败,如果是,则执行步骤s004;否则执行步骤s014;

s004、master节点获取第一slave节点处理所述软件项目构建任务的任务处理信息;

s005、master节点确定第一slave节点处理该软件项目构建任务的处理时长是否小于预设时长,如果是,则执行步骤s006;否则执行步骤s014;

s006、master节点确定在所述任务处理信息中是否包含有预设关键词,如果是,执行步骤s008;否则执行步骤s007;

s007、master节点确定第一slave节点的任务失败率是否高于预设失败率,如果是,执行步骤s008;否则执行步骤s014;

在本发明其他实施例中,步骤s007和步骤s006的步骤内容可以进行调换,即:步骤s006为“master节点确定第一slave节点的任务失败率是否高于预设失败率,如果是,执行步骤s008;否则执行步骤s007”。同时,步骤s007为“master节点确定在所述任务处理信息中是否包含有预设关键词,如果是,执行步骤s008;否则执行步骤s014”。

s008、master节点确定所述软件项目构建任务失败是由所述第一slave节点的任务处理环境导致;

s009、master节点将所述软件项目构建任务分配给其他slave节点,由其他slave节点再次对所述软件项目构建任务进行处理;

s010、master节点获得所述其他slave节点对所述软件项目构建任务进行处理后的第二处理结果;

s011、master节点确定所述第一处理结果和所述第二处理结果是否相同,如果相同,执行步骤s012,如果不同,执行步骤s013;

s012、master将所述第一处理结果和所述第二处理结果中的任一处理结果确定为所述软件项目构建任务的处理结果发送给用户设备;

s013、master节点将所述第二处理结果确定为所述软件项目构建任务的处理结果发送给用户设备。

s014、master节点将所述第一处理结果确定为所述软件项目构建任务的处理结果发送给用户设备。

与上述本发明实施例提供的任务处理方法相对应,本发明还提供了一种任务分配设备。

如图5所示,本发明实施例提供的一种任务分配设备,可以包括:第一结果获得单元100、任务分配单元200、第二结果获得单元300、第一结果确定单元400和第二结果确定单元500,

所述第一结果获得单元100,用于获得第一任务处理设备对待处理任务进行处理后的第一处理结果;

可选的,所述任务分配设备可以为主服务器,所述任务处理设备可以为从服务器,所述待处理任务可以为软件项目构建任务。可选的,本发明的任务分配设备和任务处理设备可以分别为jenkins中的master节点和slave节点。

所述任务分配单元200,用于在所述第一处理结果表明所述待处理任务失败时,将所述待处理任务分配给其他任务处理设备,由其他任务处理设备再次对所述待处理任务进行处理;

其中待处理任务失败可能有两种原因所致:一种是代码自身原因,另外一种是第一任务处理设备的任务处理环境问题。其中,任务处理环境可以具体包括:硬件环境和软件环境两种,其中硬件环境可以包括:网络环境和硬件配置(如内存空间、处理器性能等)等;软件环境可以包括:操作系统、软件工具库等。

所述第二结果获得单元300,用于获得所述其他任务处理设备对所述待处理任务进行处理后的第二处理结果;

所述第一结果确定单元400,用于在所述第一处理结果和所述第二处理结果相同时,将所述第一处理结果和所述第二处理结果中的任一处理结果确定为所述待处理任务的处理结果;

可以理解的是:所述第一处理结果和所述第二处理结果相同的含义可以为:第一处理结果和第二处理结果表明待处理任务的状态(失败或成功)相同。在本发明其他实施例中,所述第一处理结果和所述第二处理结果相同的含义也可以为:第一处理结果和第二处理结果表明待处理任务的状态(失败或成功)相同,且在第一处理结果和所述第二处理结果均表明待处理任务失败的情况下,二者失败原因也相同。

所述第二结果确定单元500,用于在所述第一处理结果和所述第二处理结果不同时,将所述第二处理结果确定为所述待处理任务的处理结果。

可以理解的是:所述第一处理结果和所述第二处理结果不同的含义可以为:第一处理结果和第二处理结果表明待处理任务的状态(失败或成功)不同。在本发明其他实施例中,所述第一处理结果和所述第二处理结果不同的含义也可以为:在第一处理结果和第二处理结果均表明待处理任务的状态为失败的情况下,二者失败原因不同。

其中,所述任务分配单元200,可以具体设置为:在所述第一处理结果表明所述待处理任务失败时,确定所述待处理任务失败是否是由所述第一任务处理设备的任务处理环境导致,若是则将所述待处理任务分配给其他任务处理设备。

进一步,图5所示任务分配设备还可以包括:信息获得单元,用于获取所述第一任务处理设备处理所述待处理任务的任务处理信息;在此基础上,所述任务分配单元200确定所述待处理任务失败是否是由所述第一任务处理设备的任务处理环境导致,可以具体设置为:

在所述任务处理信息中的处理时长小于预设时长时,确定所述待处理任务失败是由所述第一任务处理设备的任务处理环境导致;

或者

在所述任务处理信息中包含有预设关键词时,确定所述待处理任务失败是由所述第一任务处理设备的任务处理环境导致;

或者

基于所述任务处理信息中的第一任务处理设备的设备标识,确定所述任务分配设备中记录的所述第一任务处理设备的任务失败率是否高于预设失败率,如果是,则确定所述待处理任务失败是由所述第一任务处理设备的任务处理环境导致;

或者,

在所述任务处理信息中的处理时长小于预设时长且在所述任务处理信息中包含有预设关键词时,确定所述待处理任务失败是由所述第一任务处理设备的任务处理环境导致;

或者,

在所述任务处理信息中的处理时长小于预设时长且所述任务分配设备中记录的所述第一任务处理设备的任务失败率高于预设失败率时,确定所述待处理任务失败是由所述第一任务处理设备的任务处理环境导致,其中,所述第一任务处理设备的任务失败率由所述任务分配设备基于所述任务处理信息中的第一任务处理设备的设备标识确定。

其中,第一任务处理设备返回的任务处理信息除包括第一处理结果,还可以包括:待处理任务对应的代码仓库、成功或错误信息(例如错误码)、待处理任务的处理时长和处理该待处理任务的任务处理设备的标识(即第一任务处理设备的标识)。其中,成功或错误信息用于表明成功或错误的原因,待处理任务的处理时长为第一任务处理设备处理该待处理任务所用时长,一般情况下,当处理结果为处理失败时,若待处理任务的处理时长较短则可以视为待处理任务失败是由第一任务处理设备的任务处理环境导致(由于任务处理环境会使得任务无法被处理;而当代码有问题时,任务会执行一段时间直到执行到有问题的代码处而出现错误导致任务无法继续执行)。

具体的,若处理时长小于预设时长,说明第一任务处理设备在处理待处理任务初始段就失败,而待处理任务初始段对应的代码错误的几率较小,因此在此种情况下会视为待处理任务失败且是由第一任务处理设备的任务处理环境导致,其中预设时长可以根据实际应用而定,对此本实施例不加以限制。

其中,预设关键词可以为预设的错误代码或预设的错误类型标识,可以理解的是,错误代码和错误类型标识可以表征错误类型,某些错误类型是由于任务处理环境导致的错误,本发明可以根据识别这些错误类型对应的错误代码或错误类型标识来确定是否由于任务处理环境导致的错误。

在本发明其他实施例中,图5所示任务分配设备还可以包括:第三结果确定单元,用于在所述处理时长大于等于所述预设时长时,将所述第一处理结果确定为所述待处理任务的处理结果。

本发明实施例提供的任务分配设备,在获得第一任务处理设备对待处理任务进行处理后的第一处理结果的情况下,若第一处理结果表明待处理任务失败,则将待处理任务分配给其他任务处理设备进行处理,获得其他任务处理设备对待处理任务进行处理后的第二处理结果,若第一处理结果和第二处理结果不同,则将第二处理结果确定为待处理任务的处理结果,若第一处理结果和第二处理结果相同,则将第一处理结果确定为待处理任务的处理结果。由此在任一任务处理设备对待处理任务处理失败时可通过其他任务处理设备对同一个待处理任务进行再次处理,以此通过对同一个待处理任务的多次处理,提高待处理任务的处理结果的准确度。

对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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