CN113064744B 任务处理方法、装置、计算机可读介质及电子设备 (腾讯科技(深圳)有限公司)_第1页
CN113064744B 任务处理方法、装置、计算机可读介质及电子设备 (腾讯科技(深圳)有限公司)_第2页
CN113064744B 任务处理方法、装置、计算机可读介质及电子设备 (腾讯科技(深圳)有限公司)_第3页
CN113064744B 任务处理方法、装置、计算机可读介质及电子设备 (腾讯科技(深圳)有限公司)_第4页
CN113064744B 任务处理方法、装置、计算机可读介质及电子设备 (腾讯科技(深圳)有限公司)_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

(12)发明专利地址518057广东省深圳市南山区高新区限公司44232(56)对比文件权利要求书3页说明书17页附图7页(57)摘要本申请的实施例提供了一种应用于多节点务处理节点未处理完成的第一任务的标识信息,所述第一任务的标识信息是由第二任务处理节点在检测到所述第一任务处理节点宕机后获取由该任务处理节点处理的任务能够及时恢复执行,提高了系统的容灾能力,也大大提高了系统检测多个任务处理节点的工作状态检测多个任务处理节点的工作状态从消息队列中获取待消费任务的标识信息,消息队列中包含有发生宕机的第一任务处理节点未处理完成的第一任务的标识信息,第一任务的标识信息是由第二任务处理节点在检测到第[一任务处理节点宕机后获取并投放至消息队列根据获取到的待消费任务的标识信息,处理待消费任务21.一种应用于多节点系统的任务处理方法,其特征在于,所述多节点系统包括多个任务处理节点,所述多节点系统中的各个任务处理节点上部署有网络控制器,所述网络控制器包括任务编排管理框架和远程调用客户端,所述方法由所述多个任务处理节点中的任意一个任务处理节点执行,所述方法包括:检测所述多个任务处理节点的工作状态;从消息队列中获取待消费任务的标识信息,所述消息队列中包含有发生宕机的第一任务处理节点未处理完成的第一任务的标识信息,所述第一任务的标识信息是由第二任务处理节点在检测到所述第一任务处理节点宕机后获取并投放至所述消息队列中的;通过如下方式处理所述待消费任务:通过如下方式依次执行所述待消费任务中包含的网络指令:依次将所述待消费任务中的网络指令发送至所述远程调用客户端,以使所述远程调用客户端依次向与所述网络指令对应的网络设备发送所述网络指令;若对所述待消费任务中包含的网络指令执行失败,则对所述待消费任务中已执行过的网络指令进行回滚处理,以重新处理所述待消费任务。2.根据权利要求1所述的应用于多节点系统的任务处理方法,其特征在于,所述方法还若检测到所述第一任务处理节点发生宕机,则与所述多个任务处理节点中的其它任务处理节点通过竞争的方式获取所述第一任务处理节点未处理完成的第一任务的标识信息;其中,所述第二任务处理节点包括在竞争中取得成功的任务处理节点。3.根据权利要求1所述的应用于多节点系统的任务处理方法,其特征在于,所述方法由所述多个任务处理节点中的指定任务处理节点执行,所述方法还包括:若所述指定任务处理节点是所述多节点系统中持续正常工作时间最长的任务处理节点,则获取所述多节点系统中未处理完成的第二任务的标识信息;将所述第二任务的标识信息投放至所述消息队列中。4.根据权利要求3所述的应用于多节点系统的任务处理方法,其特征在于,所述若所述指定任务处理节点是所述多节点系统中持续正常工作时间最长的任务处理节点,则获取所述多节点系统中未处理完成的第二任务的标识信息,包括:若所述指定任务处理节点是所述多节点系统中持续正常工作时间最长的任务处理节点,则在等待预定时间之后获取所述多节点系统中未处理完成的第二任务的标识信息。5.根据权利要求1所述的应用于多节点系统的任务处理方法,其特征在于,在检测所述多个任务处理节点的工作状态之前,所述方法还包括:向注册中心发送注册请求,并在注册成功后建立与所述注册中心之间的心跳连接;所述检测所述多个任务处理节点的工作状态,包括:对所述注册中心中维护的心跳连接的状态进行检测,以检测所述多个任务处理节点的工作状态。36.根据权利要求1所述的应用于多节点系统的任务处理方法,其特征在于,在通过如下方式处理所述待消费任务之前,所述根据获取到的待消费任务的标识信息,处理所述待消从所述多节点系统对应的缓存中加载所述待消费任务的标识信息所对应的任务实体二进制数据;对所述任务实体二进制数据进行反序列化处理,得到所述待消费任务。7.根据权利要求6所述的应用于多节点系统的任务处理方法,其特征在于,所述任务实体二进制数据包括与网络指令对应的原始二进制数据;在每个网络指令执行成功之后,将所述每个网络指令进行序列化处理,并通过序列化处理后得到的二进制数据替换所述每个网络指令在所述缓存中对应的原始二进制数据。8.根据权利要求6所述的应用于多节点系统的任务处理方法,其特征在于,所述方法还从所述多节点系统对应的缓存中加载所述待消费任务的标识信息所对应的任务实体二进制数据之后,将所述缓存中的任务实体二进制数据持久化到磁盘中。9.根据权利要求7所述的应用于多节点系统的任务处理方法,其特征在于,所述网络控制器还包括任务投放客户端,所述消息队列中还包含有第三任务的标识信息,所述第三任务的标识信息是由所述任务投放客户端投放至所述消息队列中的。10.一种应用于多节点系统的任务处理装置,其特征在于,所述多节点系统包括多个任务处理节点,所述多节点系统中的各个任务处理节点上部署有网络控制器,所述网络控制器包括任务编排管理框架和远程调用客户端,所述装置包括:检测单元,用于检测所述多个任务处理节点的工作状态;获取单元,用于从消息队列中获取待消费任务的标识信息,所述消息队列中包含有发生宕机的第一任务处理节点未处理完成的第一任务的标识信息,所述第一任务的标识信息是由第二任务处理节点在检测到所述第一任务处理节点宕机后获取并投放至所述消息队列中的;处理单元,用于根据获取到的待消费任务的标识信息,处理所述待消费任务,所述待消费任务包括至少一个网络指令,所述任务编排管理框架用于依次执行所述待消费任务中包含的网络指令;所述处理单元配置为:通过如下方式依次执行所述待消费任务中包含的网络指令:依次将所述待消费任务中的网络指令发送至所述远程调用客户端,以使所述远程调用客户端依次向与所述网络指令对应的网络设备发送所述网络指令;若对所述待消费任务中包含的网络指令执行失败,则对所述待消费任务中已执行过的网络指令进行回滚处理,以重新处理所述待消费任务。11.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至9中任一项所述的应用于多节点系统的任务处理方法。一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理4器执行时,使得所述一个或多个处理器实现如权利要求1至9中任一项所述的应用于多节点系统的任务处理方法。5任务处理方法、装置、计算机可读介质及电子设备技术领域[0001]本申请涉任务处理技术领域,具体而言,涉及一种应用于多节点系统的任务处理背景技术[0002]在任务处理系统中,通常是由任务分发器向任务处理节点分配任务,由任务处理节点对分配的任务进行处理。然而,在相关技术中,一旦任务处理节点出现故障或发生宕机,那么该任务处理节点就会无法处理向其分配的任务,导致该任务无法得到处理,从而使得整个任务处理系统的可用性较低。发明内容[0003]本申请的实施例提供了一种应用于多节点系统的任务处理方法、装置、计算机可读介质及电子设备,进而至少在一定程度上可以避免因任务处理节点发生宕机而导致分配的任务不能得到处理,并能够提高系统的容灾能力和可用性。[0004]本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。[0005]根据本申请实施例的一个方面,提供了一种应用于多节点系统的任务处理方法,所述多节点系统包括多个任务处理节点,所述方法包括:检测所述多个任务处理节点的工作状态;从消息队列中获取待消费任务的标识信息,所述消息队列中包含有发生宕机的第一任务处理节点未处理完成的第一任务的标识信息,所述第一任务的标识信息是由第二任务处理节点在检测到所述第一任务处理节点宕机后获取并投放至所述消息队列中的;根据获取到的待消费任务的标识信息,处理所述待消费任务。[0006]根据本申请实施例的一个方面,提供了一种应用于多节点系统的任务处理装置,所述多节点系统包括多个任务处理节点,所述装置包括:检测单元,用于检测所述多个任务处理节点的工作状态;获取单元,用于从消息队列中获取待消费任务的标识信息,所述消息队列中包含有发生宕机的第一任务处理节点未处理完成的第一任务的标识信息,所述第一任务的标识信息是由第二任务处理节点在检测到所述第一任务处理节点宕机后获取并投放至所述消息队列中的;处理单元,用于根据获取到的待消费任务的标识信息,处理所述待消费任务。[0007]在本申请的一些实施例中,基于前述方案,所述获取单元还用于:若检测到所述第一任务处理节点发生宕机,则与所述多个任务处理节点中的其它任务处理节点通过竞争的方式获取所述第一任务处理节点未处理完成的第一任务的标识信息;其中,所述第二任务处理节点包括在竞争中取得成功的任务处理节点。[0008]在本申请的一些实施例中,基于前述方案,所述应用于多节点系统的任务处理装置位于所述多个任务处理节点中的指定任务处理节点内,所述获取单元还用于:若所述指定任务处理节点是所述多节点系统中持续正常工作时间最长的任务处理节点,则获取所述6多节点系统中未处理完成的第二任务的标识信息;将所述第二任务的标识信息投放至所述消息队列中。[0009]在本申请的一些实施例中,基于前述方案,所述获取单元配置为:若所述指定任务处理节点是所述多节点系统中持续正常工作时间最长的任务处理节点,则在等待预定时间之后获取所述多节点系统中未处理完成的第二任务的标识信息。[0010]在本申请的一些实施例中,基于前述方案,在检测所述多个任务处理节点的工作状态之前,所述检测单元还用于:向注册中心发送注册请求,并在注册成功后建立与所述注册中心之间的心跳连接;所述检测单元配置为:对所述注册中心中维护的心跳连接的状态进行检测,以检测所述多个任务处理节点的工作状态。[0011]在本申请的一些实施例中,基于前述方案,所述处理单元配置为:从所述多节点系统对应的缓存中加载所述待消费任务的标识信息所对应的任务实体二进制数据;对所述任务实体二进制数据进行反序列化处理,得到所述待消费任务;处理所述待消费任务。[0012]在本申请的一些实施例中,基于前述方案,所述待消费任务包括至少一个网络指令,所述任务实体二进制数据包括与网络指令对应的原始二进制数据;所述处理单元配置为:依次执行所述待消费任务中包含的网络指令,其中,在每个网络指令执行成功之后,将所述每个网络指令进行序列化处理,并通过序列化处理后得到的二进制数据替换所述每个网络指令在所述缓存中对应的原始二进制数据。[0013]在本申请的一些实施例中,基于前述方案,所述处理单元还配置为:若对所述待消费任务中包含的网络指令执行失败,则对所述待消费任务中已执行过的网络指令进行回滚处理,以重新处理所述待消费任务。[0014]在本申请的一些实施例中,基于前述方案,所述处理单元还配置为:从所述多节点系统对应的缓存中加载所述待消费任务的标识信息所对应的任务实体二进制数据之后,将所述缓存中的任务实体二进制数据持久化到磁盘中。[0015]在本申请的一些实施例中,基于前述方案,所述多节点系统中的各个任务处理节点上部署有网络控制器,所述网络控制器包括任务编排管理框架,所述任务编排管理框架用于依次执行所述待消费任务中包含的网络指令。[0016]在本申请的一些实施例中,基于前述方案,所述网络控制器还包括远程调用客户端,所述处理单元配置为:依次将所述待消费任务中的网络指令发送至所述远程调用客户端,以使所述远程调用客户端依次向与所述网络指令对应的网络设备发送所述网络指令。[0017]在本申请的一些实施例中,基于前述方案,所述网络控制器还包括任务投放客户端,所述消息队列中还包含有第三任务的标识信息,所述第三任务的标识信息是由所述任务投放客户端投放至所述消息队列中的。[0018]根据本申请实施例的一个方面,提供了一种计算机可读介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述实施例中所述的应用于多节点系统的任务处理方法。[0019]根据本申请实施例的一个方面,提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上述实施例中所述的应用于多节点系统的任务处理方法。7[0020]在本申请的一些实施例所提供的技术方案中,当一个任务处理节点发生宕机时,其他任务处理节点能够将该任务处理节点未处理完成的任务的标识信息重新投递至消息队列中,其他任务处理节点便能够从消息队列中获取待消费任务的标识信息,从而能够对该任务处理节点未处理完成的任务进行处理。因而,本申请实施例允许多节点系统中的任务处理节点发生宕机,即使一个任务处理节点发生宕机时,由其处理的任务也不会丢失,该任务处理节点未完成的任务能够得到及时处理,提高了系统的容灾能力,也大大提高了系统的可用性;此外,任务处理节点是根据获取到的待消费任务的标识信息处理待消费任务,因此,实现了任务分配与任务处理的解耦,消息队列还能对任务进行削峰,从而进一步提高了系统的可靠性,也降低了系统的复杂度。[0021]应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。附图说明[0022]此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据[0023]图1示出了可以应用本申请实施例的技术方案的示例性系统架构的示意图;[0024]图2示出了根据本申请的一个实施例的应用于多节点系统的任务处理方法的流程[0025]图3示出了根据本申请的一个实施例的节点上网络控制器与任务编排管理框架的组织形式示意图;[0026]图4示出了根据本申请的一个实施例的图2中步骤220之前步骤以及步骤220的细节的流程图;[0027]图5示出了根据本申请的一个实施例的某个节点发生宕机时多节点系统的处理流[0028]图6示出了根据本申请的一个实施例的根据获取到的待消费任务的标识信息处理待消费任务的流程图;[0029]图7示出了根据本申请的一个实施例的节点全部宕机时多节点系统的处理流程示[0030]图8示出了根据本申请的一个实施例的基于任务编排管理框架的任务执行流程示[0031]图9示出了根据本申请的一个实施例的应用于多节点系统的任务处理装置的框[0032]图10示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。具体实施方式[0033]现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本申请将更加8全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。[0034]此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方[0035]附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。[0036]附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。[0037]在网络控制领域中,对网络控制器的指令进行编排是网络控制领域的重要任务。本申请的发明人发现,指令编排需要满足以下特性,才能保证网络指令编排能够顺利进行:[0038]首先,由于指令之间存在着相互依赖的关系,因而对于指令编排而言,保障编排的原子性是至关重要的;其次,若编排的指令或任务丢失,会直接影响指令编排的成功率,因而网络控制器还需要有较强的容灾能力,以保证网络控制器在宕机后编排的指令和任务不丢失;再者,当前对于控制器指令编排的开发而言,由于每套网络控制器都有自己的逻辑,因此需要提升整体的开发效率。[0039]然而,传统的网络控制器指令编排过程难以保证一组指令的原子性,往往只能通过后期的配置审查来完成纠错;并且,网络控制器本身也件错误,指令则无法恢复,大大影响了指令编排的效果;此外,目前需要针对每套网络控制器单独开发对应的指令编排策略,导致了整个系统的开发效率低下,开发成本较高。[0040]在相关技术中,可以使用一些开源的任务管理框架来实现任务的分发和执行,这类任务管理框架比如可以包括AirFlow。这些任务管理框架通过将网络指令嵌入到任务中,实现网络指令的编排。[0041]然而,采用任务管理框架依然存在以下缺陷:[0042]第一、这些开源任务管理框架几乎都是独立部署的,无法作为组件嵌入到控制器[0043]第二、这些任务管理框架也往往不具备回滚配置,难以实现一组指令编排的原子性,或者难以便捷的实现一组指令编排的原子性。[0044]第三、现有的开源任务管理框架对容灾能力支持不足,在节点挂机时,容易引起任[0045]为此,本申请首先提供了一种应用于多节点系统的任务处理方法。此处的任务可以是任何能够以程序代码表示并用于处理一定流程的任务,比如可以是实现网络指令编排的任务。任务在程序代码以一定的实体的表示,比如,在Java程序中,任务可以以对象的形式表示。因而,本申请实施例提供的一种应用于多节点系统的任务处理方法可以应用于各种任务处理的场景之中。[0046]本申请实施例提供的一种应用于多节点系统的任务处理方法在用于对网络指令9进行编排的场景时,可以克服以上缺陷,能够实现前述的顺利完成指令编排所需的特性。[0047]图1示出了可以应用本申请实施例的技术方案的示例性系统架构的示意图。下面以图1所示系统架构用于网络指令编排来对其进行介绍。[0048]如图1所示,系统架构100可以包括网络设备(如图1中所示交换机101、路由器102和网关设备103中的一种或多种,当然也可以其他各类网络设备等等)、网络104和多节点系统110。多节点系统110包括第一服务器111、第二服务器112以及第三服务器113,多节点系统110包括的每一个服务器均为该多节点系统110中的一个任务处理节点。网络104用以在终端设备和多节点系统110中的任务处理节点之间提供通信链路的介质。网络104可以包括[0049]应该理解,图1中的终端设备、网络和多节点系统中任务处理节点的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备和网络,多节点系统中可以包括任意数目的任务处理节点,每一任务处理节点甚至可以由一个集群构成。比如第一服务器111可以是多个服务器组成的服务器集群等。[0050]多节点系统110中的任务处理节点通过处理任务来编排该任务包含的一组网络指令,并将网络指令发送至与该网络指令对应的网络设备之中。当本申请实施例提供的应用于多节点系统的任务处理方法在用于对网络指令进行编排的场景时,若一个任务处理节点在处理任务过程中发生宕机事件,那么,通过本申请实施例提供的应用于多节点系统的任务处理方法,各任务处理节点能够从消息队列中获取待消费任务的标识信息,而消息队列中包含了发生宕机的任务处理节点未处理完成的任务的标识信息,因而,未发生宕机的任务处理节点可以获取到发生宕机的任务处理节点未处理完成的任务的标识信息,从而可以由其他未发生宕机事件的任务处理节点处理未被该任务处理节点处理完成的任务,从而保证所分配的任务都能得到有效处理。[0051]需要说明的是,虽然本申请实施例用于对网络指令进行编排的场景,但实际上,其可以应用于任何任务处理流程中,比如可以用于工作流的控制过程中;虽然本申请实施例中任务处理节点为服务器,但在本申请的其它实施例中,任务处理节点可以是任何类型的终端设备,任务处理节点不仅可以为物理节点,还可以为虚拟化的节点,此外,任务处理节点还可以为一个服务器的集群;并且,虽然本申请实施例中多节点系统仅包括有任务处理节点,但是多节点系统还可以包括数据库、消息队列等其他各种类型的实体,本申请实施例对此不作任何限定,本申请的保护范围也不应因此而受到任何限制。[0052]并且,易于理解,本申请实施例所提供的应用于多节点系统的任务处理方法一般由服务器执行,相应地,应用于多节点系统的任务处理装置一般设置于服务器中。但是,在本申请的其它实施例中,终端设备也可以与服务器具有相似的功能,从而执行本申请实施例所提供的应用于多节点系统的任务处理的方案。(cloudcomputing)或云存储(cloudstorage)领域中,也可以应用于区块链(BlockChain)[0054]云计算是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。(InfrastructureasaService,基础设施即服务)平台,在资源池中部署多种类型的虚拟资源,供外部客户选择使用。云计算资源池中主[0056]按照逻辑功能划分,在IaaS(InfrastructureasaService,基础设施即服务)层上可以部署PaaS(PlatformasaService,平台即服务)层,PaaS层之上再部署SaaS[0057]云存储是在云计算概念上延伸和发展出来的一个新的概念,分布式云存储系统(以下简称存储系统)是指通过集群应用、网格技术以及分布存储文件系统等功能,将网络中大量各种不同类型的存储设备(存储设备也称之为存储节点)通过应用软件或应用接口集合起来协同工作,共同对外提供数据存储和业务访问功能的一个存储系统。[0058]目前,存储系统的存储方法为:创建逻辑卷,在创建逻辑卷时,就为每个逻辑卷分配物理存储空间,该物理存储空间可能是某个存储设备或者某几个存储设备的磁盘组成。客户端在某一逻辑卷上存储数据,也就是将数据存储在文件系统上,文件系统将数据分成许多部分,每一部分是一个对象,对象不仅包含数据而且还包含数据标识(ID,IDentity)等额外的信息,文件系统将每个对象分别写入该逻辑卷的物理存储空间,且文件系统会记录每个对象的存储位置信息,从而当客户端请求访问数据时,文件系统能够根据每个对象的存储位置信息让客户端对数据进行访问。[0059]存储系统为逻辑卷分配物理存储空间的过程,具体为:按照对存储于逻辑卷的对象的容量估量(该估量往往相对于实际要存储的对象的容量有很大余量)和独立冗余磁盘阵列(RAID,RedundantArrayofIndependentDisk)的组别,预先将物理存储空间划分成分条,一个逻辑卷可以理解为一个分条,从而为逻辑卷分配了物理存储空间。[0060]区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。[0061]区块链底层平台可以包括用户管理、基础服务、智能合约以及运营监控等处理模块。其中,用户管理模块负责所有区块链参与者的身份信息管理,包括维护公私钥生成(账户管理)、密钥管理以及用户真实身份和区块链地址对应关系维护(权限管理)等,并且在授权的情况下,监管和审计某些真实身份的交易情况,提供风险控制的规则配置(风控审计);基础服务模块部署在所有区块链节点设备上,用来验证业务请求的有效性,并对有效请求完成共识后记录到存储上,对于一个新的业务请求,基础服务先对接口适配解析和鉴权处理(接口适配),然后通过共识算法将业务信息加密(共识管理),在加密之后完整一致的传输至共享账本上(网络通信),并进行记录存储;智能合约模块负责合约的注册发行以及合约触发和合约执行,开发人员可以通过某种编程语言定义合约逻辑,发布到区块链上(合约11注册),根据合约条款的逻辑,调用密钥或者其它的事件触发执行,完成合约逻辑,同时还提供对合约升级注销的功能;运营监控模块主要负责产品发布过程中的部署、配置的修改、合节点设备健康状态等。[0062]平台产品服务层提供典型应用的基本能力和实现框架,开发人员可以基于这些基本能力,叠加业务的特性,完成业务逻辑的区块链实现。应用服务层提供基于区块链方案的应用服务给业务参与方进行使用。[0063]当本申请实施例应用于对网络指令进行编排的场景时,具体可以应用于边缘计算领域和软件定义网络(SDN,SoftwareDefinedNetwork)的网络架构中,编排的网络指令可用于对边缘网关进行控制。软件定义网络是一种新的开放网络架构,通过控制与转发分离、控制面集中、接口开放可编程,实现全局视角网络资源灵活调度以及新业务快速部署,能简[0064]以下对本申请实施例的技术方案的实现细节进行详细阐述:[0065]图2示出了根据本申请的一个实施例的应用于多节点系统的任务处理方法的流程图,该应用于多节点系统的任务处理方法可以由具有计算和通信功能的设备来执行,比如可以是图1中所示的第一服务器111,该多节点系统包括多个任务处理节点。参照图2所示,该应用于多节点系统的任务处理方法至少包括以下步骤:[0066]在步骤220中,检测多个任务处理节点的工作状态。[0067]在本申请实施例用于网络指令编排的场景时,任务处理节点可以采用图3所示的组织形式,即,节点包括网络控制器,网络控制器又包括北向控制API、任务编排管理框架、RPCClient(RemoteProcedureCallClient,远程过程调用客户端)以及用于生成网络指令的功能模块,用于生成网络指令的功能模块具体包括网络编排与计算模块、网络模型对象管理模块以及全局质量监控流量调度模块,其中,北向控制API是网络控制器北向提供的用户管理应用程序接口,用以提供网络指令编排的入口;各个用于生成网络指令的功能模块能够通过网络模型对象管理、网络编排与计算等操作生成网络配置指令;任务编排管理框架可以用于执行本申请实施例提供的应用于多节点系统的任务处理方法;RPCClient用于将来自任务编排管理框架的网络指令发送至与该网络指令相对应的网络设备。在下文中,若非特别指明,节点和多节点系统中的任务处理节点是等同的。[0068]多节点系统中每一任务处理节点都可以检测其他任务处理节点的工作状态,图2实施例所示步骤可以由多节点系统中的任意一个节点执行。任务处理节点的工作状态可以包括正常状态和宕机状态。[0069]在本申请的一个实施例中,可以以多种方式检测多节点系统中任务处理节点的工[0070]图4示出了根据本申请的一个实施例的图2中步骤220之前步骤以及步骤220的细节的流程图。[0071]请参见图4,具体包括以下步骤:[0072]在步骤210中,向注册中心发送注册请求,并在注册成功后建立与所述注册中心之间的心跳连接。[0073]注册中心用于对多节点系统中每一任务处理节点进行注册,并对每一注册成功的任务处理节点进行心跳检测。任务处理节点通过向注册中心发送注册请求来进行注册,注册请求中可以携带有与任务处理节点相关的信息,比如可以携带任务处理节点的标识。[0074]任务处理节点与注册中心之间建立心跳连接是通过发送心跳包的方式进行的,具体而言,可以是由任务处理节点向注册中心发送心跳包,也可以是由注册中心向任务处理节点发送心跳包,注册中心根据收到或者发出的心跳包的结果完成心跳检测。[0075]在步骤220’中,对注册中心中维护的心跳连接的状态进行检测,以检测所述多个任务处理节点的工作状态。[0076]注册中心中维护的心跳连接的状态可以通过多种数据来表示。[0077]比如,可以在注册中心中维护心跳连接正常的任务处理节点的注册信息或标识信息;当任务处理节点对注册中心进行检测时,会从注册中心中获取到所有与注册中心保持着正常的心跳连接的注册信息或标识信息,并存储到本地;当一个任务处理节点发生宕机时,该任务处理节点在注册中心的心跳停止,注册中心会将该任务处理节点的注册信息或标识信息移除。其他任务处理节点可以根据在本地存储了该任务处理节点的注册信息或标识信息,但在注册中心中发现该任务处理节点的注册信息或标识信息消失而确定该任务处理节点发生宕机。[0078]再比如,还可以在注册中心中维护任务处理节点的标识信息和状态信息,其中,状态信息代表对应的任务处理节点在注册中心的心跳停止或正常,比如,状态信息可以用0或1表示,其中,0可以代表对应的任务处理节点在注册中心的心跳停止,1可以代表对应的任务处理节点在注册中心的心跳正常;当任务处理节点对注册中心中维护的心跳连接的状态进行检测时,会获取到各任务处理节点的标识信息和对应的状态信息,若获取到的状态信息代表心跳停止,那么,可以确定对应的任务处理节点的工作状态为宕机。[0079]由此可见,检测任务处理节点的工作状态和确定任务处理节点是否发生宕机的方式可以是各种各样的,并不限于上述的这些。[0080]请继续参见图2,在步骤230中,从消息队列中获取待消费任务的标识信息,消息队列中包含有发生宕机的第一任务处理节点未处理完成的第一任务的标识信息,第一任务的标识信息是由第二任务处理节点在检测到第一任务处理节点宕机后获取并投放至消息队列中的。[0081]标识信息是可以用于唯一标识一个任务的信息,标识信息通常采用字符串的数据[0083]在本申请的一个实施例中,所述第一任务的标识信息被投放至消息队列中最先被消费的位置。[0084]本申请实施例中,由于第一任务是未被第一任务处理节点处理完成的任务,因而,通过将第一任务的标识信息被投放至消息队列中最先被消费的位置,能够使未被处理完成的任务优先得到处理。[0085]第一任务处理节点和第二任务处理节点都是多节点系统中的节点。第二任务处理节点在检测到第一任务处理节点宕机后,可以获取第一任务处理节点未处理完成的第一任务的标识信息,并将其投放至消息队列中。[0086]在本申请的一个实施例中,所述方法还包括:若检测到第一任务处理节点发生宕机,则与多个任务处理节点中的其它任务处理节点通过竞争的方式获取第一任务处理节点未处理完成的第一任务的标识信息;其中,第二任务处理节点包括在竞争中取得成功的任务处理节点。[0087]具体地,第二任务处理节点可以为在竞争中取得成功的任务处理节点。[0088]各任务处理节点通过竞争的方式获取第一任务的标识信息是指按照一定指标对各任务处理节点进行筛选,得到唯一有权合法获取第一任务的标识信息的任务处理节点的过程。[0089]竞争的方式所采用的竞争规则可以是多种多样的。比如,竞争规则可以为最先获取到第一任务的标识信息的任务处理节点是在竞争中取得成功的任务处理节点,该任务处理节点向其他任务处理节点广播,使其他任务处理节点停止获取第一任务的标识信息;竞争规则还可以为最先获取到第一任务的标识信息的任务处理节点是在竞争中取得成功的任务处理节点,该任务处理节点向其他任务处理节点广播,使其他任务处理节点即使获取到第一任务的标识信息,也无权将其投递至消息队列中;此外,竞争规则还可以为CPU利用率或者内存使用率最低的任务处理节点是在竞争中取得成功的任务处理节点,采用这种竞争规则的好处是保证第一任务的标识信息能够被及时、准确地投放至消息队列中。[0090]在本申请的一个实施例中,第二任务处理节点是多节点系统中预先设置的任务处理节点。[0091]比如,可以在多节点系统中预先设置一个具有性能和配置高、可用性高、设置有备用电源等特性的任务处理节点,由该任务处理节点负责获取其他任务处理节点未处理完成的任务的标识信息。由于该预先设置的任务处理节点自身的可用性非常高,因而若指定由该任务处理节点获取任务的标识信息,同样能够保证整个系统的高可用性。[0092]图5示出了根据本申请的一个实施例的某个节点发生宕机时多节点系统的处理流程示意图。[0093]请参阅图5,当某个节点发生宕机时多节点系统的处理流程可以如下:[0094]1、节点01、节点02以及节点03全部在注册中心中进行注册,并在注册成功之后建立与注册中心的心跳连接。[0095]2、节点01和节点02对注册中心中维护的心跳连接的状态进行检测,当节点03在注册中心中的心跳停止,节点01和节点02会检测到节点03发生宕机事件。[0096]3、节点01和节点02以竞争方式从缓存中获取节点03的任务列表,缓存中存储了各节点的任务列表,任务列表中包含了一个或多个任务标识信息。[0097]4、节点02在竞争中取得成功后,节点02成功获取到节点03的任务列表,并重新将该任务列表中未被节点03处理完成的任务的标识信息推送至消息队列中。[0098]5、由于节点01和节点02未发生宕机,因此,节点01和节点02能够从消息队列中获取待消费任务的标识信息,从而获取待消费任务,其中,当获取到未被节点03处理完成的任务的标识信息时,便可以对该未被节点03处理完成的任务进行处理。[0099]请继续参见图2,在步骤240中,根据获取到的待消费任务的标识信息,处理待消费任务。[0100]获取到待消费任务的标识信息之后,可以对其进行消费,进而实现对待消费任务的处理。[0101]多节点系统中任何未发生宕机的任务处理节点都能够从消息队列中获取待消费任务的标识信息。[0102]在当前任务处理节点获取到第一任务的标识信息的情况下,可以由当前任务处理节点实现对第一任务的处理;在其他任务处理节点获取到第一任务的标识信息的情况下,也可以由其他任务处理节点实现对该第一任务的处理。[0103]因而,在第一任务的标识信息被投放至消息队列中之后,无论该第一任务的标识信息是被当前任务节点获取到,还是被其他任务处理节点获取到,均能够实现对第一任务的恢复处理,从而大大提高了系统的可用性。[0104]图6示出了根据本申请的一个实施例的根据获取到的待消费任务的标识信息处理待消费任务的流程图。请参阅图6,步骤240可以具体包括以下步骤:[0105]步骤610,从多节点系统对应的缓存中加载待消费任务的标识信息所对应的任务实体二进制数据。[0106]任务实体二进制数据和待消费任务的标识信息可以存放于同一缓存中,也可以分别存放在不同缓存中。[0107]缓存可以属于多节点系统,也可以位于多节点系统之外。缓存是多节点系统中各任务处理节点共同使用的高速存储空间,缓存可以位于物理节点上,也可以位于虚拟节点上,缓存的物理实质可以是内存。使用缓存的好处是可以提高任务实体二进制数据的加载效率,从而可以提高任务处理节点发生宕机后任务的恢复效率,从而提高系统的可用性。[0108]在本申请的其他实施例中,任务实体二进制数据还可以存储于磁盘上。[0109]任务实体二进制数据是对任务进行序列化得到的字节序列,任务实体二进制数据是在分配任务时将其刷入缓存中的,通过将任务以任务实体二进制数据的方式进行存储,可以便于任务存储和传送。[0111]从多节点系统对应的缓存中加载待消费任务的标识信息所对应的任务实体二进制数据之后,将缓存中的任务实体二进制数据持久化到磁盘中。[0112]步骤620,对任务实体二进制数据进行反序列化处理,得到待消费任务。[0113]对任务实体二进制数据进行反序列化处理,能够得到待消费任务这一对象,对象可以以Java对象的形式表示。[0114]步骤630,处理待消费任务。[0115]在本申请的一个实施例中,待消费任务包括至少一个网络指令,任务实体二进制数据包括与网络指令对应的原始二进制数据。[0116]处理待消费任务的步骤可以包括:[0117]依次执行待消费任务中包含的网络指令,其中,在每个网络指令执行成功之后,将每个网络指令进行序列化处理,并通过序列化处理后得到的二进制数据替换每个网络指令在缓存中对应的原始二进制数据。[0118]当一个待消费任务中的所有网络指令均执行成功之后,缓存中各网络指令对应的原始二进制数据均会被覆盖为二进制数据。[0119]将网络指令的二进制数据该网络指令在缓存中对应的原始二进制数据,也可以称为对任务实体二进制数据的快照。[0120]很显然,本申请实施例用于对网络指令进行编排的场景中,由于在网络指令执行成功之后,对该网络指令进行序列化处理,并通过序列化处理后得到的二进制数据替换该网络指令在缓存中对应的原始二进制数据,一个网络指令对应的原始二进制数据和二进制数据是不同的,代表了网络指令的不同状态,因此,可以确定的是,若缓存中存在原始二进制数据,则代表该原始二进制数据对应的网络指令未被执行成功,若缓存中存在二进制数据,则代表该二进制数据对应的网络指令被执行成功。[0121]基于此,当第一任务的标识信息被投放至消息队列中后,若第一任务中的一部分网络指令成功执行,另一部分网络指令则未成功执行,那么,缓存中包括一部分网络指令对应的二进制数据和另一部分网络指令对应的原始二进制数据。此时,当多节点系统中的指定任务处理节点获取到该第一任务的标识信息之后,可以仅加载第一任务对应的原始二进制数据,从而仅对第一任务中未成功执行的网络指令进行处理,从而避免第一任务中已成功执行的网络指令被重复执行,保证了节点宕机后指令编排任务恢复的准确性。[0122]在此基础上,各任务处理节点都能够分辨出哪些任务以及任务中的哪些网络指令被执行过,基于这些特性就能对上述实施例中的方案进行适应性调整。[0123]具体而言,请继续参阅图5,虽然在图5中未发生宕机的节点获取的是发生宕机的节点的任务列表,任务列表可能同时包括处理完成的任务的标识信息和未处理完成的任务的标识信息;但在其他实施例中,也可以仅获取任务列表中未被发生宕机的节点处理完成的任务的标识信息。[0124]并且,当一个节点获取到任务列表时,该节点推送至消息队列中任务的标识信息既可以为该任务列表中未处理完成的任务的标识信息,也可以为该任务列表中全部任务的标识信息,之所以可以向消息队列推送全部任务的标识信息,是因为从该消息队列中获取待消费任务的标识信息的节点能够根据缓存中的数据分辨出已成功执行的网络指令,从而避免重复执行。[0125]在本申请的一个实施例中,所述方法还包括:在待消费任务执行成功之后,将缓存中的该待消费任务对应的二进制数据持久化到磁盘中。[0126]本申请实施例,对二进制数据实现了持久化处理,对任务处理记录实现了落盘,可以在事后对处理过的任务进行回溯和审计。[0127]持久化处理的目的留存更多的数据以供回溯和审计,因而,本申请实施例应用实现持久化的方式可以是任意的。可以在任务处理的任意阶段进行持久化处理,可以定期进行持久化处理,也可以根据用户指令进行持久化处理,可以仅对二进制数据进行持久化处理,还可以对包含原始二进制数据的任务实体二进制数据进行持久化处理。[0128]在本申请的一个实施例中,处理待消费任务的步骤还包括:若对待消费任务中包含的网络指令执行失败,则对待消费任务中已执行过的网络指令进行回滚处理,以重新处理待消费任务。[0129]具体而言,待消费任务包括多个需要依次执行的网络指令,当待消费任务中包含的一个网络指令执行失败之后,在执行该网络指令之前执行过的网络指令需要被重新执行,这样就确保了网络指令执行的原子性,避免了网络指令的执行出现错误,从而提高了网络指令执行的可靠性。[0130]在本申请的一个实施例中,多节点系统中的各个任务处理节点上部署有网络控制器,网络控制器包括任务编排管理框架,任务编排管理框架用于依次执行待消费任务中包含的网络指令。[0131]请继续参阅图3,其示出了多节点系统中一个节点的组织形式,多节点系统中每个节点都可以采用该组织形式。[0132]在本申请实施例中,任务编排管理框架作为组件嵌入至网络控制器中,大大降低了网络指令下发的延迟,同时,由于一套任务编排管理框架可以分别嵌入不同任务处理节点的网络控制器中,因而还提高了程序代码的复用性;并且,可以基于任务编排管理框架进行二次开发,以使不同的网络控制器实现不同的指令编排策略,因此也可以提高开发效率;另外,各任务编排管理框架可以单独进行维护和测试,还降低了系统的耦合性。[0133]在本申请的一个实施例中,所述依次执行待消费任务中包含的网络指令,包括:依次将待消费任务中包含的网络指令发送至与网络指令对应的网络设备。[0134]此处的网络设备可以为边缘网关等各种类型的网络设备。[0135]网络指令执行成功可以表示网络指令成功发送至与网络指令对应的网络设备,还可以表示网络指令被发送至对应的网络设备之后,接收到该网络指令返回的代表成功执行该网络指令的响应信息。[0136]在本申请的一个实施例中,网络控制器还包括远程调用客户端,依次执行待消费任务中包含的网络指令的步骤可以包括:依次将待消费任务中的网络指令发送至远程调用客户端,以使远程调用客户端依次向与网络指令对应的网络设备发送网络指令。[0137]请参阅图3,网络控制器中的RPCClient即为远程调用客户端,因而,本申请实施例还实现了基于远程调用协议进行网络指令的编排。[0138]在本申请的一个实施例中,所述方法由多个任务处理节点中的指定任务处理节点[0139]若指定任务处理节点是多节点系统中持续正常工作时间最长的任务处理节点,则获取多节点系统中未处理完成的第二任务的标识信息;[0140]将第二任务的标识信息投放至消息队列中。[0141]多节点系统中的任务处理节点可以构成一个集群,一个任务处理节点的持续正常工作时间最长,即该任务处理节点是多节点系统中与注册中心之间保持正常的心跳连接的持续时长的任务处理节点,也可以称为集群中最老的节点。[0142]在本申请的一个实施例中,若指定任务处理节点是多节点系统中持续正常工作时间最长的任务处理节点,则获取多节点系统中未处理完成的第二任务的标识信息的步骤具体可以包括:[0143]若指定任务处理节点是多节点系统中持续正常工作时间最长的任务处理节点,则在等待预定时间之后获取多节点系统中未处理完成的第二任务的标识信息。[0144]通过在等待预定时间之后再获取第二任务的标识信息,可以减少在指定任务处理节点积压的任务,减少指定任务处理节点的负荷。[0145]预定时间可以根据需要任意设定,比如可以设置为2分钟。[0146]图7示出了根据本申请的一个实施例的节点全部宕机时多节点系统的处理流程示意图,其中,图7的右上角示出了节点状态与时间关系的示意图。请参见图7,节点全部宕机时多节点系统的处理流程可以如下:时间点不同的原因是由于心跳延迟,节点02在T2时间点才被注册中心发现宕机。[0149]3、节点03在T1时间上线,节点03按照前述实施例中的方案能够检测到节点02发生宕机,可以从缓存中获取节点02的任务列表,并将任务列表中的任务投放至消息队列中,从而对节点02未完成的任务实现恢复执行,节点03能够实现对这些任务的接管,而节点01未完成的任务无法被接管。[0150]4、当节点03通过注册中心发现自己是当前集群最老的节点时,即发现自己是持续正常工作时间最长的节点时,会在2分钟(仅为示例)后执行一个集群恢复事件。[0151]5、集群恢复事件会根据缓存中各节点的任务列表和任务被执行时间集合,获取缓存中将所有任务执行时间早于当前集群最老节点(节点03)诞生时间的任务的标识信息,并将这些任务的标识信息重新投递至消息队列中。[0152]6、节点03从消息队列中获得任务的标识信息,以消费任务,使得节点01未处理完成的任务得以恢复执行。[0153]本申请实施例中,即使多节点系统中的所有任务处理节点均发生宕机,只要有一个任务处理节点上线,其他任务处理节点未处理完成的任务就可以被继续执行,从而进一步提高了系统的可用性。[0154]在前面所说的例子中,消息队列中包含的仅仅为节点未处理完成的第一任务的标识信息,但消息队列还可以包括在正常情况下为任务处理节点分配的任务的标识信息。[0155]在本申请的一个实施例中,网络控制器还包括任务投放客户端,消息队列中还包含有第三任务的标识信息,第三任务的标识信息是由任务投放客户端投放至消息队列中[0156]任务投放客户端负责向任务编排管理框架发送正常情况下所需要处理的任务的标识信息,任务编排管理框架不仅能够在其他节点宕机时处理其他节点的未处理完成的任务,还可以处理正常情况下所需要执行的任务,对于未被其他任务处理节点处理完成的任务,当前任务处理节点能够像处理正常情况下所需要处理的任务一样进行处理。[0157]请参见图3,任务投放客户端可以包括网络编排与计算模块、网络模型对象管理模块及全局质量监控流量调度模块等各种用于生成网络指令的功能模块,任务投放客户端在网络控制器中的位置与这些模块在网络控制器中的位置是类似的。因此,每个任务处理节点都可以包含一个任务投放客户端和一个任务编排管理框架,任务投放客户端和任务编排管理框架都嵌入在该任务处理节点的网络控制器上。[0158]图8示出了根据本申请的一个实施例的基于任务编排管理框架的任务执行流程示[0159]下面,先介绍该基于任务编排管理框架的系统内组件和对应的功能。[0160](1)客户端:负责网络指令生成,将一组网络指令组合成任务进行提交,此处的客户端即相当于前述实施例中的任务投放客户端。[0161](2)消息队列:客户端同任务编排管理框架的桥梁,负责对任务量进行削峰。[0162](3)存储/缓存:完成任务和指令的持久化和缓存,保证任务不丢失可恢复,可回溯可审计。[0164](5)任务编排管理框架:网络指令的具体执行者,负责将执行完任务中的一组指令,并时刻刷新快照保证任务不会丢失,可以宕机时被其他节点的任务编排框架接管。[0165]在上述组件中,一个客户端和一个任务编排管理框架可以位于同一个节点上,每个节点都可以包含有一个客户端和一个任务编排管理框架,注册中心和消息队列可以位于任意节点上,存储/缓存也可以位于一个或多个节点上;另外,还可以提高系统的可用性。[0166]图8实施例中的基于任务编排管理框架的任务执行流程如下:[0167]a)每个任务编排管理框架在系统启动之初,要去注册中心完成注册,并检测其他任务编排管理框架的状态,以此来保证其他框架/节点宕机时,可以及时发现并作故障迁移,此处的系统即为包含任务编排管理框架以及上述组件的系统。[0168]b)客户端根据用户的指令向消息队列发送任务ID,客户端还会将任务ID和对应的任务实体二进制放入缓存中。[0169]c)任务编排管理框架从消息队列获取任务ID。[0170]在本申请的一个实施例中,任务编排管理框架从消息队列中获取由该任务编排管理框架对应的客户端发送的任务ID。[0171]在这种情况下,前述实施例的缓存中节点的任务列表,可以是由客户端写入的,即客户端指定了节点要处理的任务,而任务列表对于其他节点未处理完成的任务ID,可以由获取到该任务ID的节点在获取到该任务ID之后立即写入缓存中。[0172]在本申请的其他实施例中,任务编排管理框架也可以获取其他客户端发送的任务[0173]d)依据任务ID加载对应任务实体二进制。[0174]e)对任务实体二进制反序列化,得到任务。[0175]f)依次执行任务中的网络指令,当执行网络指令失败时,框架会自动回滚已经执行过的网络指令,此步骤为保证原子性关键步骤,执行网络指令即向该网络指令对应的网络设备发送该网络指令。[0177]h)对任务二进制进行快照,刷入缓存。此处的快照即为位于缓存中的任务二进制。此步骤为高可用和容灾关键步骤,每次刷新任务快照,保证了当框架/节点宕机时,其他框架/节点可以依据快照信息恢复执行任务,保证任务完成。[0178]i)若任务没有执行完成,则继续执行步骤e)及之后的步骤。[0179]j)将任务持久化到用于存储的磁盘中,进行落盘。[0180]综上所述,根据本申请实施例应用于多节点系统的任务处理方法,可以保障指令编排的原子性,能够确保控制器在宕机之后编排指令任务不丢失,还可以提高整体开发效[0181]以下介绍本申请的装置实施例,可以用于执行本申请上述实施例中的应用于多节点系统的任务处理方法。对于本申请装置实施例中未披露的细节,请参照本申请上述的应用于多节点系统的任务处理方法的实施例。[0182]图9示出了根据本申请的一个实施例的应用于多节点系统的任务处理装置的框[0183]参照图9所示,根据本申请的一个实施例的应用于多节点系统的任务处理装置[0184]其中,检测单元910用于检测所述多个任务处理节点的工作状态;获取单元920用于从消息队列中获取待消费任务的标识信息,所述消息队列中包含有发生宕机的第一任务处理节点未处理完成的第一任务的标识信息,所述第一任务的标识信息是由第二任务处理节点在检测到所述第一任务处理节点宕机后获取并投放至所述消息队列中的;处理单元930用于根据获取到的待消费任务的标识信息,处理所述待消费任务。[0185]在本申请的一些实施例中,基于前述方案,获取单元920还用于:若检测到所述第一任务处理节点发生宕机,则与所述多个任务处理节点中的其它任务处理节点通过竞争的方式获取所述第一任务处理节点未处理完成的第一任务的标识信息;其中,所述第二任务处理节点包括在竞争中取得成功的任务处理节点。[0186]在本申请的一些实施例中,基于前述方案,应用于多节点系统的任务处理装置900位于所述多个任务处理节点中的指定任务处理节点内,获取单元920还用于:若所述指定任务处理节点是所述多节点系统中持续正常工作时间最长的任务处理节点,则获取所述多节点系统中未处理完成的第二任务的标识信息;将所述第二任务的标识信息投放至所述消息队列中。[0187]在本申请的一些实施例中,基于前述方案,获取单元920配置为:若所述指定任务处理节点是所述多节点系统中持续正常工作时间最长的任务处理节点,则在等待预定时间之后获取所述多节点系统中未处理完成的第二任务的标识信息。[0188]在本申请的一些实施例中,基于前述方案,在检测所述多个任务处理节点的工作状态之前,检测单元910还用于:向注册中心发送注册请求,并在注册成功后建立与所述注册中心之间的心跳连接;检测单元910配置为:对所述注册中心中维护的心跳连接的状态进行检测,以检测所述多个任务处理节点的工作状态。[0189]在本申请的一些实施例中,基于前述方案,处理单元930配置为:从所述多节点系统对应的缓存中加载所述待消费任务的标识信息所对应的任务实体二进制数据;对所述任务实体二进制数据进行反序列化处理,得到所述待消费任务;处理所述待消费任务。[0190]在本申请的一些实施例中,基于前述方案,所述待消费任务包括至少一个网络指令,所述任务实体二进制数据包括与网络指令对应的原始二进制数据;处理单元930配置为:依次执行所述待消费任务中包含的网络指令,其中,在每个网络指令执行成功之后,将所述每个网络指令进行序列化处理,并通过序列化处理后得到的二进制数据替换所述每个网络指令在所述缓存中对应的原始二进制数据。[0191]在本申请的一些实施例中,基于前述方案,处理单元930还配置为:若对所述待消费任务中包含的网络指令执行失败,则对所述待消费任务中已执行过的网络指令进行回滚处理,以重新处理所述待消费任务。[0192]在本申请的一些实施例中,基于前述方案,处理单元930还配置为:从所述多节点系统对应的缓存中加载所述待消费任务的标识信息所对应的任务实体二进制数据之后,将所述缓存中的任务实体二进制数据持久化到磁盘中。[0193]在本申请的一些实施例中,基于前述方案,所述多节点系统中的各个任务处理节点上部署有网络控制器,所述网络控制器包括任务编排管理框架,所述任务编排管理框架用于依次执行所述待消费任务中包含的网络指令。[0194]在本申请的一些实施例中,基于前述方案,所述网络控制器还包括远程调用客户端,处理单元930配置为:依次将所述待消费任务中的网络指令发送至所述远程调用客户端,以使所述远程调用客户端依次向与所述网络指令对应的网络设备发送所述网络指令。[0195]在本申请的一些实施例中,基于前述方案,所述网络控制器还包括任务投放客户端,所述消息队列中还包含有第三任务的标识信息,所述第三任务的标识信息是由所述任务投放客户端投放至所述消息队列中的。[0196]图10示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。[0197]需要说明的是,图10示出的电子设备的计算机系统1000仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。[0198]如图10所示,计算机系统1000包括中央处理单元(CentralProcessingUnit,CPU)1001,其可以根据存储在只读存储器(Read-OnlyMemory,ROM)1002中的程序或者从存储部分1008加载到随机访问存储器(RandomAccessMemory,RAM)1003中的程序而执行各作所需的各种程序和数据。CPU1001、ROM1002以及RAM1003通过总线1004入/输出(Input/Output,I/0)接口1005也连接至总线1004。[0199]以下部件连接至I/0接口1005:包括键盘、鼠标等的输入部分1006;包括诸如阴极器等的输出部分1007;包括硬盘等的存储部分1008;以及包括诸如LAN(LocalAreaNetwork,局域网)卡、调制解调器等的网络接口卡的通信部分1009。通信部分1009经由诸如因特网的网络执行通信处理。驱动器1010也根据需要连接至I/0接口1005。可拆卸介质从其上读出的计算机程序根据需要被安装入存储部分1008。[0200]特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1009从网络上被下载和安装,和/或从可拆卸介质1011被安装。在该计算机程序被中央处理单元(CPU)1001执行时,执行本申请的系统中限定的各种功能。[0201]需要说明的是,本申请实施例所示的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论