任务执行方法、装置和任务执行系统与流程

文档序号:17858503发布日期:2019-06-11 22:42阅读:187来源:国知局
任务执行方法、装置和任务执行系统与流程

本发明涉及计算机应用技术领域,具体而言,涉及一种任务执行方法、装置和任务执行系统。



背景技术:

随着互联网相关技术的快速发展,特别是大数据以及智能化技术的飞速发展。人们日常在互联网上产生的数据成几何倍速增长,这样的情况给数据统计分析工作带来了巨大的挑战。

目前,在对数据进行统计分析时,通常的做法是将数据交给集群计算机中的一台计算机做计算,或者,将数据放到不同的数据库或数据表中,让不同的计算机去计算,如果数据太多,上述处理数据的方式不能快速的完成数据的分析,极有可能使数据失去实时性。



技术实现要素:

针对上述现有技术中存在的问题,本发明提供了一种任务执行方法、装置和任务执行系统,可以使集群计算机中的每台计算机共同执行任务执行指令,能够快速的完成数据的分析,并保证数据分析的实时性。第一方面,本发明实施例提供了一种任务执行方法,其中,应用于网络服务器,所述方法包括:

接收集群计算机中的计算机发送的启动通知;所述集群计算机包括多台计算机;每台所述计算机均与所述网络服务器通讯连接;

根据所述启动通知,向所述集群计算机中每台所述计算机发送竞争指令,以使每一台所述计算机执行所述竞争指令;

获取每台所述计算机返回的竞争结果;

根据所述竞争结果,向所述计算机发送任务分割指令及待命任务指令。

结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,所述网络服务器接收的每台所述计算机返回的所述竞争结果均不同。

第二方面,本发明实施例还提供了一种任务执行方法,其中,应用于集群计算机中的计算机,所述方法包括:

接收网络服务器发送的竞争指令;

执行所述竞争指令,获得竞争结果;

将所述竞争结果发送给网络服务器,以使所述网络服务器根据所述竞争结果向所述计算机发送任务分割指令及待命任务指令。结合第二方面,本发明实施例提供了第二方面的第一种可能的实施方式,其中,所述方法还包括:

当接收到所述网络服务器发送的任务分割指令时,从与每台所述计算机连接的数据库中提取与所述任务执行指令相关的数据总数;

根据设定的分割原则将所述数据总数分割成多个任务片段;

将分割后的每一个所述任务片段发送至所述网络服务器,以使所述网络服务器向每台所述计算机发送任务启动指令。

结合第二方面的第一种可能的实施方式,本发明实施例提供了第二方面的第二种可能的实施方式,其中,所述方法还包括:

当接收到所述网络服务器发送的任务启动指令时,执行所述任务片段;

获取所述任务片段的执行结果;

将所述执行结果发送至所述网络服务器,以使所述网络服务器向所述计算机发送反馈指令。

结合第二方面的第二种可能的实施方式,本发明实施例提供了第二方面的第三种可能的实施方式,其中,所述方法还包括:

接收所述反馈指令;

执行所述反馈指令,得到所述反馈指令的反馈结果;

将所述反馈结果发送至所述网络服务器,以使所述网络服务器根据所述反馈结果向每台所述计算机发送任务结束指令。第三方面,本发明实施例提供了一种任务执行装置,其中,应用于网络服务器,所述装置包括:

第一接收模块,用于接收集群计算机中的计算机发送的启动通知;所述集群计算机包括多台计算机;每台所述计算机均与所述网络服务器通讯连接;

第一发送模块,用于根据所述启动通知,向所述集群计算机中每台所述计算机发送竞争指令,以使每一台所述计算机执行所述竞争指令;

获取模块,用于获取每台所述计算机返回的竞争结果;

第二发送模块,用于根据所述竞争结果,向所述计算机发送任务分割指令及待命任务指令。

第四方面,本发明实施例提供了一种任务执行装置,其中,应用于集群计算机中的计算机,所述装置包括:

第二接收模块,用于接收网络服务器发送的竞争指令;

执行模块,用于执行所述竞争指令,获得竞争结果;

第三发送模块,用于将所述竞争结果发送给网络服务器,以使所述网络服务器根据所述竞争结果向所述计算机发送任务分割指令及待命任务指令。

第五方面,本发明实时例还提供了一种任务执行系统,其中,包括集群计算机及与所示集群计算机连接的网络服务器和数据库。

第六方面,本发明实施例还提供了一种计算机可读存储介质,其中,存储有为实现上述的任务执行方法所使用的计算机程序指令。

本发明实施例带来了以下有益效果:

本发明实施例提供的任务执行方法、装置及任务执行系统,当接收集群计算机中的计算机发送的启动通知时,根据启动通知向集群计算机中每台计算机发送竞争指令,以使每一台计算机执行竞争指令,然后获取每台计算机返回的竞争结果,根据竞争结果,向计算机发送任务分割指令及待命任务指令,使集群计算机中的每台计算完成竞争,有助于接下来的所有计算共同对数据进行分析,能够快速的完成数据的分析,并保证数据分析的实时性。

本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

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

图1为本发明一实施例所提供的任务执行系统的结构框图;

图2为本发明一实施例所提供的任务执行方法的流程图;

图3为本发明另一实施例所提供的任务执行方法的流程图;

图4为本发明一实施例所提供的任务执行装置的模块图;

图5为本发明另一实施例所提供的任务执行装置的模块图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

针对现有的处理数据的方式不能快速的完成数据的分析,极有可能使数据失去实时性的问题,本发明实施例提供了一种任务执行方法、装置和任务执行系统,以下首先对本发明的任务执行方法进行详细介绍。

实施例一

本实施例提供了一种任务执行方法,应用于网络服务器,如图2所示为任务执行方法的流程图,该方法包括:

步骤s202,接收集群计算机中的计算机发送的启动通知。

集群计算机包括多台计算机,每台计算机均与网络服务器连接。如图1所示为任务执行系统的结构框图,本发明实施例所提供的任务执行方法可以应用于图1所示的分布式系统。结合图1,该任务执行系统包括网络服务器5和与网络服务器5通讯连接的计算机1、计算机2、计算机3及计算机4,还包括与计算机1、计算机2、计算机3及计算机4连接的数据库6。

具体地,计算机1、计算机2、计算机3、计算机4中的某一台计算机设置上运行有定时器软件,该定时器软件可以是redis软件(一种内存管理服务软件)或者其他定时器软件,本发明实施例以redis软件为例,且假设计算机2上运行有redis软件。计算机管理员可以在redis软件上设置定时程序,该定时程序包括多个指令,当redis软件中的定时程序被唤醒时,即需要集群计算机中的每台计算机执行任务时,计算机2向网络服务器5发送启动通知,网络服务器5即可接收该启动通知。

步骤s204,根据启动通知,向集群计算机中每台计算机发送竞争指令,以使每台计算机执行竞争指令。示例性地,集群计算机中每台计算机接收到竞争指令时,可以在同一时间使用同一个键值如“jobleader+1”,并向网络服务器5发送该键值,网络服务器5获取到每台计算机的键值,然后将每台计算机的键值发送给计算机2,在计算机2上运行的redis软件中执行该竞争指令,以使每台计算机执行竞争指令。

步骤s206,获取每台计算机返回的竞争结果。

在redis软件中,由于每台计算机返回结果的数字值会增一,并可以确定返回值为1的计算机为主计算机,返回值为其他正整数的计算机为从计算机。结合图1,集群计算机中有4台计算机,分别为计算机1、计算机2、计算机3、计算机4,如果计算机1的返回值为1,计算机2、计算机3、计算机4的返回值分别为2、3、4,则计算机2确定计算机1为主计算机,计算机2、计算机3、计算机4为从计算机,网络服务器5便可获取竞争结果。

步骤s208,根据竞争结果,向计算机发送任务分割指令及待命任务指令。

具体地,网络服务器5获取竞争结果后,需要向主计算机发送任务分割指令及向从计算机发送待命任务通知,使集群计算机中的计算机完成竞争,当计算机竞争结束后,主计算机从数据库6中提取与任务分割指令相关的数据,并将这些数据分割成多个任务片段,主计算机和从计算机共同执行多个任务片段,以完成对数据进行分析,能够快速的完成数据的分析,并保证数据分析的实时性。

本发明实施例提供的任务执行方法,应用于网络服务器,当接收集群计算机中的计算机发送的启动通知时,根据启动通知向集群计算机中每台计算机发送竞争指令,以使每一台计算机执行竞争指令,然后获取每台计算机返回的竞争结果,根据竞争结果,向计算机发送任务分割指令及待命任务指令,使集群计算机中的每台计算完成竞争,使主计算机从数据库中提取与任务分割指令相关的数据,并将这些数据分割成多个任务片段,然后主计算机和从计算机共同执行多个任务片段,能够快速的完成数据的分析,并保证数据分析的实时性。

实施例二

本实施例提供了一种任务执行方法,应用于集群计算机中的计算机,如图3所示为任务执行方法的流程图,该方法包括:

步骤s302,接收网络服务器发送的竞争指令。

步骤s304,执行竞争指令,获得竞争结果。

示例性地,集群计算机中每台计算机接收到竞争指令时,可以在同一时间使用同一个键值如“jobleader+1”,并向网络服务器5发送该键值,网络服务器5获取到每台计算机的键值,然后将每台计算机的键值发送给计算机2,在计算机2上运行的redis软件中执行该竞争指令,使每台计算机执行竞争指令并获得竞争结果,并确定主机算机和从计算机。

步骤s306,将竞争结果发送给网络服务器,以使网络服务器根据竞争结果向计算机发送任务分割指令及待命任务指令。

可以理解的是,主计算机接收任务分割指令,从计算机接收待命任务指令,主计算机从与每台计算机连接的数据库6中提取与任务分割指令相关的数据总数,根据设定的分割原则将数据总数分割成多个任务片段,并将分割后的每一个任务片段发送至网络服务器5,以使网络服务器向每台计算机发送任务启动指令。

示例性地,从数据库6中提取了包括800个数字一批数字,分割原则为将这些数字平均分成4个片段,即每一个片段有200个数字,即片段1:数字0~200;片段2:数字201~400;片段3:数字401~600;片段4:数字601~800,然后主计算机可以将这四个片段同步到第一异步消息队列中,主计算机和从计算机可以从第一异步消息队列中随机获取执行的片段,第一异步消息队列中也包括上述800个数字的执行信号。

具体地,当这四个片段同步到第一异步消息队列后,可以为这些片段设置同一个频道号,如“t-jobdata+1”,主计算机和从计算机共同使用上述设置的“t-jobdata+1”频道号收听第一异步消息队列中的片段,由于使用的“t-jobdata+1”采用的是一次消费模式,每一个片段可随机被一个从计算机获取到,如片段1:数字0~200被计算机1获取到,片段2:数字201~400被计算机2获取到,片段3:数字401~600被计算机3获取到,片段4:数字601~800被计算机4获取到,主计算机和从计算机获取到上述片段后,获取每一个片段的执行信号并对应执行每一个片段,完成片段的执行。

当主计算机在每一个片段执行完毕后,主计算机还需要获取任务片段的执行结果,然后将执行结果发送至网络服务器5,以使网络服务器5向计算机发送反馈指令,主计算机接收到反馈指令后,执行该反馈指令,得到反馈指令的反馈结果,然后将反馈结果发送至网络服务器5,以使网络服务器5根据反馈结果向每台计算机发送任务结束指令。

具体地,主计算机接收到反馈指令后,需要将每一个片段的执行结果发布到第二异步消息队列,执行反馈指令,得到反馈结果,并将反馈结果发送至网络服务器5,以使网络服务器5根据反馈结果向每台计算机发送任务结束指令,集群中的每台计算机均停止任务执行;如果反馈结果中包括错误的结果,主计算机将与该错误的结果对应的片段重新发布到第一异步消息队列中,主计算机和从计算机重新从第一异步消息队列中随机获取该错误的结果对应的片段并执行的片段,直到所有片段执行完毕,得到新的反馈结果,并将新的反馈结果发送至网络服务器5,以使网络服务器5根据新的反馈结果向每台计算机发送任务结束指令,集群中的每台计算机均停止任务执行。

可以理解的是,第二异步消息队列中的可以与第一异步消息队列一样,可以是事先在发布订阅软件中建立也可以根据启动通知通过发布订阅软件建立的,且该发布订阅软件可以运行在每个计算机中。

本发明实施例提供的任务执行方法,应用于集群计算机中的计算机,每台计算机接收网络服务器发送的竞争指令,并执行竞争指令,获得竞争结果,然后将竞争结果发送给网络服务器,以使网络服务器根据竞争结果向计算机发送任务分割指令及待命任务指令,然后主计算机从数据库中提取与任务分割指令相关的数据,并将这些数据分割成多个任务片段,并且主计算机和从计算机共同执行多个任务片段,能够快速的完成数据的分析,并保证数据分析的实时性。

实施例三

与上述方法实施例一相对应地,本实施例提供了一种任务执行装置,应用于应用于网络服务器,如图4所示,该装置包括:

第一接收模块41,用于接收集群计算机中的计算机发送的启动通知;集群计算机包括多台计算机;每台计算机均与网络服务器通讯连接。

第一发送模块42,用于根据启动通知,向集群计算机中每台计算机发送竞争指令,以使每一台计算机执行竞争指令。

获取模块43,用于获取每台计算机返回的竞争结果。

第二发送模块44,用于根据竞争结果,向计算机发送任务分割指令及待命任务指令。

本发明实施例提供的任务执行装置,应用于网络服务器,当接收集群计算机中的计算机发送的启动通知时,根据启动通知向集群计算机中每台计算机发送竞争指令,以使每一台计算机执行竞争指令,然后获取每台计算机返回的竞争结果,根据竞争结果,向计算机发送任务分割指令及待命任务指令,使集群计算机中的每台计算完成竞争,使主计算机从数据库中提取与任务分割指令相关的数据,并将这些数据分割成多个任务片段,然后主计算机和从计算机共同执行多个任务片段,能够快速的完成数据的分析,并保证数据分析的实时性。

实施例四

与上述方法实施例二相对应地,本实施例提供了一种任务执行装置,应用于集群计算机中的计算机,如图5所示,该装置包括:

第二接收模块51,用于接收网络服务器发送的竞争指令,。

执行模块52,用于执行竞争指令,获得竞争结果。

第三发送模块53,用于将竞争结果发送给网络服务器,以使网络服务器根据竞争结果向计算机发送任务分割指令及待命任务指令。

本发明实施例提供的任务执行装置,

应用于网络服务器,当接收集群计算机中的计算机发送的启动通知时,根据启动通知向集群计算机中每台计算机发送竞争指令,以使每一台计算机执行竞争指令,然后获取每台计算机返回的竞争结果,根据竞争结果,向计算机发送任务分割指令及待命任务指令,使集群计算机中的每台计算完成竞争,使主计算机从数据库中提取与任务分割指令相关的数据,并将这些数据分割成多个任务片段,然后主计算机和从计算机共同执行多个任务片段,能够快速的完成数据的分析,并保证数据分析的实时性。

实施例五

本发明实施例提供了一种任务执行系统,该系统包括集群计算机及与集群计算机连接的网络服务器和数据库。

进一步地,本发明实施例还提供了一种机器可读存储介质,该机器可读存储介质存储有机器可执行指令,该机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现上述的任务执行方法。

本发明实施例提供的任务执行、装置和任务执行系统具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。

需要说明的是,在本发明所提供的实施例中,应该理解到,所揭露系统和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。

最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

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