发明内容
本发明实施例提供一种任务的处理方法、装置和服务器,在进行分布式任务调度服务时,提高了整个集群中每一个节点设备的CPU利用率。
第一方面,本发明实施例提供一种任务的处理方法,应用于分布式任务调度服务,所述分布式任务调度服务用于调度多个节点设备的线程池,每一个节点设备的线程池中均包括多个线程,该任务的处理方法可以包括:
接收任务请求;所述任务请求中包括待处理的一个或者多个任务的任务标识或任务对象。
将所述一个或者多个任务的任务标识或任务对象添加在分布式阻塞队列中。
在接收数据请求时,将所述分布式阻塞队列中最靠前的目标任务的任务标识或任务对象发送给所述多个节点设备的线程池中最先抢占任务的目标线程,以通过所述目标线程处理所述目标任务。
在一种可能的实现方式中,所述接收任务请求之前,还包括:
检测所述分布式阻塞队列当前的队列长度。
根据所述当前的队列长度,确定所述分布式阻塞队列可再容纳任务的任务标识或任务对象。
在一种可能的实现方式中,该任务的处理方法还可以包括:
在所述分布式阻塞队列可再容纳任务的任务标识或任务对象时,接收每一个节点设备上报的线程池中线程的状态信息;所述状态信息为空闲状态或者忙碌状态。
若所述线程池中存在状态信息为空闲状态的第一线程,且所述第一线程的空闲时长大于预设阈值时,销毁所述第一线程。
在一种可能的实现方式中,该任务的处理方法还可以包括:
在确定所述分布式阻塞队列无法再容纳任务的任务标识或任务对象时,停止接收任务请求,直至所述分布式阻塞队列中有任务被处理,且所述分布式阻塞队列可再容纳任务的任务标识或任务对象。
在一种可能的实现方式中,该任务的处理方法还可以包括:
在所述分布式阻塞队列无法再容纳任务的任务标识或任务对象时,接收每一个节点设备上报的线程池中线程的状态信息;所述状态信息为空闲状态或者忙碌状态。
在接收到新的任务请求时,若所述线程池中每一个线程的状态信息均为忙碌状态,则向所述每一个节点设备发送指示信息,所述指示信息用于指示所述每一个节点设备在所述线程池中增加新的线程。
在一种可能的实现方式中,所述将所述分布式阻塞队列中最靠前的目标任务的任务标识或任务对象发送给所述多个节点设备的线程池中最先抢占任务的目标线程,包括:
将序列化逻辑处理后的目标任务的任务标识或任务对象发送给所述多个节点设备的线程池中最先抢占任务的目标线程。
第二方面,本发明实施例还提供一种任务的处理装置,应用于分布式任务调度服务,所述分布式任务调度服务用于调度多个节点设备的线程池,每一个节点设备的线程池中均包括多个线程,该任务的处理装置可以包括:
接收单元,用于接收任务请求;所述任务请求中包括待处理的一个或者多个任务的任务标识或任务对象。
处理单元,用于将所述一个或者多个任务的任务标识或任务对象添加在分布式阻塞队列中。
发送单元,用于在接收数据请求时,将所述分布式阻塞队列中最靠前的目标任务的任务标识或任务对象发送给所述多个节点设备的线程池中最先抢占任务的目标线程,以通过所述目标线程处理所述目标任务。
在一种可能的实现方式中,所述处理单元,还用于检测所述分布式阻塞队列当前的队列长度;并根据所述当前的队列长度,确定所述分布式阻塞队列可再容纳任务的任务标识或任务对象。
在一种可能的实现方式中,所述接收单元,还用于在所述分布式阻塞队列可再容纳任务的任务标识或任务对象时,接收每一个节点设备上报的线程池中线程的状态信息;所述状态信息为空闲状态或者忙碌状态。
所述处理单元,还用于若所述线程池中存在状态信息为空闲状态的第一线程,且所述第一线程的空闲时长大于预设阈值时,销毁所述第一线程。
在一种可能的实现方式中,所述接收单元,还用于在确定所述分布式阻塞队列无法再容纳任务的任务标识或任务对象时,停止接收任务请求,直至所述分布式阻塞队列中有任务被处理,且所述分布式阻塞队列可再容纳任务的任务标识或任务对象。
在一种可能的实现方式中,所述接收单元,还用于在所述分布式阻塞队列无法再容纳任务的任务标识或任务对象时,接收每一个节点设备上报的线程池中线程的状态信息;所述状态信息为空闲状态或者忙碌状态。
所述发送单元,还用于在接收到新的任务请求时,若所述线程池中每一个线程的状态信息均为忙碌状态,则向所述每一个节点设备发送指示信息,所述指示信息用于指示所述每一个节点设备在所述线程池中增加新的线程。
在一种可能的实现方式中,所述发送单元,具体用于将序列化逻辑处理后的目标任务的任务标识或任务对象发送给所述多个节点设备的线程池中最先抢占任务的目标线程。
第三方面,本发明实施例还提供一种集群服务器,该集群服务器可以包括存储器和处理器。
存储器,用于存储计算机程序。
处理器,用于读取存储器存储的计算机程序,并根据所述存储器中的计算机程序执行如上述第一方面任一项所述的任务的处理方法。
第四方面,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上述第一方面任一项所述的任务的处理方法。
本发明实施例提供的任务的处理方法、装置和服务器,在接收到包括待处理的一个或者多个任务的任务标识或者任务对象的任务请求时,可以先将该一个或者多个任务的任务标识或任务对象添加在分布式阻塞队列中,并在接收到数据请求时,将分布式阻塞队列中最靠前的目标任务的任务标识或任务对象发送给多个节点设备的线程池中最先抢占任务的目标线程,以通过目标线程处理目标任务,从而实现了对多个节点设备的线程池进行统一调度,以通过调度的线程处理待处理的任务,从而提高了整个集群中每一个节点设备的CPU利用率。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在本发明的实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联任务对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,其中A,B可以是单数或者复数。在本发明的文字描述中,字符“/”一般表示前后关联任务对象是一种“或”的关系。
基于现有技术中存在的问题,为了在进行分布式任务调度服务时,提高了整个集群中每一个节点设备的CPU利用率,本发明实施例提供了一种任务的处理方法,示例的,请参见图1所示,图1为本发明实施例提供的一种应用场景的示意图,该任务的处理方法可应用于分布式任务调度系统,该分布式任务调度系统可以安装在第三方集群服务器上,对应的,该应用场景中可以包括一个第三方集群服务器和多个节点设备,该多个节点设备中每一个节点设备的线程池中均包括多个线程,在有待处理的任务时,该第三方集群服务器可以通过分布式任务调度系统调度多个节点设备的线程池,以调度线程池中的线程处于该待处理的任务,即实现了对多个节点设备的线程池进行统一调度,从而通过调度的线程处理待处理的任务。当然,该分布式任务调度系统还可以包括线程池生产者,该线程池生产者用于创建任务标识或任务对象,并通过任务请求将其创建的任务标识或任务对象发送给第三方集群服务器,以使第三方集群服务器获取到待处理的任务。
基于图1所示的场景,在本发明实施例中,第三方集群服务器在接收到包括待处理的一个或者多个任务的任务标识或者任务对象的任务请求时,可以先将该一个或者多个任务的任务标识或任务对象添加在分布式阻塞队列中,并在接收到数据请求时,将分布式阻塞队列中最靠前的目标任务的任务标识或任务对象发送给多个节点设备的线程池中最先抢占任务的目标线程,以通过目标线程处理目标任务,从而实现了对多个节点设备的线程池进行统一调度,以通过调度的线程处理待处理的任务,从而提高了整个集群中每一个节点设备的CPU利用率。当然,还可以定时监控CPU负载,从而对负载过高的节点设备的线程池进行线程数限制。
示例的,第三方集群服务器可以为Redis集群服务器,也可以为其它具有Redis集群特性的服务器,具体可以根据实际需要进行设置。可以理解的是,本发明实施例只是以第三方集群服务器为Redis集群服务器为例进行说明,但并不代表本发明实施例仅局限于此。
下面以具体地实施例对本发明的技术方案以及本发明的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本发明的实施例进行描述。
图2为本发明实施例提供的一种任务的处理方法的流程示意图,应用于分布式任务调度服务,分布式任务调度服务用于调度多个节点设备的线程池,每一个节点设备的线程池中均包括多个线程,示例的,请参见图2所示,该任务的处理方法可以包括:
S201、接收任务请求。
其中,任务请求中包括待处理的一个或者多个任务的任务标识或任务对象。
示例的,分布式任务调度系统启动后,线程池生产者可以从外部存储(如数据库、文件系统等)中获取基础数据,并将基础数据加工为待处理的任务标识或任务对象,之后,再通过无线传输技术将待处理任务的任务标识或任务对象发送给第三方集群服务器,以使第三方集群服务器获取到包括该待处理任务的任务标识或任务对象的任务请求。
在接收到包括该待处理任务的任务标识或任务对象的任务请求之后,第三方集群服务器可以先将其接收到的一个或者多个任务的任务标识或任务对象添加在分布式阻塞队列中,即执行下述S202:
S202、将一个或者多个任务的任务标识或任务对象添加在分布式阻塞队列中。
示例的,分布式阻塞队列的数据结构可以为redis的Lists数据结构,当然,也可以为其它与redis的Lists数据结构类似的数据结构,具体可以根据实际需要进行设置。
在将一个或者多个任务的任务标识或任务对象添加在分布式阻塞队列中时,需采用适当的序列化手段对任务标识或任务对象进行序列化处理,以使该一个或多个任务的任务标识或任务对象可通过网络传输,再使用rpush命令将该一个或者多个任务的任务标识或任务对象添加在分布式阻塞队列中,该分布式阻塞队列中的任务标识或任务对象即为待处理任务的任务标识或任务对象。
S203、在接收数据请求时,将分布式阻塞队列中最靠前的目标任务的任务标识或任务对象发送给多个节点设备的线程池中最先抢占任务的目标线程,以通过目标线程处理目标任务。
示例的,第三方集群服务器在接收数据请求时,该数据请求可以为多个节点设备中某一个节点设备中的线程发送的数据请求,也可以为多个节点设备中某两个甚至多个节点设备中的线程发送的数据请求。接收到线程发送的数据请求的过程可以理解为各个线程通过连接以抢占的方式从分布式阻塞队列拉取任务标识或者任务对象的过程。由于队列的特征为先进先出,因此,可以第三方集群服务器在接收到数据请求后,可以将分布式阻塞队列中最靠前的那一个目标任务的任务标识或者任务对象发送给多个节点设备的线程池中最先抢占任务的目标线程,从而通过目标线程处理目标任务。
示例的,各个线程通过连接以抢占的方式从分布式阻塞队列拉取任务标识或者任务对象时,可以使用blpop命令通过连接从分布式阻塞队列拉取任务标识或者任务对象。此外,还需要说明的是,各个线程使用blpop命令从分布式阻塞队列拉取任务标识或者任务对象时,若该分布式阻塞队列中无任务时,该各个线程会处于等待状态,即该各个线程均会被阻塞,且阻塞后的各个线程暂时不会再处理任务,直至其阻塞状态被解除。进一步地,在使用blpop命令从分布式阻塞队列拉取任务标识或者任务对象时,还需要对连接所属的连接池进行管理,防止blpop命令因线程阻塞而耗尽连接池,造成崩溃。
可以理解的是,在上述S201中,若第三方集群服务器接收到的任务请求中包括的是进行序列化逻辑处理后的任务标识或任务对象,即生产者设备从外部存储(如数据库,文件系统等)读取基础数据并创建任务标识或任务对象之后,先对待处理任务的任务标识和任务对象进行序列化逻辑处理,并将序列化逻辑处理之后的任务标识或任务对象发送给第三方集群服务器,这样第三方集群服务器接收到的任务请求中包括的是进行序列化逻辑处理后的任务标识或任务对象。在该种情况下,第三方集群服务器在将分布式阻塞队列中最靠前的那一个目标任务的任务标识或者任务对象发送给多个节点设备的线程池中最先抢占任务的目标线程时,发送的是进行序列化逻辑处理后的目标任务的任务标识或者任务对象,即目标任务的任务标识或者任务对象的序列化结果。因此,目标线程在抢占任务后,需要先序列化逻辑处理后的目标任务的任务标识或者任务对象进行反序列化逻辑处理,从而得到序列化逻辑处理之前的目标任务的任务标识或者任务对象。
示例的,在对目标任务的任务标识和任务对象进行序列化逻辑处理时,可以使用目标任务的任务标识和任务对象的全类名,连接字符“@”,连接目标任务的任务标识和任务对象的json字符串,从而得到序列化逻辑处理之后的任务标识或任务对象。对应的,在对目标任务的任务标识或任务对象进行反序列化逻辑处理时,可以以字符“@”拆分字符串为两部分,字符串1为目标任务的任务标识和任务对象的全类名,字符串2为目标任务的任务标识和任务对象的json字符串,用全类名加载类,并对json字符串做解析可得任务序列化逻辑处理之前的目标任务的任务标识和任务对象。
由此可见,在本发明实施例中,在得到处理后的目标任务的任务标识或任务对象之后,就可以将处理后的目标任务的任务标识或任务对象发送给多个节点设备的线程池中最先抢占任务的目标线程,从而实现了对多个节点设备的线程池进行统一调度,以通过调度的线程处理待处理的任务,从而提高了整个集群中每一个节点设备的CPU利用率。
基于图2所示的实施例,可以理解的是,由于分布式阻塞队列中可容纳的任务标识或任务对象有限,因此,为了避免因分布式阻塞队列无法容纳任务的任务标识或任务对象,第三方集群服务器在接收包括待处理的一个或者多个任务的任务标识或任务对象的任务请求之前,可以先检测分布式阻塞队列当前的队列长度,并在确定分布式阻塞队列可再容纳任务的任务标识或任务对象时,接收包括待处理的一个或者多个任务的任务标识或任务对象的任务请求。示例的,请参见图3所示,图3为本发明实施例提供的另一种任务的处理方法的流程示意图,该任务的处理方法可以包括:
S301、检测分布式阻塞队列当前的队列长度。
示例的,在检测分布式阻塞队列当前的队列长度时,可以采用lua脚本实现,该lua脚本可以实现分布式阻塞队列当前的队列长度的检测,当然,本发明实施例只是以通过lua脚本实现分布式阻塞队列当前的队列长度的检测为例进行说明,但并不代表本发明实施例仅局限于此。
在检测到分布式阻塞队列当前的队列长度之后,就可以根据该当前的队列长度,确定分布式阻塞队列是否可再容纳任务的任务标识或任务对象,即执行下述S302:
S302、根据当前的队列长度,判断分布式阻塞队列可再容纳任务的任务标识或任务对象。
若分布式阻塞队列可再容纳任务的任务标识或任务对象,则执行上述S201接收任务请求。
在该种场景中,若确定分布式阻塞队列还可以再容纳任务的任务标识或任务对象,则可以接收任务请求,并将接收到的任务请求中包括的待处理的一个或者多个任务的任务标识或任务对象添加在分布式阻塞队列中;相反的,若确定分布式阻塞队列无法再容纳任务的任务标识或任务对象,则执行下述S303:
S303、若分布式阻塞队列无法再容纳任务的任务标识或任务对象,停止接收任务请求,直至分布式阻塞队列中有任务被处理,且分布式阻塞队列可再容纳任务的任务标识或任务对象。
在该种场景中,若确定分布式阻塞队列无法再容纳任务的任务标识或任务对象,此时即使接收到任务请求,也无法将接收到的任务请求中包括的待处理的一个或者多个任务的任务标识或任务对象添加在分布式阻塞队列中,因此,可以先停止接收线程池生产者发送的任务请求,直至分布式阻塞队列中有任务被处理,且分布式阻塞队列可再容纳任务的任务标识或任务对象时,则可以执行S201接收任务请求,并将接收到的任务请求中包括的待处理的一个或者多个任务的任务标识或任务对象添加在分布式阻塞队列中,从而实现对分布式阻塞队列的有效管理。
进一步,基于上述图3所示的实施例中,在根据分布式阻塞队列当前的队列长度,判断分布式阻塞队列可再容纳任务的任务标识或任务对象之后,还可以进一步根据分布式阻塞队列是否可再容纳任务的任务标识或任务对象,对线程池中线程的数量进行管理。在对线程池中线程的数量进行管理时,可以根据分布式阻塞队列是否可再容纳任务的任务标识或任务对象,分为两种不同的管理规则。
在一种管理规则中,当分布式阻塞队列可再容纳任务的任务标识或任务对象时,第三方集群服务器可以接收每一个节点设备上报的线程池中线程的状态信息,状态信息为空闲状态或者忙碌状态,即第三方集群服务器可以获取到每一个节点设备上报的线程池中线程的状态信息,若线程池中存在状态信息为空闲状态的第一线程,且第一线程的空闲时长大于预设阈值时,销毁第一线程。
示例的,预设阈值可以为20分钟,也可以为21分钟,当然,也可以为19分钟,具体可以根据实际需要进行设置,在此,对于预设阈值的取值,本发明实施例不做进一步地限制。
可以看出,在该种管理规则中,在分布式阻塞队列可再容纳任务的任务标识或任务对象的场景下,当线程池中存在状态信息为空闲状态的第一线程,且第一线程的空闲时长大于预设阈值时,可以销毁该第一线程,以释放该第一线程占用的网络链接资源和内存资源,从而降低网络链接资源和内存资源的占用率。可以看出,通过销毁该第一线程,其目的在于减少线程池中的无用线程的数量,但是在减少线程池中的无用线程的数量时,不能无限制地减少,而是当减少到线程数量的下限值时,就不能再继续减少线程池中的线程的数量。其中,线程数量的下限值可以根据实际需要进行设置,在此,对于线程数量的下限值的取值,本发明实施例不做进一步地限制。
在另一种管理规则中,当分布式阻塞队列无法再容纳任务的任务标识或任务对象时,第三方集群服务器可以接收每一个节点设备上报的线程池中线程的状态信息,状态信息为空闲状态或者忙碌状态,即第三方集群服务器可以获取到每一个节点设备上报的线程池中线程的状态信息,并在接收到新的任务请求时,基于线程池中每一个线程的状态信息,判断线程池中每一个线程的状态信息是否均为忙碌状态,若线程池中每一个线程的状态信息均为忙碌状态,则向每一个节点设备发送指示信息,指示信息用于指示每一个节点设备在线程池中增加新的线程。
可以看出,在该种管理规则中,在分布式阻塞队列无法再容纳任务的任务标识或任务对象的场景下,当接收到新的任务请求,且线程池中每一个线程的状态信息均为忙碌状态时,则向每一个节点设备发送指示信息,以通过指示信息指示每一个节点设备在线程池中增加新的线程。可以看出,通过指示信息指示每一个节点设备在线程池中增加新的线程,其目的在于增加线程池中的线程的数量,以通过增加的线程处理任务。但是在增加线程池中的线程的数量时,不能无限制地增加,而是当增加到线程数量的上限值时,就不能再继续增加线程池中的线程的数量。同样的,线程数量的上限值可以根据实际需要进行设置,在此,对于线程数量的上限值的取值,本发明实施例不做进一步地限制。
图4为本发明实施例提供的一种任务的处理装置40的结构示意图,应用于分布式任务调度服务,分布式任务调度服务用于调度多个节点设备的线程池,每一个节点设备的线程池中均包括多个线程,示例的,请参见图4所示,该任务的处理装置40可以包括:
接收单元401,用于接收任务请求;任务请求中包括待处理的一个或者多个任务的任务标识或任务对象。
处理单元402,用于将一个或者多个任务的任务标识或任务对象添加在分布式阻塞队列中。
发送单元403,用于在接收数据请求时,将分布式阻塞队列中最靠前的目标任务的任务标识或任务对象发送给多个节点设备的线程池中最先抢占任务的目标线程,以通过目标线程处理目标任务。
可选的,处理单元402,还用于检测分布式阻塞队列当前的队列长度;并根据当前的队列长度,确定分布式阻塞队列可再容纳任务的任务标识或任务对象。
可选的,接收单元401,还用于在分布式阻塞队列可再容纳任务的任务标识或任务对象时,接收每一个节点设备上报的线程池中线程的状态信息;状态信息为空闲状态或者忙碌状态。
处理单元402,还用于若线程池中存在状态信息为空闲状态的第一线程,且第一线程的空闲时长大于预设阈值时,销毁第一线程。
可选的,接收单元401,还用于在确定分布式阻塞队列无法再容纳任务的任务标识或任务对象时,停止接收任务请求,直至分布式阻塞队列中有任务被处理,且分布式阻塞队列可再容纳任务的任务标识或任务对象。
可选的,接收单元401,还用于在分布式阻塞队列无法再容纳任务的任务标识或任务对象时,接收每一个节点设备上报的线程池中线程的状态信息;状态信息为空闲状态或者忙碌状态。
发送单元403,还用于在接收到新的任务请求时,若线程池中每一个线程的状态信息均为忙碌状态,则向每一个节点设备发送指示信息,指示信息用于指示每一个节点设备在线程池中增加新的线程。
可选的,发送单元403,具体用于将序列化逻辑处理后的目标任务的任务标识或任务对象发送给多个节点设备的线程池中最先抢占任务的目标线程。
本发明实施例所示的任务的处理装置40,可以执行上述任一附图所示的实施例中任务的处理方法的技术方案,其实现原理以及有益效果与任务的处理方法的实现原理及有益效果类似,此处不再进行赘述。
图5为本发明实施例提供的一种集群服务器50的结构示意图,示例的,请参见图5所示,该集群服务器50可以包括存储器501和处理器502。
存储器501,用于存储计算机程序。
处理器502,用于读取存储器501存储的计算机程序,并根据所述存储器501中的计算机程序执行上述任一实施例所示的任务的处理方法。
可选地,存储器501既可以是独立的,也可以跟处理器502集成在一起。当存储器501是独立于处理器502之外的器件时,集群服务器50还可以包括:总线,用于连接存储器501和处理器502。
可选地,本实施例还包括:通信接口,该通信接口可以通过总线与处理器502连接。处理器502可以控制通信接口来实现上述集群服务器50的接收和发送的功能。
本发明实施例所示的集群服务器50,可以执行上述任一附图所示的实施例中任务的处理方法的技术方案,其实现原理以及有益效果与任务的处理方法的实现原理及有益效果类似,此处不再进行赘述。
本发明实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,执行如上述任一实施例所述的任务的处理方法,其实现原理以及有益效果与任务的处理方法的实现原理及有益效果类似,此处不再进行赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所展示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元展示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机节点设备(可以是个人计算机,服务器,或者网络节点设备等)或处理器(英文:processor)执行本发明各个实施例方法的部分步骤。
应理解的是,上述处理器可以是中央处理单元(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital SignalProcessor,简称:DSP)、专用集成电路(英文:Application Specific IntegratedCircuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器,还可以为U盘、移动硬盘、只读存储器、磁盘或光盘等。
总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部节点设备互连(Peripheral Component,PCI)总线或扩展工业标准体系结构(ExtendedIndustry Standard Architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本发明附图中的总线并不限定仅有一根总线或一种类型的总线。
上述计算机可读存储介质可以是由任何类型的易失性或非易失性存储节点设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。存储介质可以是通用或专用计算机能够存取的任何可用介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。