用于分发服务器的任务分发方法、装置以及设备与流程

文档序号:15049749发布日期:2018-07-27 23:59阅读:234来源:国知局

本申请涉及计算机技术领域,具体涉及数据的数据查询领域,尤其涉及用于分发服务器的任务分发方法、装置和设备。



背景技术:

数据查询系统是数据分析的重要工具。随着大数据时代的到来,数据查询系统需要处理的数据越来越多。其中,基于查询树的分布式交互式数据查询是由一个主服务器和许多个子服务器组成,主服务器负责接收请求,通过分析与调度,将一个任务分解为多个子任务,再将这些子任务调度到不同的子服务器上进行处理。目前,基于查询树的分布式交互式数据查询系统中任务的调度大多基于心跳机制以及基于任务超时机制进行调度分发;基于心跳机制的任务调度分发方法对于心跳信息未能及时到达的节点的可用性容易误判,基于任务超时机制的任务调度分发方法对于大规模的任务查询无法得到合理的处理。



技术实现要素:

本申请的目的在于提出一种改进的用于分发服务器的任务分发方法和装置,来解决以上背景技术部分提到的技术问题。

第一方面,本申请提供了一种用于分发服务器的任务分发方法,上述分发服务器分别与终端设备、处理服务器集群通讯连接,上述方法包括:接收上述终端设备发送的任务处理请求,确定上述任务处理请求所指示的待处理任务;获取上述处理服务器集群中各处理服务器的特征信息,其中,特征信息是在任务处理过程中与负责任务处理的处理服务器相关的信息;根据上述特征信息,确定上述处理服务器集群中可用的处理服务器集合以及上述处理服务器集合中各处理服务器的任务量;根据上述各处理服务器的任务量,从上述可用的处理服务器集合中选出处理服务器作为目标处理服务器;将上述待处理任务分发给上述目标处理服务器,以便由上述目标处理服务器处理上述待处理任务。

在一些实施例中,上述特征信息包括心跳包、交互信息和标识信息,上述交互信息是任务处理过程中处理服务器访问任务文件所生成的信息,上述标识信息用于标识处理服务器;以及上述根据上述特征信息,确定上述处理服务器集群中可用的处理服务器集合,包括:从上述特征信息中获取上述处理服务器集群中的各个处理服务器发送的最后一次心跳包的时间,并作为第一时间;判断上述第一时间与当前时间之间的间隔时间是否小于预设的第一时长;响应于上述间隔时间小于上述预设的第一时长,检测上述交互信息是否为空;响应于检测到上述交互信息不为空,确定上述标识信息指示的处理服务器可用。

在一些实施例中,上述根据上述特征信息,确定上述处理服务器集群中可用的处理服务器集合,包括:响应于上述交互信息为空,判断上述处理服务器是否被分配任务;如果上述处理服务器未被分配任务,确定上述标识信息指示的处理服务器可用。

在一些实施例中,上述根据上述特征信息,确定上述处理服务器集群中可用的处理服务器集合,还包括:响应于上述间隔时间大于或等于上述预设的第一时长,判断上述间隔时间是否大于预设的第二时长;响应于上述间隔时间大于上述预设的第二时长,确定上述标识信息指示的处理服务器不可用。

在一些实施例中,上述根据上述特征信息,确定上述处理服务器集群中可用的处理服务器集合,还包括:响应于上述间隔时间小于或等于上述预设的第二时长,确定上述标识信息指示的处理服务器是否可用为待定。

在一些实施例中,上述特征信息还包括任务的重新分发时间;以及上述方法还包括:根据上述重新分发时间,确定分发到被重新分发的任务的处理服务器是否完成上述被重新分发的任务;响应于确定出上述处理服务器未完成上述被重新分发的任务,判断上述被重新分发的任务的重新分发次数是否超出预设的重新分发次数阈值;响应于上述重新分发次数未超出上述预设的重新分发次数阈值,重新分发上述被重新分发的任务。

在一些实施例中,上述方法还包括:从上述处理服务器集群中选出不可用的处理服务器;判断是否向上述不可用的处理服务器分发了任务;响应于向上述不可用的处理服务器分发了任务,将分发给上述不可用的处理服务器的任务重新分发给可用的处理服务器。

第二方面,本申请提供了一种用于分发服务器的任务分发装置,上述分发服务器分别与终端设备、处理服务器集群通讯连接,上述装置包括:接收单元,配置用于接收上述终端设备发送的任务处理请求;待处理任务确定单元,配置用于确定上述任务处理请求所指示的待处理任务;获取单元,配置用于获取上述处理服务器集群中各处理服务器的特征信息,其中,特征信息是在任务处理过程中与负责任务处理的处理服务器相关的信息;可用处理服务器确定单元,配置用于根据上述特征信息,确定上述处理服务器集群中可用的处理服务器集合以及上述处理服务器集合中各处理服务器的任务量;选取单元,配置用于根据上述各处理服务器的任务量,从上述处理服务器集合中选出处理服务器作为目标处理服务器;分发单元,配置用于将上述待处理任务分发给上述目标处理服务器,以便由上述目标处理服务器处理上述待处理任务。

在一些实施例中,上述特征信息包括心跳包、交互信息和标识信息,上述交互信息是任务处理过程中处理服务器访问任务文件所生成的信息,上述标识信息用于标识处理服务器;以及上述确定单元包括:提取模块,配置用于从上述特征信息中获取上述处理服务器集群中的各个处理服务器发送的最后一次心跳包的时间,并作为第一时间;时长确定模块,配置用于判断上述第一时间与当前时间之间的间隔时间是否小于预设的第一时长;检测模块,配置用于响应于上述间隔时间小于上述预设的第一时长,检测上述交互信息是否为空;状态确认模块,配置用于响应于上述交互信息不为空,确定上述标识信息指示的处理服务器可用。

在一些实施例中,上述状态确认模块进一步配置用于:响应于上述交互信息为空,判断上述处理服务器是否被分配任务;如果上述处理服务器未被分配任务,确定上述标识信息指示的处理服务器可用。

在一些实施例中,上述确定单元进一步配置用于:响应于上述间隔时间大于或等于上述预设的第一时长,判断上述间隔时间是否大于预设的第二时长;响应于上述间隔时间大于上述预设的第二时长,确定上述标识信息指示的处理服务器不可用。

在一些实施例中,上述确定单元进一步配置用于:响应于上述间隔时间小于或等于上述预设的第二时长,确定上述标识信息指示的处理服务器是否可用为待定。

在一些实施例中,上述特征信息还包括任务的重新分发时间;以及上述装置还包括任务重新分发单元,上述任务重新分发单元配置用于:根据上述重新分发时间,确定分发到被重新分发的任务的处理服务器是否完成上述被重新分发的任务;响应于确定出上述处理服务器未完成上述被重新分发的任务,判断上述被重新分发的任务的重新分发次数是否超出预设的重新分发次数阈值;响应于上述重新分发次数未超出上述预设的重新分发次数阈值,重新分发上述被重新分发的任务。

在一些实施例中,上述任务重新分发单元进一步配置用于:从上述处理服务器集群中选出不可用的处理服务器;判断是否向上述不可用的处理服务器分发了任务;响应于向上述不可用的处理服务器分发了任务,将分发给上述不可用的处理服务器的任务重新分发给可用的处理服务器。

第三方面,本申请提供了一种用于分发服务器的任务分发设备,包括一个或多个处理器以及存储器,上述存储器存储一个或多个程序,当上述一个或多个程序被上述一个或多个处理器执行时,使得上述一个或多个处理器执行上述用于分发服务器的任务分发方法。

本申请提供的用于分发服务器的任务分发方法和装置,通过对处理服务器的特征信息的判断确定出可用的处理服务器,从可用的处理服务器中选取出任务量少的处理服务器,将任务分发到所选取出的处理服务器处理。从而可以及时的确定出可用的处理服务器,并将待处理任务分发到空闲的处理服务器处理,实现了待处理任务的合理分发调度,提高负载的平衡能力,保证了任务的正常完成。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:

图1是本申请可以应用于其中的示例性系统架构图;

图2是根据本申请的用于分发服务器的任务分发方法的一个实施例的流程图;

图3是根据本申请的用于分发服务器的任务分发方法的一个流程示意图;

图4是根据本申请的用于分发服务器的任务分发方法的又一个实施例的流程图;

图5是根据本申请的用于分发服务器的任务分发装置的一个实施例的结构示意图;

图6是适于用来实现本申请实施例的服务器的计算机系统的结构示意图。

具体实施方式

下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

图1示出了可以应用本申请的用于分发服务器的任务分发方法和用于分发服务器的任务分发装置的实施例的示例性系统架构100。

如图1所示,系统架构100可以包括终端设备101、102、103,网络104、分发服务器105和处理服务器集群106。网络104用以在终端设备101、102、103和分发服务器105之间提供通信链路的介质,以及,用以在分发服务器105和处理服务器集群106之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。

用户可以使用终端设备101、102、103通过网络104与分发服务器105交互,以发送任务处理请求或接收处理后的任务的结果信息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如数据查询类应用、搜索类应用、数据分析类应用等。

终端设备101、102、103可以是具有显示屏、输入设备(如键盘、鼠标、触屏等),并支持网络通信的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。

分发服务器105可以是提供各种服务的服务器,例如对终端设备101、102、103上发送的任务处理请求进行分发调度的管理服务器。上述管理服务器可以根据当前处理服务器集群106中各处理服务器的状态及所分发的任务的处理情况,将从终端设备接收的任务处理请求,如数据查询请求,分发调度到相应的处理服务器进行处理,并将处理结果(例如查询的结果数据)反馈给终端设备。

处理服务器集群106可以是由多个与分发服务器105连接的处理服务器组成的集群,其中,处理服务器集群106的每个处理服务器相互独立,且能够对分发服务器所分发的任务进行处理。可以理解的是,分发服务器与处理服务器集群中的各处理服务器可以组成分布式系统,分发服务器可以作为分布式系统的主节点,每个处理服务器作为分布式系统的子节点。

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

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

继续参考图2,示出了根据本申请的用于分发服务器的任务分发方法的一个实施例的流程200。流程200所描述的用于分发服务器的任务分发方法,包括以下步骤:

步骤201,接收终端设备发送的任务处理请求,确定该任务处理请求所指示的待处理任务。

在本实施例中,分发服务器分别与终端设备、处理服务器集群通讯连接,这里,分发服务器和处理服务器集群中的各处理服务器可以作为分布式系统的主节点和子节点。分发服务器接收终端设备的任务处理请求,并将上述任务处理请求所指示的待处理任务分发调度到处理服务器集群中的处理服务器处理。其中,上述分发服务器可以通过有线连接方式或者无线连接方式获得与其连接的终端设备发送的任务处理请求。需要指出的是,上述无线连接方式可以包括但不限于3g/4g连接、wifi连接、蓝牙连接、wimax连接、zigbee连接、uwb(ultrawideband)连接、以及其他现在已知或将来开发的无线连接方式。

上述终端设备所发送的任务处理请求可以是数据查询搜索请求,也可以是对数据的分析、运算请求。上述分发服务器通过对上述任务处理请求的分析,分解该任务处理请求所请求处理的任务,并确定该任务处理请求所指示的待处理任务。这里,可以将上述待处理任务添加到待处理任务队列等待分发调度,也可以直接分发给各处理服务器进行处理。

步骤202,获取处理服务器集群中各处理服务器的特征信息。

在本实施例中,上述分发服务器获取与其通信连接的处理服务器集群中各处理服务器的特征信息。上述处理服务器的特征信息是在任务处理过程中与负责任务处理的处理服务器相关的信息。上述特征信息包括上述处理服务器在任务处理过程中所产生的信息。其中,上述在任务处理过程中所产生的信息包括以下至少一项:在任务处理过程中访问任务文件的次数、任务文件的数目、所分发的任务的处理进度、任务处理过程中的数据量等信息,以及该处理服务器是否被分发调度了任务、该处理服务器与分发服务器之间的通信联络信息等;其中,任务文件是用于对所分发的任务进行处理的应用文件,如将上述任务归类、或对上述任务中的文字、图片进行识别的应用文件。这里,上述特征信息可以是各处理服务器按照一定的周期自动的向上述电子设备发送的信息,还可以是上述电子设备直接从上述各处理服务器中获得的信息,在此不做限制。

步骤203,根据各处理服务器的特征信息,确定处理服务器集群中可用的处理服务器集合以及该处理服务器集合中各处理服务器的任务量。

在本实施例中,分发服务器基于步骤202中所获取的各处理服务器的特征信息,确定出处理服务器集群中可用的处理服务器集合以及该处理服务器集合中各处理服务器的任务量。这里,上述分发服务器可以根据上述特征信息中的任务处理过程中所生成的信息确定出各处理服务器是否可用,以及各处理服务器的任务量。例如,可以由上述特征信息中的用于该处理服务器与分发服务器之间的通信联络的信息确定出处理服务器是否可用,可以由上述特征信息中访问任务文件的次数、任务文件的数据量等确定出该服务器的任务量。

这里,根据特征信息确定出处理服务器是否可用,可以将上述处理服务器集群中的各处理服务器确定为可用、不可用和待定。处理服务器不可用是指因网络阻塞或处理服务器宕机等原因导致该处理服务器无法与上述分发服务器正常通信以及无法正常地处理所分发的任务;处理服务器待定是指处理服务器是否可用不确定,可能是因网路拥堵或所处理的任务数据量庞大没有及时与上述分发服务器建立通信连接,还可能是由于处理服务器故障而无法正常处理所分发的任务;处理服务器可用是指该处理服务器与上述分发服务器之间通信正常,并能够正常的处理所分发的任务。

上述可用的处理服务器集合是由可用的处理服务器组成的集合。处理服务器的任务量是指该处理服务器在任务处理过程中接收或发送任务文件的数据量,需要指出的是,为了提高任务的处理效率,本实施例中可以只确定可用的处理服务器的任务量。

在本实施例的一些可选的实现方式中,上述特征信息包括心跳包、交互信息和标识信息。交互信息是任务处理过程中处理服务器访问任务文件所生成的信息。标识信息用于标识处理服务器,通过上述标识信息可以确定出发出该特征信息的处理服务器,如,该标识信息可以是发出该特征信息的处理服务器的ip。交互信息是在上次心跳与本次心跳的间隔时间内产生的信息,处理服务器在将上述特征信息发送到分发服务器后,将上述交互信息清零。

上述步骤203可以进一步包括:从上述特征信息中获取处理服务器集群中的各个处理服务器发送的最后一次心跳包的时间,并作为第一时间;判断第一时间与当前时间之间的间隔时间是否小于预设的第一时长;响应于上述间隔时间小于预设的第一时长,检测上述交互信息是否为空;响应于检测到上述交互信息不为空,确定上述标识信息指示的处理服务器可用。这里,判断第一时间与当前时间之间的间隔时间是否小于预设的第一时长,可以确定出上述分发服务器及时地收到了处理服务器的心跳包;交互信息不为空,确定出处理服务器中存在任务,并正在处理。据此可确定出该标识信息指示的处理服务器是否可用。

在本实施例的一些可选的实现方式中,响应于上述交互信息为空,判断上述处理服务器是否被分配了任务,如果上述处理服务器未被分配任务,确定上述标识信息指示的处理服务器可用。这里,没有被分配任务,并在设定时长内及时地收到心跳包的处理服务器可用。

在本实施例的一些可选的实现方式中,上述步骤203可以进一步包括:响应于上述间隔时间大于或等于预设的第一时长,判断上述间隔时间是否大于预设的第二时长;响应于上述间隔时间大于预设的第二时长,确定上述标识信息指示的处理服务器不可用。这里,当间隔时间大于预设的第二时长时,可认定上述分发服务器长时间未收到处理服务器的心跳包,可以确定出上述处理服务器与分发服务器之间的通信连接中断或处理服务器故障,因此,上述处理服务器不可用。

在本实施例的一些可选的实现方式中,步骤203可以进一步包括:响应于上述间隔时间小于或等于预设的第二时长,确定标识信息指示的处理服务器是否可用为待定。当上述间隔时间介于预设的第一时长和预设的第二时长之间时,上述标识信息所指示的处理服务器可能因网络拥堵、心跳进程阻塞或该处理服务器正在执行大规模的处理任务等原因导致心跳不能及时到达,当网络或心跳进程正常后可以继续使用;还可能是该处理服务器故障,上述标识信息所指示的处理服务器不可用。

在本实施例中,上述交互信息可以包括任务处理过程中访问任务文件的访问次数和任务文件的数据量,上述处理服务器配置有多个应用的运行实例;上述步骤203中根据各处理服务器的特征信息,确定处理服务器的任务量可以是:获取处理服务器所配置的应用的各个运行实例在处理任务过程中访问任务文件的次数以及所访问的任务文件的数据量;根据各运行实例在处理任务时访问任务文件的次数以及所访问任务文件的数据量确定出各运行实例的任务量;将属于同一处理服务器所配置的应用的各运行实例的任务量做加和操作,得到各处理服务器的任务量。这里,运行实例是处理服务器的应用程序处理任务过程中的一个应用进程,实现对任务的处理。可以通过各个运行实例在处理任务过程中访问的任务文件的次数以及所访问任务文件的数据量确定出该运行实例的任务量。将处理服务器所配置的应用的每个运行实例的任务量相加得到该处理服务器的任务量。

步骤204,根据上述各处理服务器的任务量,从可用的处理服务器集合中选出处理服务器作为目标处理服务器。

在本实施例中,上述分发服务器可以根据上述处理服务器的任务量从可用的处理服务器集合中选出处理服务器作为目标处理服务器。这里,基于步骤203中所确定出的处理服务器的任务量,从上述可用的处理服务器集群中选出空闲的处理服务器或任务量少的处理服务器作为目标处理服务器。例如,可以根据所处理任务的任务量由少到多的顺序选取出一个或多个可用的处理服务器作为目标处理服务器。

步骤205,将待处理任务分发给目标处理服务器,以便由该目标处理服务器处理上述待处理任务。

在本实施例中,上述分发服务器将待处理的任务分发给步骤204中所确定的目标处理服务器,以便于上述目标处理服务器处理上述被分发的待处理任务。这里,上述待处理任务可以是由终端设备所发送的任务处理请求所指示的任务,还可以是从已有的待处理任务队列中获得。

继续参见图3,图3是根据本实施例的用于分发服务器的任务分发方法的流程示意图。在图3的应用流程示意图中,上述分发服务器首先从终端设备获取到待处理任务301,加入到待处理任务队列等待分发调度;然后,获取与其通信连接的处理服务器的特征信息302,并根据处理服务器的信息确定出可用的处理服务器,并从可用的处理服务器中选出空闲的或任务量少的处理服务器作为目标服务器;最后,将待处理任务分发到所选出的目标处理服务器处理303。当用户通过终端设备发送任务处理请求后,如,用户发送数据查询任务请求,上述分发服务器将该任务查询请求所指示的任务发送到处理服务器处理,在查询任务完成后返回查询结果。

本申请的上述实施例提供的方法通过对处理服务器的特征信息的分析判断,从可用的处理服务器中选出任务量少的或空闲的处理服务器作为目标处理服务器,实现了处理任务的合理分发调度,提高负载的平衡能力,保证了任务的正常完成。

进一步参考图4,其示出了用于分发服务器的任务分发方法的又一个实施例的流程400。该用于分发服务器的任务分发方法的流程400,包括以下步骤:

步骤401,接收终端设备发送的任务处理请求,确定该任务处理请求所指示的待处理任务。

在本实施例中,分发服务器可以通过有线连接方式或者无线连接方式获得终端设备发送的任务处理请求,并确定该任务处理请求所指示的待处理任务。将待处理任务加入到待处理任务队列,这里待处理任务队列中的待处理任务可以是终端设备发送的任务处理请求所指示的任务,还可以是经处理服务器处理,但未处理完成,需要重新分发以便处理服务器继续处理的任务。

步骤402,获取处理服务器集群中各处理服务器的特征信息。

在本实施例中,上述分发服务器获取与其通信连接的处理服务器集群中各处理服务器的特征信息。上述处理处理服务器的特征信息是在任务处理过程中与负责任务处理的处理服务器相关的信息。这里,上述特征信息可以包括心跳包、交互信息和标识信息,以及,负责任务处理的处理服务器所处理的任务的重新分发时间。这里,上述任务重新分发时间是根据处理该任务的处理服务器所完成任务的进度估算的该任务完成的时间。

步骤403,根据特征信息,确定处理服务器集群中可用的处理服务器集合以及该处理服务器集合中各处理服务器的任务量。

在本实施例中,上述分发服务器基于步骤402中所获取的特征信息,确定出处理服务器集群中可用的处理服务器集合以及该处理服务器集合中各处理服务器的任务量。

步骤404,根据上述各处理服务器的任务量,从可用的处理服务器集合中选出处理服务器作为目标处理服务器。

在本实施例中,上述分发服务器可以根据上述处理服务器的任务量从可用的处理服务器集合中选出处理服务器作为目标处理服务器。这里,基于步骤403中所确定出的处理服务器的任务量,从上述可用的处理服务器集群中选出空闲的处理服务器或任务量少的处理服务器作为目标处理服务器。

步骤405,根据特征信息确定处理服务器所处理的任务是否需要重新分发,将需要重新分发的任务加入到待重发任务队列等待重新分发。

在本实施例中,上述待处理的任务还包括需要重新分发调度的待重发的任务。上述分发服务器从待处理的任务中选出待重发的任务,根据如下子步骤判断所选出的待重发的任务是否可以重新分发调度:

子步骤4051,根据上述重新分发时间,确定分发到被重新分发的任务的处理服务器是否完成上述被重新分发的任务。

在本子步骤中,上述分发服务器首先从步骤401中所获取的特征信息中得到处理服务器所处理的任务的重新分发时间,然后,判断在该时间点内被分发到上述处理服务器的被重新分发的任务是否完成。

子步骤4052,响应于确定出上述处理服务器未完成被重新分发的任务,判断上述被重新分发的任务的重新分发次数是否超出预设的重新分发次数阈值。

在本子步骤中,基于上述子步骤4051中所判断的结果,响应于上述被重新分发的任务未在上述任务的重新分发时间点内完成,上述分发服务器继续判断上述被重新分发的任务的重新分发次数是否超出预设的重新分发次数阈值。这里,上述分发服务器可以预先设置存储区域,用于存储需要重新分发的任务的信息,该信息包括该任务重新分发的次数。

子步骤4053,响应于重新分发次数未超出预设的重新分发次数阈值,重新分发上述被重新分发任务。

在本子步骤中,当上述重新分发的次数没有超出设定的重新分发次数阈值,将需要重新分发的任务加入到待重发的任务队列,等待重新分发。这里,上述分发服务器可以将上述待重发的任务分发到在步骤404中所确定出的目标处理服务器。

在本实施例中,上述任务的重新分发时间通过如下步骤确定:获取处理服务器所处理的任务的分发时间和节点时间,其中,节点时间是上述处理服务器所处理的任务的进度达到设定的进度阈值的时间;确定该分发时间和节点时间之间的时长作为任务基准时间;根据任务基准时间和设定的进度阈值确定该任务的重新分发时间。这里,上述分发服务器记录处理任务的分发时间和节点时间。其中,分发时间是上述电子设备将待处理的任务分发到处理服务器的时间;节点时间是该处理任务的进度达到设定的进度阈值的时间,例如,上述节点时间可以是该任务的进度达到80%的时间(或,该任务的80%的子任务已经完成的时间)。作为示例,如,上述基准时间t0,t0为4秒,上述预设的进度阈值为80%,则根据上述进度处理该任务,完成该任务还需要的时间t1,t1为1秒。上述根据任务基准时间和设定的进度阈值确定该处理任务的重新分发时间可以是,在重新分发该任务的分发时间的基础上加处理完成该任务还需要的时间t1,以及增加预设的第三时长t2后得到该处理任务的重新分发时间,即该任务下次的重新分发时间是:重新分发调度该任务的时间+t1+t2。

在本实施例的一些可选的实现方式中,对于重新分发次数超出预设的重新分发次数阈值的任务,该任务经过多次重新分发后仍未完成,该任务可能出错,即使再次重新分发调度,该任务也无法完成。上述分发服务器停止上述任务的分发调度,将该任务置为任务失败,并标注该任务,以便系统或人工对该任务进行单独处理。

在本实施例的一些可选的实现方式中,该方法还包括从上述处理服务器集群中选出不可用的处理服务器,判断是否向该不可用处理服务器分发了任务;响应于向不可用处理服务器分发了任务,将分发给上述不可用的处理服务器的任务重新分发给可用的处理服务器。这里,确定处理服务器不可用的方法在前一实施例中描述,在此不再赘述。上述响应于该不可用处理服务器有处理任务是指,上述不可用处理服务器被分发调度了任务。上述重新分发该任务是指将分发到该不可用处理服务器的任务重新分发调度到其他可用的处理服务器进行处理。可以将上述不可用处理服务器的处理任务重新分发到上述步骤404中所选出的目标处理服务器进行处理。

在本实施例的一些可选的实现方式中,还可以对处理服务器是否可用为待定的处理服务器所处理的任务进行重新分发调度的步骤,该步骤包括:从处理服务器集群中选出是否用为待定的处理服务器;判断该处理服务器的任务量是否小于预设的任务量阈值;响应于该处理服务器的任务量小于预设的任务量阈值,则向该处理服务器发出停止处理任务的指令,并将该处理服务器所处理的任务重新分发。这里,确定处理服务器是否可用为待定的方法,以及确定处理服务器的任务量的方法在前一实施例中描述,在此不再赘述。上述处理服务器的任务量小于预设的任务量阈值是指在上述时间间隔内,该处理服务器与任务文件之间没有数据交换或数据交换很少,也即该处理服务器暂时不可用。将该处理服务器所处理的任务重新分发调度到其他可用的处理服务器处理。如果上述处理服务器是否可用为待定的处理服务器的任务量大于或等于预设的任务量阈值,则,上述处理服务器与任务文件之间有一定数量的数据交换,该处理服务器可能出现故障、也可能是与分发服务器之间的网络出现拥堵、还可能是该处理服务器在处理一些长尾数据(长尾是由于大量任务并发的情况下,少部分任务完成远慢于其他任务的现象,造成长尾的原因包括所处理的任务中包含大量的具有个性化需求、零散需求的数据)。因此,该处理服务器继续处理已分发的任务,不再分发新的处理任务,直到再次通过该处理服务器的特征信息确定该处理服务器为可用或不可用。

从图4中可以看出,与图2对应的实施例相比,本实施例中的用于分发服务器的任务分发方法的流程400突出了对处理任务中需要重新分发调度的任务进行重新分发的步骤。由此,本实施例描述的方案可以对处理失败的任务及时重新分发处理。从而使得待处理的任务能够及时、可靠的完成。

进一步参考图5,作为对上述各图所示方法的实现,本申请提供了一种用于分发服务器的任务分发装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。

如图5所示,本实施例所描述的用于分发服务器的任务分发装置500包括:接收单元501、待处理任务确定单元502、获取单元503、可用处理服务器确定单元504、选取单元505和分发单元506。其中,接收单元501,配置用于接收上述终端设备发送的任务处理请求;待处理任务确定单元502配置用于确定上述任务处理请求所指示的待处理任务;获取单元503配置用于获取上述处理服务器集群中各处理服务器的特征信息,其中,特征信息是在任务处理过程中与负责任务处理的处理服务器相关的信息;可用处理服务器确定单元504配置用于根据上述特征信息,确定上述处理服务器集群中可用的处理服务器集合以及上述处理服务器集合中各处理服务器的任务量;选取单元505配置用于根据上述各处理服务器的任务量,从上述可用的处理服务器集合中选出处理服务器作为目标处理服务器;分发单元506配置用于将上述待处理任务分发给上述目标处理服务器,以便由上述目标处理服务器处理上述待处理任务。

在本实施例中,分发服务器分别与终端设备、处理服务器集群通讯连接,这里,分发服务器和处理服务器集群中的各个处理服务器可以作为分布式系统的主节点和子节点。用于分发服务器的任务分发装置500的接收单元501接收终端设备的任务处理请求,并将任务处理请求分发调度到处理服务器集群中的处理服务器处理。接收单元501可以通过有线连接方式或者无线连接方式获得终端设备发送的任务处理请求;待处理任务确定单元502根据上述接收单元501所接收的任务处理请求确定该任务处理请求所指示的待处理任务。

在本实施例中,获取单元503获取与本装置通信连接的处理服务器集群中各处理服务器的特征信息。上述处理处理服务器的特征信息是在任务处理过程中与负责任务处理的处理服务器相关的信息。上述特征信息可以是在任务处理过程中所产生的信息。

在本实施例中,可用处理服务器确定单元504基于获取单元503中所获取的特征信息,确定出处理服务器集群中可用的处理服务器集合以及该处理服务器集合中各处理服务器的任务量。这里,上述可用处理服务器确定单元504可以根据上述特征信息中与处理服务器相关的信息确定出处理服务器是否可用,以及根据上述特征信息中与处理服务器在处理任务中所产生的信息确定出处理服务器的任务量。这里,上述处理服务器集群中的各处理服务器可以分为可用、不可用和待定。上述可用的处理服务器集合是由可用的处理服务器组成的集合。处理服务器的任务量是该处理服务器在任务处理过程中接收或发送文件的数据量,需要指出的是,确定处理服务器的任务量所针对的处理服务器是可用的处理服务器集合中的处理服务器。

在本实施例中,选取单元505可以根据上述处理服务器的任务量从可用的处理服务器集合中选出处理服务器作为目标处理服务器。这里,基于可用处理服务器确定单元504中所确定出的处理服务器的任务量,从上述处理服务器集群中选出空闲的处理服务器或任务量少的处理服务器作为目标处理服务器。例如,可以根据处理服务器的任务量由少到多的顺序选取出一个或多个可用的处理服务器作为目标处理服务器。

在本实施例中,上述分发单元506将待处理的任务分发给选取单元505中所确定的目标处理服务器,以便于上述目标处理服务器处理上述被分发的待处理任务。这里,上述待处理任务可以是由终端设备所发送的任务处理请求所指示的任务,还可以是从已有的待处理任务队列中获得。

在本实施例的一些可选的实现方式中,上述获取单元503所获取的特征信息还包括任务的重新分发时间;以及上述装置还包括任务重新分发单元,上述任务重新分发单元配置用于:根据上述重新分发时间,确定分发到被重新分发的任务的处理服务器是否完成上述被重新分发的任务;响应于确定出该处理服务器未完成上述被重新分发的任务,判断上述被重新分发的任务的重新分发次数是否超出预设的重新分发次数阈值;响应于上述重新分发次数没有超出预设的重新分发次数阈值,重新分发上述被重新分发的任务。

应当理解,用于分发服务器的任务分发装置500中所记载的单元501至单元506分别与参考图2中描述的方法中的各个步骤相对应。由此,上文针对用于分发服务器的任务分发方法描述的操作和特征同样适用于装置500及其中包含的单元,在此不再赘述。装置500的相应单元可以与服务器的单元相互配合以实现本申请实施例的方案。

本申请的上述实施例提供的装置通过对处理服务器的特征信息的分析判断,从可用的处理服务器中选出任务量少的或空闲的处理服务器作为目标处理服务器,实现了所处理的任务的合理分发调度,提高负载的平衡能力,保证了任务的正常完成。

下面参考图6,其示出了适于用来实现本申请实施例的服务器的计算机系统600的结构示意图。

如图6所示,计算机系统600包括中央处理单元(cpu)601,其可以根据存储在只读存储器(rom)602中的程序或者从存储部分608加载到随机访问存储器(ram)603中的程序而执行各种适当的动作和处理。在ram603中,还存储有系统600操作所需的各种程序和数据。cpu601、rom602以及ram603通过总线604彼此相连。输入/输出(i/o)接口605也连接至总线604。

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

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

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

描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括接收单元、待处理任务确定单元、获取单元、可用处理服务器确定单元、选取单元和分发单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,接收单元还可以被描述为“接收终端设备发送的任务处理请求的单元”。

作为另一方面,本申请还提供了一种非易失性计算机存储介质,该非易失性计算机存储介质可以是上述实施例中所描述的装置中所包含的非易失性计算机存储介质;也可以是单独存在,未装配入终端中的非易失性计算机存储介质。上述非易失性计算机存储介质存储有一个或者多个程序,当上述一个或者多个程序被一个设备执行时,使得该设备:接收上述终端设备发送的任务处理请求,确定上述任务处理请求所指示的待处理任务;获取上述处理服务器集群中各处理服务器的特征信息,其中,特征信息是在任务处理过程中与负责任务处理的处理服务器相关的信息;根据上述特征信息,确定上述处理服务器集群中可用的处理服务器集合以及上述处理服务器集合中各处理服务器的任务量;根据上述各处理服务器的任务量,从上述可用的处理服务器集合中选出处理服务器作为目标处理服务器;将上述待处理任务分发给上述目标处理服务器,以便由上述目标处理服务器处理上述待处理任务。

以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离本发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

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