一种任务处理的方法、装置及存储介质
技术领域
本发明涉及大数据
技术领域
,尤其涉及一种任务处理的方法、装置及存储介质。背景技术
当客户端有实际任务需求时,客户端启动实际任务,并向Yarn调度器发送执行实际任务的请求。Yarn调度器接收到实际任务请求后,从Yarn调度器管理的Spark集群中选择空闲的计算节点,由空闲的计算节点执行实际任务;若此时没有空闲的计算节点,则实际任务需要等待,直至有空闲的计算节点,才可执行该实际任务。导致实际任务处理不及时,增加实际任务的处理时间。
发明内容
本申请提供一种任务处理的方法、装置及存储介质,用以降低任务处理的时延。
第一方面,本申请实施例提供一种任务处理的方法,应用于包含有Spark on Yarn架构的服务器中,该方法包括:
驱动节点根据Yarn调度器的启动指示执行预启动,其中,驱动节点是Yarn调度器根据客户端发送的虚拟任务请求从Spark集群中选择的;
驱动节点从可执行任务的消息队列中获取目标任务,并执行获取的目标任务,其中消息队列中的可执行任务是客户端发送的;
驱动节点将目标任务的执行结果发送到消息队列中,以使客户端从消息队列中获取目标任务的执行结果。
第二方面,本申请实施例提供一种任务处理的方法,应用于客户端中,该方法包括:
客户端将可执行任务作为目标任务发送到消息队列中,以使驱动节点从消息队列中获取目标任务;
客户端检测消息队列,接收驱动节点反馈的目标任务的执行结果。
第三方面,本申请实施例提供一种任务处理的装置,该装置包括:预启动单元、执行单元及第一发送单元;其中:
预启动单元,用于根据Yarn调度器的启动指示执行预启动,其中,驱动节点是Yarn调度器根据客户端发送的虚拟任务请求从Spark集群中选择的;
执行单元,用于从可执行任务的消息队列中获取目标任务,并执行获取的目标任务,其中消息队列中的可执行任务是客户端发送的;
第一发送单元,用于将目标任务的执行结果发送到消息队列中,以使客户端从消息队列中获取目标任务的执行结果。
在一种可能的实现方式中,执行单元还用于:实时检测可执行任务的消息队列;当可执行任务的消息队列中有可执行任务时,获取可执行任务作为目标任务。
在一种可能的实现方式中,执行单元还用于:对目标任务进行分析;当目标任务的数据类型为RDD(Resilient Distributed Dataset,分布式数据集)数据类型,将目标任务分发给执行节点,使驱动节点和执行节点共同执行目标任务;
其中,执行节点是在确定目标任务的数据类型为RDD数据类型后,向Yarn调度器发送资源请求获得的。
第四方面,本申请实施例提供一种任务处理的装置,该装置包括:第二发送单元及接收单元,其中:
第二发送单元,用于将可执行任务作为目标任务发送到消息队列中,以使驱动节点从消息队列中获取目标任务;
接收单元,用于检测消息队列,接收驱动节点反馈的目标任务的执行结果。
在一种可能的实现方式中,第二发送单元还用于:将可执行任务进行序列化处理。
在一种可能的实现方式中,第二发送单元还用于:向Yarn调度器发送虚拟任务请求,以使Yarn调度器从Spark集群中选择用于检测消息队列的驱动节点。
第五方面,本申请实施例提供一种任务处理的设备,包括:存储器和处理器,其中,存储器,用于存储计算机指令;处理器,用于执行计算机指令以实现本申请实施例提供的任务处理的方法。
第六方面,本申请实施例提供一种计算机可读存储介质,计算机可读存储介质存储有计算机指令,计算机指令被处理器执行时实现本申请实施例提供的任务处理的方法。
本申请有益效果如下:
本申请提供的一种任务处理的方法、装置及存储介质,驱动节点是Yarn调度器根据客户端发送的虚拟任务请求从Spark集群中选择的,并且执行预启动,实时检测可执行任务的消息队列,当消息队列中有客户端发送的可执行任务时,从消息队列中读取可执行任务作为目标任务,并执行目标任务,确定目标任务的执行结果,将目标任务的执行结果发送到消息队列中,使客户端获取目标任务的执行结果。当有可执行任务达到时,驱动节点直接从消息队列中读取可执行任务,并作为目标任务执行,确定执行结果,跳过Yarn调度器的调度时间,通过节省Yarn调度器选择驱动节点的时间,来优化时间消耗,降低任务处理的时延。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为相关技术中任务处理的架构示意图;
图2为本申请提供的任务处理的应用场景示意图;
图3为本申请提供的一种任务处理的系统架构图;
图4为本申请提供的一种发送虚拟任务请求获取驱动节点的示意图;
图5为本申请提供的一种发送可执行任务的示意图;
图6为本申请提供的一种驱动节点反馈执行结果的示意图;
图7为本申请提供的一种任务处理的整体流程示意图;
图8为本申请提供的一种任务处理的效果图;
图9为本申请提供的一种任务处理的方法流程图;
图10为本申请提供的另一种任务处理的方法流程图;
图11为本申请提供的一种任务处理的装置结构图;
图12为本申请提供的另一种任务处理的装置结构图;
图13为本申请提供的一种计算设备的结构图。
具体实施方式
本申请实施例描述的架构以及任务场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着新任务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
以下对本申请实施例中的部分用语进行解释说明,以便于本领域技术人员理解:
计算节点,一台物理机可以拆分成多个节点,每个节点有又称为计算节点。
驱动节点,又称Spark Driver,是通过Spark计算框架启动任务时,在Spark集群中的计算节点中选择的,用于执行全局性工作,比如资源申请、任务分配等。
执行节点,又称Spark Executor,是任务中实际处理数据的节点,负责运行任务。
Yarn调度器,负责资源调度,主要用于给任务分配计算节点。
序列化,是将可执行的目标任务的状态信息转换为可存储的或传输的形式。
下面对本申请实施例的设计构思进行简要介绍。
如图1所示,为相关技术中任务处理的架构示意图,从图1中可知,在客户端有可执行任务后,向Yarn调度器发送包含有可执行任务的jar文件;Yarn调度器接收到包含有可执行任务的jar文件后,从Spark集群中选择空闲的计算节点,并将含有可执行任务的jar文件发送给空闲的计算节点;计算节点解析jar文件,获取可执行任务,并执行可执行任务的逻辑。
但是会存在特殊情况,即不存在空闲的计算节点,但可执行任务是必须要执行的,因此需要可执行任务等待被执行,即等待空闲的计算节点。显然,在任务处理过程中,需要Yarn调度器调度空闲的计算节点,由空闲的计算节点处理可执行任务,调度过程需要一定的调度时间;且在没有空闲的计算节点时,还要求可执行任务等待被处理,增加了任务处理的时间。
有鉴于此,针对上述问题,本申请实施例提供了一种任务处理的方法、装置及存储介质。
在该方法中,驱动节点预启动,检测可执行任务的消息队列,当消息队列中有客户端发送的可执行任务后,从消息队列中读取可执行任务作为目标任务,并由驱动节点执行目标任务的逻辑,驱动节点是Yarn调度器根据客户端发送的虚拟任务请求,预先从Spark集群中选择的。
因此,当客户端发送可执行任务时,驱动节点读取可执行任务并作为目标任务,并直接执行目标任务,跳过Yarn调度器的调度过程,降低不存在空闲的驱动节点情况的概率。本申请通过节省Yarn调度器选择驱动节点的时间,来优化时间消耗,降低任务处理的时延。
如图2所示,为本申请实施例提供的一种任务处理的应用场景图。服务器20通过网络与多个安装有客户端的终端设备21进行通信连接,该网络可以是但不限于局域网、城域网或广域网等。终端设备21可以是个人电脑(Personal Computer,PC)、平板电脑、个人数字助理(Personal Digital Assistant,PDA)、笔记本和手机等终端设备,也可以是具有移动终端设备的计算机,包括各种便携式、袖珍式、手持式、计算机内置的或者车载的移动装置,它们能够向用户提供语音、数据或语音和数据连通性的设备,以及与无线接入网交换语音、数据或语音和数据。服务器20可以是任何能够提供互联网服务,用于管理存储数据的后台运行设备。
在本应用场景中,终端设备21用于安装和运行客户端,终端设备21的客户端用于接收用户触发的可执行任务指令,确定可执行任务,并将可执行任务发送给服务器20,由服务器20执行接收到的可执行任务的逻辑,并向终端设备21的客户端反馈可执行任务对应的执行结果。
在本申请中,终端设备21的客户端接收到虚拟任务指令,并将虚拟任务指令发送给服务器20,服务器20预先在Spark集群中选择用于执行目标任务的计算节点,并由预先选择的计算节点实时检测是否有可执行任务到达,在确定有可执行任务到达时,将可执行任务作为目标任务,并由计算节点执行目标任务,并向终端设备21的客户端反馈目标任务的执行结果。
终端设备21的客户端确定满足预设条件时,主动向服务器20发送虚拟任务请求,使服务器20预先在Spark集群中选择用于执行目标任务的计算节点,并由预先选择的计算节点实时监测是否有目标任务到达,在确定有目标任务到达时,计算节点执行目标任务,并返回任务执行结果给终端设备21的客户端。
本应用场景主要应用于客户端的数据平台,数据平台使用Spark分布式计算框架,集成了Spark集群及其使用接口。在数据平台上接收用户触发的任务,并借助Spark集群完成任务处理,广泛应用于数据分析、训练机器学习模型、用户信用度评分、异常行为检测、发言屏蔽等领域。
如用户异常行为检测:每个用户每天都可能有大量的行为,每个行为对应一个目标任务,比如登录时间、登录地点、购买道具、赠送道具、添加好友、更改用户资料等。根据这些行为数据,检测用户账号是否被盗、用户是否使用外挂等。由于用户量大、行为数目多,一台服务器难以快速完成分析,因此需要借助多台服务器协同分析以加快分析速度,多台服务器构成Spark集群。而Spark集群如何分工操作以完成用户异常行为检测,需要使用Spark分布式计算框架来管理。
如用户发言屏蔽,发言屏蔽是屏蔽敏感词和辱骂词等:用户在游戏中可以发言沟通等,但其中涉及敏感词、不文明用语等不能发布。但哪些语句应该被屏蔽,需要经过机器学习训练。因此收集了用户的大量发言,以及人工标注是否应该屏蔽结果,进行机器学习训练。由于数据量大,单台机器训练速度慢,采用多台机器联合训练能加速,多台机器构成Spark集群,提供了机器学习框架。
在本申请中,客户端向服务器中的Yarn调度器发送虚拟任务请求,Yarn调度器根据虚拟任务请求预先在Spark集群中选择空闲的计算节点,并将选择的计算节点作为驱动节点,驱动节点预启动,实时检测消息队列是否有客户端发送的可执行任务,当消息队列中有客户端发送的可执行任务时,从消息队列中读取可执行任务并作为目标任务,执行目标任务的逻辑,并将目标任务的执行结果发送到消息队列中,以使客户端从消息队列中获取目标任务的执行结果。通过本申请提供的任务处理的方式,在有目标任务来临时,直接通过驱动节点执行目标任务的逻辑,减少了Yarn调度器的调度时间,通过节省Yarn调度器的调度时间,来优化时间消耗,降低任务处理的时延。
基于图2论述的应用场景,下面对本申请实施例提供的任务处理的方法进行介绍。
如图3所示,为本申请实施例提供的一种任务处理的系统架构图,该系统中包括客户端30和服务器31,其中服务器31中包括有Yarn调度器310,Spark集群311,消息队列312。
在本申请提供的任务处理的实施例中,为了降低任务处理的时延,在目标任务到达时,直接通过驱动节点执行目标任务的逻辑;而不是在目标任务达到时,由Yarn调度器开始选择用于执行目标任务的计算节点,在选择用于执行目标任务的计算节点后,才由选择的计算节点执行目标任务的逻辑。本申请通过节省Yarn调度器的调度时间,来优化时间消耗,降低任务处理时延。
本申请通过客户端发送虚拟任务请求,预启动Yarn调度器,以使Yarn调度器预先在Spark集群中选择空闲的计算节点,并将选择的计算节点作为用于执行目标任务的驱动节点,驱动节点预启动检测消息队列中是否有客户端发送的可执行任务;即将任务启动和Yarn调度器选择计算节点的时间前移;然后客户端将可执行任务发送到消息队列,由预先选择的驱动节点在检测到消息队列中有可执行任务后,从消息队列中读取可执行任务作为目标任务,并直接执行目标任务的逻辑,完成目标任务的处理过程等实现方式,节省Yarn调度器的调度时间,降低任务处理时延。
因此,本申请主要包括两个部分:
一、客户端提交虚拟任务给Yarn调度器,由Yarn调度器预先在Spark集群中选择空闲的计算节点,将选择的计算节点作为驱动节点;
二、客户端将可执行任务发送到消息队列中,以使驱动节点读取可执行任务,反馈可执行任务的执行结果。
并通过如下实施例对本申请进行介绍。
实施例一:客户端提交虚拟任务给Yarn调度器,由Yarn调度器预先在Spark集群中选择计算节点。
如图4所示,本申请提供的一种发送虚拟任务请求,获取驱动节点的示意图,包括如下步骤:
步骤400,客户端向Yarn调度器发送虚拟任务请求。
客户端在向Yarn调度器发送虚拟任务请求时,可以是在接收到发送虚拟任务请求的指令后,向Yarn调度器发送虚拟任务请求;也可以是客户端确定满足预设条件后,自动向Yarn调度器发送虚拟任务请求,其中,预设条件可以为用于检测消息队列的驱动节点的数量小于预设数量。
步骤401,Yarn调度器接收到客户端发送的虚拟任务请求后,为虚拟任务分配执行虚拟任务的驱动节点,并将虚拟任务发送给驱动节点。
在本申请中,Yarn调度器向驱动节点发送虚拟任务,为Yarn调度器向驱动节点发送启动指示,以指示驱动节点执行预启动。
Yarn调度器接收到客户端发送的虚拟任务请求后,需要为虚拟任务分配资源,以执行虚拟任务的逻辑。此时Yarn调度器从Spark集群中选择空闲的计算节点,作为驱动节点,以执行虚拟任务,此时驱动节点接收到Yarn调度器发送的请求后执行预启动。由于虚拟任务没有实际任务代码,因此驱动节点等待可执行任务,当有可执行任务到达时,驱动节点直接执行可执行的目标任务。
在本申请中,客户端一次可以向Yarn调度器发送多个虚拟任务请求,因此Yarn调度器需要在Spark集群中选择多个空闲的计算节点,以备后续使用。
在选择了驱动节点后,驱动节点等待可执行任务时,主要是检测和等待可执行任务的消息队列中是否有客户端发送的可执行任务。
实施例二:发送可执行任务,由驱动节点执行可执行任务的逻辑。
如图5所示,本申请提供的一种发送可执行任务的示意图;包括如下步骤:
步骤500,客户端将可执行任务发送到消息队列中。
由于通过消息队列将可执行任务传输给驱动节点,因此在将可执行任务发送到消息队列中之前,需要对可执行任务进行序列化处理。
序列化后的可执行任务采用json字符串的形式描述,如下为本申请实施例提供的一种可执行任务序列化后的样例:
需要说明的是,本申请中可执行任务类型包括但不限于:
Spark SQL、已被编译的函数。
步骤501,驱动节点实时检测可执行任务的消息队列,当检测消息队列中有可执行任务时,从消息队列中获取可执行任务作为目标任务,并执行目标任务的逻辑。
由于消息队列中的可执行任务采用json字符串的形式描述,因此当驱动节点从消息队列中获取可执行任务后,解析可执行任务,根据json描述执行任务的逻辑。
在驱动节点执行目标任务的逻辑时,驱动节点根据目标任务的数据量确定是否需要其他执行节点配合执行,以加快任务处理速度。
因此在驱动节点获取目标任务后,分析目标任务,获取目标任务的数据量,当检测到目标任务的数据量大于预设的数据量时,驱动节点向Yarn调度器发送资源请求,请求分配其他执行节点。Yarn调度器从Spark集群中选择空闲的计算节点,将计算节点作为执行节点返回给驱动节点。
驱动节点将目标任务分发给Yarn调度器返回的执行节点,由驱动节点和执行节点共同执行目标任务的逻辑,采用并行执行的方式,加快任务处理速度。
在本申请中,当驱动节点执行完目标任务后,将目标任务对应的执行结果反馈给客户端。如图6所示,为本申请实施例提供的一种驱动节点反馈执行结果的示意图;包括如下步骤:
步骤600,驱动节点将目标任务的执行结果发送到消息队列中。
其中,任务执行结果包括但不限于:
任务处理成功、任务处理失败、任务异常。
步骤601,客户端实时检测消息队列,当检测消息队列中执行结果时,从消息队列中获取执行结果。
在本申请中,客户端与驱动节点通过消息队列进行可执行任务及执行结果的传输时,通过UUID(Universally Unique Identifier,通用唯一识别码)获取可执行任务,及可执行任务对应的执行结果。
具体的,当客户端有可执行任务来临时,生成一个UUID,并将UUID加入到消息队列中的UUID列表内,继而将可执行任务加入到以UUID作为索引的容器中。驱动节点根据UUID获取可执行任务,并执行可执行任务的逻辑,确定执行结果,将执行结果反馈到消息队列中以可执行任务对应的UUID作为索引的容器中,客户端根据UUID读取执行结果。发送可执行任务和读取执行结果使用相同的UUID,防止多个客户端需要任务处理时造成的混乱。
如图7所示,为本申请实施例提供的一种任务处理的整体流程示意图。从图7中可知,客户端先向Yarn调度器发送虚拟任务请求,预启动Yarn调度器;Yarn调度器将虚拟任务请求发送给Spark集群,选择空闲的计算节点作为驱动节点;然后客户端将可执行任务发送给消息队列,由驱动节点读取消息队列中的可执行任务,作为目标任务,并执行目标任务的逻辑;驱动节点将目标任务的执行结果发送给消息队列,客户端从消息队列中获取执行结果。而现有先关技术方案中是直接向Yarn调度器发送目标任务,接收到目标任务后,Yarn调度器选择空闲的计算节点作为驱动节点,由驱动节点执行目标任务的逻辑。
如图8所示,为本申请实施例提供的技术方案与现有相关技术方案进行任务处理时,从时间上进行对比的效果示意图。从图8中可知本申请中任务处理的时间比现有相关技术方案中任务处理的时间短,因此本申请实施例提供的技术方案降低了任务处理的时延。
基于同一发明构思,本申请实施例提供了一种任务处理的方法,如图9所示,为本申请实施例提供的一种任务处理的方法流程图,包括如下步骤:
步骤900,驱动节点根据Yarn调度器的启动指示执行预启动,其中,驱动节点是Yarn调度器根据客户端发送的虚拟任务请求从Spark集群中选择的;
步骤901,驱动节点从可执行任务的消息队列中获取目标任务,并执行获取的目标任务,其中消息队列中的可执行任务是客户端发送的;
步骤902,驱动节点将目标任务的执行结果发送到消息队列中,以使客户端从消息队列中获取目标任务的执行结果。
在一种可能的实现方式中,驱动节点获取的目标任务,包括:
驱动节点对目标任务进行分析;
当目标任务的数据类型为分布式数据集RDD数据类型,驱动节点将目标任务分发给执行节点,使驱动节点和执行节点共同执行目标任务;
其中,执行节点是驱动节点确定目标任务的数据类型为RDD数据类型后,向Yarn调度器发送资源请求获得的。
在一种可能的实现方式中,驱动节点从可执行任务的消息队列中获取目标任务,包括:
驱动节点实时检测可执行任务的消息队列;
当可执行任务的消息队列中有可执行任务时,驱动节点获取可执行任务作为目标任务。
基于同一发明构思,本申请实施例还提供了另一种任务处理的方法,如图10所示,为本申请实施例提供的一种任务处理的方法流程图,包括如下步骤:
步骤1000,客户端将可执行任务作为目标任务发送到消息队列中,以使驱动节点从消息队列中获取目标任务;
步骤1001,客户端检测消息队列,接收驱动节点反馈的目标任务的执行结果。
在一种可能的实现方式中,客户端将可执行任务作为目标任务发送到消息队列中之前,客户端将可执行任务进行序列化处理。
在一种可能的实现方式中,客户端将可执行任务作为目标任务发送到消息队列中之前,客户端向Yarn调度器发送虚拟任务请求,以使Yarn调度器从Spark集群中选择用于检测消息队列的驱动节点。
基于同一发明构思,本申请实施例还提供了一种任务处理的装置1100,如图11所示,该装置1100包括:预启动单元1101、执行单元1102及第一发送单元1103;其中:
预启动单元1101,用于根据Yarn调度器的启动指示执行预启动,其中,驱动节点是Yarn调度器根据客户端发送的虚拟任务请求从Spark集群中选择的;
执行单元1102,用于从可执行任务的消息队列中获取目标任务,并执行获取的目标任务,其中消息队列中的可执行任务是客户端发送的;
第一发送单元1103,用于将目标任务的执行结果发送到消息队列中,以使客户端从消息队列中获取目标任务的执行结果。
在一种可能的实现方式中,执行单元1102还用于:实时检测可执行任务的消息队列;当可执行任务的消息队列中有可执行任务时,获取可执行任务作为目标任务。
在一种可能的实现方式中,执行单元1102还用于:对目标任务进行分析;当目标任务的数据类型为分布式数据集RDD数据类型,将目标任务分发给执行节点,使驱动节点和执行节点共同执行目标任务;
其中,执行节点是在确定目标任务的数据类型为RDD数据类型后,向Yarn调度器发送资源请求获得的。
基于同一发明构思,本申请实施例还提供了一种任务处理的装置1200,如图12所示,该装置1200包括:第二发送单元1201及接收单元1202,其中:
第二发送单元1201,用于将可执行任务作为目标任务发送到消息队列中,以使驱动节点从消息队列中获取目标任务;
接收单元1202,用于检测消息队列,接收驱动节点反馈的目标任务的执行结果。
在一种可能的实现方式中,第二发送单元1201还用于:将可执行任务进行序列化处理。
在一种可能的实现方式中,第二发送单元1201还用于:向Yarn调度器发送虚拟任务请求,以使Yarn调度器从Spark集群中选择用于检测消息队列的驱动节点。
为了描述的方便,以上各部分按照功能划分为各单元(或模块)分别描述。当然,在实施本申请时可以把各单元(或模块)的功能在同一个或多个软件或硬件中实现。
在介绍了本申请示例性实施方式的任务处理的方法及装置后,接下来介绍本申请的另一示例性实施方式的任务处理的计算设备。
所属技术领域的技术人员能够理解,本申请的各个方面可以实现为系统、方法或程序产品。因此,本申请的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
在一种可能的实现方式中,本申请实施例提供的任务处理计算设备可以至少包括处理器和存储器。其中,存储器存储有程序代码,当程序代码被处理器执行时,使得处理器执行本申请中各种示例性实施方式的任务处理方法中的任一步骤。
下面参照图13来描述根据本申请的这种实施方式的任务处理计算设备1300。如图13的任务处理计算设备1300仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图13所示,任务处理计算设备1300的组件可以包括但不限于:上述至少一个处理器1301、上述至少一个存储器1302、连接不同系统组件(包括存储器1302和处理器1301)的总线1303。
总线1303表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、外围总线、处理器或者使用多种总线结构中的任意总线结构的局域总线。
存储器1302可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM)13021和/或高速缓存存储器13022,还可以进一步包括只读存储器(ROM)13023。
存储器1302还可以包括具有一组(至少一个)程序模块13024的程序/实用工具13025,这样的程序模块13024包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
任务处理计算设备1300也可以与一个或多个外部设备1304(例如键盘、指向设备等)通信,还可与一个或者多个使得用户能与任务处理计算设备1300交互的设备通信,和/或与使得该任务处理计算设备1300能与一个或多个其它计算装置进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口1305进行。并且,任务处理计算设备1300还可以通过网络适配器1306与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图13所示,网络适配器1306通过总线1303与用于任务处理计算设备1300的其它模块通信。应当理解,尽管图13中未示出,可以结合任务处理计算设备1300使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
在一些可能的实施方式中,本申请提供的任务处理方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在计算机设备上运行时,程序代码用于使计算机设备执行本说明书上述描述的根据本申请各种示例性实施方式的任务处理方法中的步骤。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
本申请的实施方式的任务处理生成的程序产品可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在计算装置上运行。然而,本申请的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被命令执行系统、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由命令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本申请操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算装置上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算装置上部分在远程计算装置上执行、或者完全在远程计算装置或服务器上执行。在涉及远程计算装置的情形中,远程计算装置可以通过任意种类的网络包括局域网(LAN)或广域网(WAN)连接到用户计算装置,或者,可以连接到外部计算装置(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了装置的若干单元或子单元,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。
此外,尽管在附图中以特定顺序描述了本申请方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序命令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序命令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的命令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序命令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的命令产生包括命令装置的制造品,该命令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序命令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的命令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
- 上一篇:石墨接头机器人自动装卡簧、装栓机
- 下一篇:负载均衡方法及相关设备