CN110532077B - 任务处理方法、装置及存储介质 - Google Patents
任务处理方法、装置及存储介质 Download PDFInfo
- Publication number
- CN110532077B CN110532077B CN201910780673.6A CN201910780673A CN110532077B CN 110532077 B CN110532077 B CN 110532077B CN 201910780673 A CN201910780673 A CN 201910780673A CN 110532077 B CN110532077 B CN 110532077B
- Authority
- CN
- China
- Prior art keywords
- server
- task
- subtask
- executed
- target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/70—Game security or game management aspects
- A63F13/77—Game security or game management aspects involving data related to game devices or game servers, e.g. configuration data, software version or amount of memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/50—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
- A63F2300/55—Details of game data or player data management
- A63F2300/552—Details of game data or player data management for downloading to client devices, e.g. using OS version, hardware or software profile of the client device
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- General Business, Economics & Management (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种任务处理方法、装置及存储介质。其中,该方法包括:服务器集群中的第一服务器向服务器集群中每个服务器发送第一状态查询请求;第一服务器获取服务器集群中的第二服务器发送的任务状态信息;在任务状态信息指示第一目标任务中存在待执行的第一子任务、且第一服务器被允许执行第一子任务的情况下,第一服务器执行第一子任务,其中,第一目标任务包括多个子任务,服务器集群中包括多个服务器,每个服务器均被配置为允许执行第一目标任务中的任意一个子任务。本发明解决了现有任务处理机制处理效率低下的技术问题。
Description
技术领域
本发明涉及计算机领域,具体而言,涉及一种任务处理方法、装置及存储介质。
背景技术
在现有的任务处理机制下,需要通过执行多个子任务从而完成一个请求任务。例如,平台游戏安装包更新任务,会涉及到参数校验、安装包上传、下载、入库等子任务。对于这些子任务现有技术中往往设置多个服务器,每一个服务器专门用于执行一种类型的子任务。对于请求任务的完成,需要多个服务器配合,尤其是当子任务之间存在处理时序时,不同的子任务会有不同的处理时长,因此会出现一个子任务的执行,需要依赖上一个子任务执行完毕而进行等待。但是,对于执行上一个子任务的服务器,其可能尚存在多个请求任务中相同类型的任务需要执行,从而造成执行效率的低下。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种任务处理方法、装置及存储介质,以至少解决现有任务处理机制处理效率低下的技术问题。
根据本发明实施例的一个方面,提供了一种任务处理方法,包括:服务器集群中的第一服务器向服务器集群中每个服务器发送第一状态查询请求,其中,第一状态查询请求用于查询是否存在待执行的子任务;第一服务器获取服务器集群中的第二服务器发送的任务状态信息;在任务状态信息指示第一目标任务中存在待执行的第一子任务、且第一服务器被允许执行第一子任务的情况下,第一服务器执行第一子任务,其中,第一目标任务包括多个子任务,服务器集群中包括多个服务器,每个服务器均被配置为允许执行第一目标任务中的任意一个子任务。
根据本发明实施例的另一方面,还提供了一种任务处理装置,包括:第一查询单元,用于通过服务器集群中的第一服务器向服务器集群中每个服务器发送第一状态查询请求,其中,第一状态查询请求用于查询是否存在待执行的子任务;第一获取单元,用于通过第一服务器获取服务器集群中的第二服务器发送的任务状态信息;第一执行单元,用于在任务状态信息指示第一目标任务中存在待执行的第一子任务、且第一服务器被允许执行第一子任务的情况下,通过第一服务器执行第一子任务,其中,第一目标任务包括多个子任务,服务器集群中包括多个服务器,每个服务器均被配置为允许执行第一目标任务中的任意一个子任务。
根据本发明实施例的又一方面,还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任务处理方法。
根据本发明实施例的又一方面,还提供了一种电子装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,上述处理器通过计算机程序执行上述的任务处理方法。
在本发明实施例中,采用服务器集群执行第一目标任务,服务器集群中包括多个服务器,每个服务器均被配置为允许执行第一目标任务中的任意一个子任务,服务器集群中的第一服务器向每个服务器发送第一状态查询请求,通过第一状态查询请求查询是否存在待执行的子任务,在接收到服务器集群中的第二服务器发送的任务状态信息指示存在待执行的第一子任务、且被允许执行第一子任务的情况下,执行第一子任务的方式,通过将服务器集群中的每个服务器均配置为可以执行任务中的任意一个子任务,服务器集群中的服务器通过向每个服务器发送请求的方式,轮询是否存在待执行子任务,从而在允许执行的情况下执行子任务,从而无需等待单一服务器执行某一类型的任务,实现了提高任务处理效率的技术效果,进而解决了现有任务处理机制处理效率低下的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1a是根据本发明实施例的一种可选的任务处理方法的应用环境的示意图;
图1b是根据本发明实施例的另一种可选的任务处理方法的应用环境的示意图;
图2是根据本发明实施例的一种可选的任务处理方法的流程示意图;
图3是根据本发明实施例的另一种可选的任务处理方法的流程示意图;
图4是根据本发明实施例的另一种可选的任务处理方法的应用环境的示意图;
图5是根据本发明实施例的游戏开发商服务器与服务器集群交互的示意图;
图6是根据本发明实施例的一种可选的任务处理方法的任务列表示意图;
图7是根据本发明实施例的一种可选的任务处理装置的结构示意图;
图8是根据本发明实施例的一种可选的电子装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本发明实施例的一个方面,提供了一种任务处理方法,可选地,作为一种可选的实施方式,上述任务处理方法可以但不限于应用于如图1a所示的环境中。
在本发明实施例中,服务器集群中包括多个服务器,每个服务器均被配置为允许执行任意一种类型的子任务,也就是,一个子任务可以被服务器集群中的任意一个服务器执行。服务器集群中的第一服务器102通过处理引擎106执行步骤S108,向服务器集群中每个服务器发送第一状态查询请求,其中,第一状态查询请求用于查询是否存在待执行的子任务;S110,获取服务器集群中的第二服务器发送的任务状态信息;S112,在任务状态信息指示第一目标任务中存在待执行的第一子任务、且第一服务器被允许执行第一子任务的情况下,第一服务器执行第一子任务,其中,第一目标任务包括多个子任务,服务器集群中包括多个服务器,每个服务器均被配置为允许执行第一目标任务中的任意一个子任务。这里第一服务器102可以通过数据库104存储执行任务所需的数据。可以理解的是,这里的第一服务器可以是服务器集群中的任意一个服务器,第一服务器通过向服务器集群中的每个服务器发送第一状态查询请求,查询当前可以执行的子任务,在第一子任务为待执行,且第一服务器允许被执行的情况下执行第一子任务,同时,该第一子任务还可以是服务器集群中其他服务器未执行成功的子任务,从而使得通过服务器集群执行第一目标任务时,可以由不同的服务器执行可以执行的子任务,在存在多个任务需要执行时,不同的服务器可以通过执行不同任务中的不同子任务提高处理效率。同时,第一服务器还可以执行其他服务器未执行成功的任务,从而使得任务的执行不会受到单一服务器故障的影响,提高了任务的执行效率。
可选地,在本实施例中,上述任务处理方法可以但不限于应用于服务器102中,用于处理第一目标任务中的子任务。其中上述服务器102和服务器集群中的其他服务器可以但不限于通过网络实现数据交互,上述网络可以包括但不限于无线网络或有线网络。其中,该无线网络包括:蓝牙、WIFI及其他实现无线通信的网络。上述有线网络可以包括但不限于:广域网、城域网、局域网。上述仅是一种示例,本实施例中对此不作任何限定。
可选地,作为一种可选的实施方式,上述任务处理方法还可以应用于如图1b所示的环境中。这里,服务器集群中的服务器为区块链中的区块链节点服务器。
区块链(Blockchain):是比特币的一个重要概念,它本质上是一个去中心化的数据库,同时作为比特币的底层技术。区块链是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了比特币网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链节点也就是区块链中的节点设备。
在本发明实施例中,用户设备11可以通过网络向服务器集群12中的任一个区块链节点服务器发送第一目标任务,例如发起交易事件,可以理解的是,第一目标任务中可以包括一个或多个子任务,这些子任务可以由作为区块链节点的服务器A-K中的任一个执行。需要注意的是,图示中服务器A-K仅用于示意服务器集群中可以包括多个服务器,本发明并不对服务器的具体数量作出限定。
服务器集群12中的作为第一区块链节点服务器的第一服务器向服务器集群12中每个服务器发送第一状态查询请求,其中,第一状态查询请求用于查询是否存在待执行的子任务;第一服务器获取服务器集群中的第二服务器发送的任务状态信息;例如,第二服务器接收到交易事件,此时具有待执行的验证交易事件签名的任务,第一服务器可以通过轮询的方式查询到该任务;在任务状态信息指示第一目标任务中存在待执行的第一子任务、且第一服务器被允许执行第一子任务的情况下,第一服务器执行第一子任务。继续以交易事件为例,也就是,在作为区块链节点的第一服务器查询到验证交易事件签名的任务时,在被允许执行的情况下,可以执行该验证交易事件签名的任务。这里,服务器集群中区块链节点服务器可以通过轮询的方式查询待执行的任务,并在被允许执行的情况下执行该任务,从而提高任务处理效率。
可选地,作为一种可选的实施方式,如图2所示,上述任务处理方法包括:
步骤S202,服务器集群中的第一服务器向服务器集群中每个服务器发送第一状态查询请求,其中,第一状态查询请求用于查询是否存在待执行的子任务;
这里,第一服务器可以是周期性的向服务器集群中的每个服务器发送第一状态查询请求,查询是否寻找待执行的子任务。可以理解的是,由于服务器集群中的每个服务器均有可能接收到服务器集群以外的服务器发送的任务执行请求,故而第一服务器可以向包括自身在内的服务器集群中的每个服务器发送的第一状态查询请求,以查询是否存在可执行的子任务。
步骤S204,第一服务器获取服务器集群中的第二服务器发送的任务状态信息;
这里,第二服务器在接收到执行第一目标任务的任务请求时,可以生成第一目标任务的任务状态信息,第二服务器在接收到第一服务器发送的第一状态查询请求的情况下,响应可以第一状态查询请求将第一目标任务对应的任务状态信息发送至第一服务器,使得第一服务器可以查询是否存在待执行的子任务。可以理解的是,若第二服务器上接收到多个任务请求,且根据每一个任务请求生成了对应的任务状态信息,则在接收到第一服务器发送的第一状态查询请求的情况下,可以将每个任务请求对应的任务状态信息均发送至第一服务器。当然,第二服务器也可以将多个任务对应的任务状态信息记录在一个状态表中,将该状态表发送至第一服务器。
步骤S206,在任务状态信息指示第一目标任务中存在待执行的第一子任务、且第一服务器被允许执行第一子任务的情况下,第一服务器执行第一子任务,其中,第一目标任务包括多个子任务,服务器集群中包括多个服务器,每个服务器均被配置为允许执行第一目标任务中的任意一个子任务。这里,第一子任务可以是目标任务中第一个待执行的子任务,也可以是第一目标任务中已执行成功的子任务之后待执行的子任务,还可以是服务器集群中的第三服务器未执行成功的子任务,对此,本发明并不作出限定。可以理解的是,对于第一目标任务中可以包括一个或多个子任务,对于子任务的数量本发明并不作出限定。
这里,第一子任务可以是服务器集群中的第三服务器未执行成功的子任务。例如,在第三服务器执行第一子任务时,第二服务器中的第一目标任务的任务状态信息中第一子任务可以是处理任务处理中,从而其他服务器接收到第二服务器发送的任务状态信息的情况下,由于第一子任务为任务处理中,故而不会执行第一子任务。在第三服务器执行第一子任务的过程中,可以周期性的向第二服务器发送执行进度数据。若第三服务器发送故障,未能在规定周期内发出执行进度数据,则第二服务器在目标数量的周期未收到第三服务器发送的执行进度数据可以将任务状态信息中第一子任务的状态修改为待处理,从而在第一服务器周期性轮询时,接收到的第二服务器发送的任务状态信息中第一子任务的状态为待处理,且自身被允许执行的情况下,可以执行该第一子任务,从而使得即使第三服务器故障也不会影响任务的继续执行。
可以理解的是,这里的第一服务器被允许执行第一子任务可以是当前第一子任务未被其他服务器执行,处于待处理状态,同时,第一服务器当前能够处理该任务。以平台的安装包更新任务为例,包括参数校验、安装包上传、下载、入库等子任务。第一服务器可以执行参数校验、安装包上传、下载、入库中的任意一个子任务,但是由于服务器集群可能需要处理不同的集群以外的服务器发送的更新任务,第一服务器若当前正在处理上传任务,且第一服务器同时处理上传任务的执行上限为一个,则第一服务器在查询到第二服务器发送的第一目标任务的任务状态信息中的上传任务待执行的情况下,则无法执行该第一目标任务中的上传子任务,也就是不被允许执行。可以理解的是,若第一服务器可以同时处理多个上传任务,则在不超过上传任务处理上限的情况下,可以被允许执行第一目标任务中的上传任务。需要说明的是,若第一服务器可以同时处理上传任务和下载任务,则在第一服务器处理下载任务的过程中,还可以处理第一目标任务中的上传任务,从而提高处理的效率。当然,本发明并不限于上述举例。
在本发明实施例中,采用服务器集群执行第一目标任务,服务器集群中包括多个服务器,每个服务器均被配置为允许执行第一目标任务中的任意一个子任务,服务器集群中的第一服务器向每个服务器发送第一状态查询请求,通过第一状态查询请求查询是否存在待执行的子任务,在接收到服务器集群中的第二服务器发送的任务状态信息指示存在待执行的第一子任务、且被允许执行第一子任务的情况下,执行第一子任务的方式,通过将服务器集群中的每个服务器均配置为可以执行任务中的任意一个子任务,服务器集群中的服务器通过向每个服务器发送请求的方式,轮询是否存在待执行子任务,从而在允许执行的情况下执行子任务。同时,这里的第一子任务可以是第三服务器未执行成功的子任务,服务器集群中的服务器可以执行其他服务器未执行成功的子任务,从而无需等待单一服务器执行某一类型的任务,且在第三服务器未执行成功的情况下,可以由服务器集群中的其他服务器执行该未成功的子任务,提高任务处理效率。
可选的,在第一服务器获取服务器集群中的第二服务器发送的任务状态信息之后,方法还包括:在任务状态信息指示第一目标任务中存在待执行的第二子任务、且第一服务器被允许执行第二子任务的情况下,第一服务器执行第二子任务,其中,第二子任务是第一目标任务中已执行成功的子任务之后待执行的子任务,第二子任务是未被执行过的子任务,或者第二子任务是服务器集群中的第三服务器未执行成功的子任务。在本发明实施例中,第一服务器可以执行的任务包括:第三服务器未执行成功的子任务、在第一目标任务中存在的未被其他服务器处理过的子任务。在第一服务器被允许执行第二子任务的情况下,第一服务器可以执行第二子任务。需要说明的是,在本发明实施例中,第一服务器并不区分当前第一目标任务的任务状态信息所指示的待处理的子任务是否被其他服务器执行过,第一服务器可以只根据第一目标任务的任务状态信息确定是否存在待处理的子任务,并在被允许执行的情况下执行该子任务。
可选的,在第一服务器执行第一子任务的过程中,方法还包括:
S1,第一服务器周期性向第二服务器发送第一子任务的执行进度数据,其中,第二服务器用于在连续超过目标数量的周期仍未接收到执行进度数据的情况下将第一子任务的状态设置为待执行;
S2,在第一服务器执行成功第一子任务的情况下,第一服务器指示第二服务器将第一子任务的状态设置为已执行成功,并且在第一目标任务中存在位于第一子任务之后待执行的第三子任务的情况下,第一服务器指示第二服务器将第一目标任务的状态标记为存在待执行的第三子任务,在第一目标任务中位于第一子任务之后不存在待执行的子任务的情况下,第一服务器指示第二服务器将第一目标任务的状态标记为已完成。
可以理解的是,第一目标任务中的多个子任务中可能存在执行时序,也就是后一个子任务的开始执行需要等待上一个子任务执行完成,故而在本发明实施例中,为了避免执行子任务的服务器故障导致第一目标任务不能完成,第一服务器周期性的向第二服务器发送第一子任务的执行进度数据,从而告知第二服务器当前第一子任务的执行进度,使得第二服务器可以在目标数量的周期未接收到第一服务器发送的执行进度数据的情况下,将第一目标任务的任务状态信息中第一子任务修改为待执行状态,使得其他服务器通过轮询可以执行第一服务器未执行成功的第一子任务。
可以理解的是,在第一服务器成功执行第一子任务的情况下,第一服务器可以指示第二服务器将第一子任务的状态设备为已指示成功,同时在存在后续子任务的情况下,将后续子任务的状态修改为待执行,使得其他服务器可以通过轮询的方式查询到存在待执行的子任务。在不存在后续子任务的情况下,则可以指示第二服务器将第一目标任务标记为已完成。
可选的,在第一服务器执行第一子任务之后,方法还包括:
S1,在第一目标任务包括与第一子任务并行执行的并行子任务、并行子任务已成功执行、且第一目标任务中存在位于第一子任务之后待执行的第三子任务的情况下,第一服务器指示第二服务器将第一目标任务的状态标记为存在待执行的第三子任务;
S2,在第一目标任务包括与第一子任务并行执行的并行子任务、并行子任务已成功执行、且第一目标任务中位于第一子任务之后不存在待执行的子任务的情况下,第一服务器指示第二服务器将第一目标任务的状态标记为已完成。
在本发明实施例中,若后续子任务的启动需要在前子任务完成,若在前子任务存在多个,则第一服务器执行第一子任务之后,在存在于第一子任务并行执行的并行子任务,则在并行子任务完成的情况下,指示第二服务器将第一目标任务的状态标记为存在待执行的第三子任务,第三子任务为第一子任务和并行子任务之后的子任务。可以理解的是,在第一服务器执行完成第一子任务的情况下,若与第一子任务并行执行的并行子任务未执行完成,则第一服务器可以指示第二服务器将第一目标任务中的第一子任务的状态标记为执行完成,使得执行并行子任务的服务器在执行完成的情况下可以知晓第一子任务执行完成,这里,执行并行子任务的服务器指示第二服务器将第一目标任务的状态标记为存在待执行的第三子任务。可以理解的是,在在并行子任务执行完成,且第一子任务之后不存在待执行子任务的情况下,可以指示第二服务器将第一目标任务的状态标记为已完成。在本发明实施例中,通过上述方式可以将任务状态的更新由不同的执行子任务的服务器通知,从而无需第二服务器对第一目标任务的执行状态进行监控,通过子任务的执行分担状态的更新,可以减少每个服务器所耗费和占用的资源。
可选的,在第一服务器获取服务器集群中的第二服务器发送的任务状态信息之后、且在第一服务器执行第一子任务之前,方法还包括:第一服务器向第二服务器发送执行请求,其中,执行请求用于请求执行第一子任务;第一服务器获取第二服务器发送的执行响应;第一服务器执行第一子任务包括:在执行响应指示允许第一服务器执行第一子任务的情况下,第一服务器执行第一子任务,并指示第二服务器将第一子任务的状态标记为处理中。在本发明实施例中,在第一服务器允许被执行待执行的第一子任务的情况下,可以向第二服务器发送执行请求,并指示第二服务器将第一子任务的状态标记为处理中,使得其他服务器在查询时可以知晓第一子任务的状态,从而避免多个服务器同时执行相同的子任务。
可选的,在第一服务器指示第二服务器将第一子任务的状态标记为处理中时,方法还包括:在接收到第二服务器发送的用于指示第一子任务的状态已被第一服务器以外的服务器标记为处理中的响应消息的情况下,第一服务器不再执行第一子任务。可以理解的是,在本发明实施例中,在第一服务器接收到的第一目标任务的任务状态信息中第一子任务处于待执行状态,但是可能在第二服务器发出第一目标任务的任务状态信息之后,第一服务器发送执行请求之前,服务器集群中的其他服务器可能已经向第二服务器请求执行第一子任务,并且将第一子任务的状态修改为处理中。则在第一服务器发送执行请求的情况下,第二服务器响应第一服务器发送的执行请求,向第一服务器发送响应信息,告知第一服务器第一子任务的状态为处理中,则第一服务器不再执行第一子任务,从而避免了多个服务器同时执行相同的子任务。
如图3所示的,在本发明可选实施例中,上述方法还可以包括:
S302,第一服务器接收服务器集群以外的服务器发送的第二目标请求,其中,第二目标请求用于请求服务器集群中的服务器执行第二目标任务,其中,第二目标任务包括至少一个子任务;
S304,第一服务器创建第二目标任务对应的第二任务状态信息,其中,第二任务状态信息用于指示第二目标任务中的子任务的执行状态;
S306,第一服务器在接收到第二状态查询请求的情况下,响应第二状态查询请求,向发送第二状态查询请求的服务器发送第二任务状态信息,其中发送第二状态查询请求的服务器为服务器集群中的任意一个服务器。
在本发明实施例中,服务器集群中的每个服务器均可以接收服务器集群以外的服务器发送的任务请求,在第一服务器接收到第二目标请求的情况下,第一服务器创建第二目标请求所请求执行的第二目标任务的任务状态信息,从而使得服务器集群中的服务器在轮询时可以查询到第二目标任务的任务状态信息中所指示的待执行的子任务。可以理解的是,第一服务器自身也可以通过发送状态查询请求的方式轮询到第二目标任务的任务状态信息,且第一服务器自身也可以执行第二目标任务中的子任务。
在本发明可选实施例中,上述服务器集群中的服务器可以为区块链节点服务器。
下面结合图4-6,以游戏开发商服务器通过服务器集群更新安装包为例对本发明实施例作进一步的说明。
如图4所述的,游戏开发商服务器402可以向服务器集群404中的任意一个服务器发送更新安装包的请求。可以理解的是,游戏开发商服务器402可以是间接向服务器集群404中的服务器发送更新安装包请求。例如,游戏开发商服务器402向服务器集群404以外的用于接收开发商请求的服务器发送更新安装包请求,用于接收开发商请求的服务器将该更新安装包请求转发至服务器集群404中的任意一个服务器。
如图5所示的,
S501,游戏开发商服务器向服务器集群中的服务器2发送更新安装包的请求;
S502-2,服务器集群中的服务器1向服务器2发送请求,以请求执行更新安装包请求所对应的任务中的上传子任务;可以理解的是,服务器1可以通过向集群中的每个服务器发送查询请求以确定是否存在待执行的子任务;
S504,服务器1处理任务,也就是执行上传子任务;
S506,服务器1指示服务器2更新任务状态;这里,在服务器1执行完成上传子任务的情况下,可以指示服务器2将上传子任务的状态更新为执行完成状态,并指示服务器2将上传子任务之后的下载子任务的状态修改为待执行状态;
S502-4,服务器3向服务器2发送请求,以请求执行下载子任务;可以理解的是,这里每个服务器均可以执行该下载子任务;
S506,服务器3处理任务,也就是执行下载子任务;
S508,服务器3指示服务器2更新任务状态;这里,在服务器3执行完成下载子任务的情况下,可以指示服务器2将下载子任务的状态更新为执行完成状态,并指示服务器2将下载子任务之后的入库子任务的状态修改为待执行状态;
S502-6,服务器4向服务器2发送请求,以请求执行入库子任务;需要说明的是,在本发明实施例中,可以由同一服务器执行一个目标任务中的不同的子任务,例如,假设服务器1在服务器4之前请求执行入库子任务,则可以由服务器1执行该入库子任务;
S510,服务器4处理任务,也就是执行入库子任务;
S512,服务器4指示服务器2更新任务状态,在入库子任务之后不存在待执行的子任务的情况下,服务器4指示服务器2将游戏开发商服务器发送的更新安装包请求所对应的任务的状态标记为任务完成;
S514,服务器2在检测到任务的状态为任务完成的情况下,向游戏开发商服务器返回任务完成的完成结果。
如图6所示的,服务器2在接收到游戏开发商服务器发送的更新安装包请求的情况下,可以创建图6所示的任务列表。在任务列表中记录了全部待执行的子任务,每个服务器在执行完成一个子任务的情况下,可以指示服务器2对所执行的子任务的状态进行更新,还可以指示将之后的子任务的状态进行更新。
在本发明实施例中,通过异步化的机制执行任务,避免了阻塞等待的情况,提升了整体的执行效率。同时基于去中心化的分布式架构去承载任务的执行,当某个任务失败的时候可以交由别的服务器去处理,提升容错级别。同时在分布式的基础上实现了去中心化,降低了系统的维护成本,提升了容灾级别。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
根据本发明实施例的另一个方面,还提供了一种用于实施上述任务处理方法的任务处理装置。如图7所示,该装置包括:
第一查询单元702,用于通过服务器集群中的第一服务器向服务器集群中每个服务器发送第一状态查询请求,其中,第一状态查询请求用于查询是否存在待执行的子任务;
第一获取单元704,用于通过第一服务器获取服务器集群中的第二服务器发送的任务状态信息;
第一执行单元706,用于在任务状态信息指示第一目标任务中存在待执行的第一子任务、且第一服务器被允许执行第一子任务的情况下,通过第一服务器执行第一子任务,其中,第一目标任务包括多个子任务,服务器集群中包括多个服务器,每个服务器均被配置为允许执行第一目标任务中的任意一个子任务。
这里,第一服务器可以是周期性的向服务器集群中的每个服务器发送第一状态查询请求,查询是否寻找待执行的子任务。可以理解的是,由于服务器集群中的每个服务器均有可能接收到服务器集群以外的服务器发送的任务执行请求,故而第一服务器可以向包括自身在内的服务器集群中的每个服务器发送的第一状态查询请求,以查询是否存在可执行的子任务。
这里,第二服务器在接收到执行第一目标任务的任务请求时,可以生成第一目标任务的任务状态信息,第二服务器在接收到第一服务器发送的第一状态查询请求的情况下,响应可以第一状态查询请求将第一目标任务对应的任务状态信息发送至第一服务器,使得第一服务器可以查询是否存在待执行的子任务。可以理解的是,若第二服务器上接收到多个任务请求,且根据每一个任务请求生成了对应的任务状态信息,则在接收到第一服务器发送的第一状态查询请求的情况下,可以将每个任务请求对应的任务状态信息均发送至第一服务器。当然,第二服务器也可以将多个任务对应的任务状态信息记录在一个状态表中,将该状态表发送至第一服务器。
这里,第一子任务可以是服务器集群中的第三服务器未执行成功的子任务。例如,在第三服务器执行第一子任务时,第二服务器中的第一目标任务的任务状态信息中第一子任务可以是处理任务处理中,从而其他服务器接收到第二服务器发送的任务状态信息的情况下,由于第一子任务为任务处理中,故而不会执行第一子任务。在第三服务器执行第一子任务的过程中,可以周期性的向第二服务器发送执行进度数据。若第三服务器发送故障,未能在规定周期内发出执行进度数据,则第二服务器在目标数量的周期未收到第三服务器发送的执行进度数据可以将任务状态信息中第一子任务的状态修改为待处理,从而在第一服务器周期性轮询时,接收到的第二服务器发送的任务状态信息中第一子任务的状态为待处理,且自身被允许执行的情况下,可以执行该第一子任务,从而使得即使第三服务器故障也不会影响任务的继续执行。
在本发明实施例中,采用服务器集群执行第一目标任务,服务器集群中包括多个服务器,每个服务器均被配置为允许执行第一目标任务中的任意一个子任务,服务器集群中的第一服务器向每个服务器发送第一状态查询请求,通过第一状态查询请求查询是否存在待执行的子任务,在接收到服务器集群中的第二服务器发送的任务状态信息指示存在待执行的第一子任务、且被允许执行第一子任务的情况下,执行第一子任务的方式,这里的第一子任务可以是第三服务器未执行成功的子任务,通过将服务器集群中的每个服务器均配置为可以执行任务中的任意一个子任务,服务器集群中的服务器通过向每个服务器发送请求的方式,轮询是否存在待执行子任务,从而在允许执行的情况下执行子任务,且服务器集群中的服务器可以执行其他服务器未执行成功的子任务,从而无需等待单一服务器执行某一类型的任务,且在第三服务器未执行成功的情况下,可以由服务器集群中的其他服务器执行该未成功的子任务,提高任务处理效率。
可选的,上述装置还可以包括:第二执行单元,用于在任务状态信息指示第一目标任务中存在待执行的第二子任务、且第一服务器被允许执行第二子任务的情况下,通过第一服务器执行第二子任务,其中,第二子任务是第一目标任务中已执行成功的子任务之后待执行的子任务,第二子任务是未被执行过的子任务,或者第二子任务是服务器集群中的第三服务器未执行成功的子任务。在本发明实施例中,第一服务器可以执行的任务包括:第三服务器未执行成功的子任务、第一目标任务中未被其他服务器处理过的第二子任务。在第一服务器被允许执行第二子任务的情况下,第一服务器可以执行第二子任务。需要说明的是,在本发明实施例中,第一服务器并不区分当前第一目标任务的任务状态信息所指示的待处理的子任务是否被其他服务器执行过,第一服务器可以只根据第一目标任务的任务状态信息确定是否存在待处理的子任务,并在被允许执行的情况下执行该子任务。
可选的,上述装置还可以包括:第一发送单元,用于在第一服务器执行第一子任务的过程中,通过第一服务器周期性向第二服务器发送第一子任务的执行进度数据,其中,第二服务器用于在连续超过目标数量的周期仍未接收到执行进度数据的情况下将第一子任务的状态设置为待执行;第一处理单元,用于在第一服务器执行成功第一子任务的情况下,通过第一服务器指示第二服务器将第一子任务的状态设置为已执行成功,并且在第一目标任务中存在位于第一子任务之后待执行的第三子任务的情况下,通过第一服务器指示第二服务器将第一目标任务的状态标记为存在待执行的第三子任务,在第一目标任务中位于第一子任务之后不存在待执行的子任务的情况下,通过第一服务器指示第二服务器将第一目标任务的状态标记为已完成。
可以理解的是,第一目标任务中的多个子任务中可能存在执行时序,也就是后一个子任务的开始执行需要等待上一个子任务执行完成,故而在本发明实施例中,为了避免执行子任务的服务器故障导致第一目标任务不能完成,第一服务器周期性的向第二服务器发送第一子任务的执行进度数据,从而告知第二服务器当前第一子任务的执行进度,使得第二服务器可以在目标数量的周期未接收到第一服务器发送的执行进度数据的情况下,将第一目标任务的任务状态信息中第一子任务修改为待执行状态,使得其他服务器通过轮询可以执行第一服务器未执行成功的第一子任务。
可以理解的是,在第一服务器成功执行第一子任务的情况下,第一服务器可以指示第二服务器将第一子任务的状态设备为已指示成功,同时在存在后续子任务的情况下,将后续子任务的状态修改为待执行,使得其他服务器可以通过轮询的方式查询到存在待执行的子任务。在不存在后续子任务的情况下,则可以指示第二服务器将第一目标任务标记为已完成。
可选的,上述装置还可以包括:第二处理单元,用于在第一目标任务包括与第一子任务并行执行的并行子任务、并行子任务已成功执行、且第一目标任务中存在位于第一子任务之后待执行的第三子任务的情况下,通过第一服务器指示第二服务器将第一目标任务的状态标记为存在待执行的第三子任务;第三处理单元,用于在第一目标任务包括与第一子任务并行执行的并行子任务、并行子任务已成功执行、且第一目标任务中位于第一子任务之后不存在待执行的子任务的情况下,通过第一服务器指示第二服务器将第一目标任务的状态标记为已完成。
在本发明实施例中,若后续子任务的启动需要在前子任务完成,若在前子任务存在多个,则第一服务器执行第一子任务之后,在存在于第一子任务并行执行的并行子任务,则在并行子任务完成的情况下,指示第二服务器将第一目标任务的状态标记为存在待执行的第三子任务,第三子任务为第一子任务和并行子任务之后的子任务。可以理解的是,在第一服务器执行完成第一子任务的情况下,若与第一子任务并行执行的并行子任务未执行完成,则第一服务器可以指示第二服务器将第一目标任务中的第一子任务的状态标记为执行完成,使得执行并行子任务的服务器在执行完成的情况下可以知晓第一子任务执行完成,这里,执行并行子任务的服务器指示第二服务器将第一目标任务的状态标记为存在待执行的第三子任务。可以理解的是,在在并行子任务执行完成,且第一子任务之后不存在待执行子任务的情况下,可以指示第二服务器将第一目标任务的状态标记为已完成。在本发明实施例中,通过上述方式可以将任务状态的更新由不同的执行子任务的服务器通知,从而无需第二服务器对第一目标任务的执行状态进行监控,通过子任务的执行分担状态的更新,可以减少每个服务器所耗费和占用的资源。
可选的,上述装置还可以包括:第二发送单元,用于通过第一服务器向第二服务器发送执行请求,其中,执行请求用于请求执行第一子任务;第二获取单元,用于通过第一服务器获取第二服务器发送的执行响应;第一执行单元包括:执行模块,用于在执行响应指示允许第一服务器执行第一子任务的情况下,通过第一服务器执行第一子任务,并指示第二服务器将第一子任务的状态标记为处理中。在本发明实施例中,在第一服务器允许被执行待执行的第一子任务的情况下,可以向第二服务器发送执行请求,并指示第二服务器将第一子任务的状态标记为处理中,使得其他服务器在查询时可以知晓第一子任务的状态,从而避免多个服务器同时执行相同的子任务。
可选的,执行模块还用于:在通过第一服务器指示第二服务器将第一子任务的状态标记为处理中时,在接收到第二服务器发送的用于指示第一子任务的状态已被第一服务器以外的服务器标记为处理中的响应消息的情况下,控制第一服务器不再执行第一子任务。可以理解的是,在本发明实施例中,在第一服务器接收到的第一目标任务的任务状态信息中第一子任务处于待执行状态,但是可能在第二服务器发出第一目标任务的任务状态信息之后,第一服务器发送执行请求之前,服务器集群中的其他服务器可能已经向第二服务器请求执行第一子任务,并且将第一子任务的状态修改为处理中。则在第一服务器发送执行请求的情况下,第二服务器响应第一服务器发送的执行请求,向第一服务器发送响应信息,告知第一服务器第一子任务的状态为处理中,则第一服务器不再执行第一子任务,从而避免了多个服务器同时执行相同的子任务。
可选的,上述装置还可以包括:接收单元,用于通过第一服务器接收服务器集群以外的服务器发送的第二目标请求,其中,第二目标请求用于请求服务器集群中的服务器执行第二目标任务,其中,第二目标任务包括至少一个子任务;创建单元,用于通过第一服务器创建第二目标任务对应的第二任务状态信息,其中,第二任务状态信息用于指示第二目标任务中的子任务的执行状态;第三发送单元,用于通过第一服务器在接收到第二状态查询请求的情况下,响应第二状态查询请求,向发送第二状态查询请求的服务器发送第二任务状态信息,其中发送第二状态查询请求的服务器为服务器集群中的任意一个服务器。在本发明实施例中,服务器集群中的每个服务器均可以接收服务器集群以外的服务器发送的任务请求,在第一服务器接收到第二目标请求的情况下,第一服务器创建第二目标请求所请求执行的第二目标任务的任务状态信息,从而使得服务器集群中的服务器在轮询时可以查询到第二目标任务的任务状态信息中所指示的待执行的子任务。可以理解的是,第一服务器自身也可以通过发送状态查询请求的方式轮询到第二目标任务的任务状态信息,且第一服务器自身也可以执行第二目标任务中的子任务。
可选的,服务器集群中的服务器可以为区块链节点服务器。
根据本发明实施例的又一个方面,还提供了一种用于实施上述任务处理方法的电子装置,如图8所示,该电子装置包括存储器802和处理器804,该存储器802中存储有计算机程序,该处理器804被设置为通过计算机程序执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述电子装置可以位于计算机网络的多个网络设备中的至少一个网络设备。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,服务器集群中的第一服务器向服务器集群中每个服务器发送第一状态查询请求,其中,第一状态查询请求用于查询是否存在待执行的子任务;
S2,第一服务器获取服务器集群中的第二服务器发送的任务状态信息;
S3,在任务状态信息指示第一目标任务中存在待执行的第一子任务、且第一服务器被允许执行第一子任务的情况下,第一服务器执行第一子任务,其中,第一目标任务包括多个子任务,服务器集群中包括多个服务器,每个服务器均被配置为允许执行第一目标任务中的任意一个子任务。
可选地,本领域普通技术人员可以理解,图8所示的结构仅为示意,电子装置也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile Internet Devices,MID)、PAD等终端设备。图8其并不对上述电子装置的结构造成限定。例如,电子装置还可包括比图8中所示更多或者更少的组件(如网络接口等),或者具有与图8所示不同的配置。
其中,存储器802可用于存储软件程序以及模块,如本发明实施例中的任务处理方法和装置对应的程序指令/模块,处理器804通过运行存储在存储器802内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的任务处理方法。存储器802可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器802可进一步包括相对于处理器804远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。其中,存储器802具体可以但不限于用于存储执行子任务所需的数据等信息。作为一种示例,如图8所示,上述存储器802中可以但不限于包括上述任务处理装置中的第一查询单元702、第一获取单元704及第一执行单元706。此外,还可以包括但不限于上述任务处理装置中的其他模块单元,本示例中不再赘述。
可选地,上述的传输装置806用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置806包括一个网络适配器(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置806为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
此外,上述电子装置还包括:显示器808,用于显示执行的第一目标任务;和连接总线810,用于连接上述电子装置中的各个模块部件。
根据本发明的实施例的又一方面,还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,服务器集群中的第一服务器向服务器集群中每个服务器发送第一状态查询请求,其中,第一状态查询请求用于查询是否存在待执行的子任务;
S2,第一服务器获取服务器集群中的第二服务器发送的任务状态信息;
S3,在任务状态信息指示第一目标任务中存在待执行的第一子任务、且第一服务器被允许执行第一子任务的情况下,第一服务器执行第一子任务,其中,第一目标任务包括多个子任务,服务器集群中包括多个服务器,每个服务器均被配置为允许执行第一目标任务中的任意一个子任务。
可选地,在本实施例中,本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random Access Memory,RAM)、磁盘或光盘等。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (11)
1.一种任务处理方法,其特征在于,包括:
服务器集群中的第一服务器向所述服务器集群中每个服务器发送第一状态查询请求,其中,所述第一状态查询请求用于查询是否存在待执行的子任务;
所述第一服务器获取所述服务器集群中的第二服务器发送的任务状态信息;
在所述任务状态信息指示第一目标任务中存在待执行的第一子任务、且所述第一服务器被允许执行所述第一子任务的情况下,所述第一服务器执行所述第一子任务,其中,所述第一目标任务包括多个子任务,所述多个子任务中存在执行时序,所述服务器集群中包括多个服务器,每个所述服务器均被配置为允许执行所述第一目标任务中的任意一个所述子任务;
在所述第一服务器执行所述第一子任务的过程中,所述第一服务器周期性向所述第二服务器发送所述第一子任务的执行进度数据,其中,所述第二服务器用于在连续超过目标数量的周期仍未接收到所述执行进度数据的情况下将所述第一子任务的状态设置为待执行,使得所述服务器集群中的其他服务器通过轮询可以执行所述第一服务器未执行成功的所述第一子任务;
在所述第一服务器执行所述第一子任务之后,在所述第一目标任务包括与所述第一子任务并行执行的并行子任务、所述并行子任务已成功执行、且所述第一目标任务中存在位于所述第一子任务之后待执行的第三子任务的情况下,所述第一服务器指示所述第二服务器将所述第一目标任务的状态标记为存在待执行的第三子任务。
2.根据权利要求1所述的方法,其特征在于,在所述第一服务器获取所述服务器集群中的第二服务器发送的任务状态信息之后,所述方法还包括:
在所述任务状态信息指示第一目标任务中存在待执行的第二子任务、且所述第一服务器被允许执行所述第二子任务的情况下,所述第一服务器执行所述第二子任务,其中,所述第二子任务是未被执行过的子任务,或者所述第二子任务是所述服务器集群中的第三服务器未执行成功的子任务。
3.根据权利要求1所述的方法,其特征在于,在所述第一服务器执行所述第一子任务的过程中,所述方法还包括:
在所述第一服务器执行成功所述第一子任务的情况下,所述第一服务器指示所述第二服务器将所述第一子任务的状态设置为已执行成功,并且在所述第一目标任务中存在位于所述第一子任务之后待执行的第三子任务的情况下,所述第一服务器指示所述第二服务器将所述第一目标任务的状态标记为存在待执行的第三子任务,在所述第一目标任务中位于所述第一子任务之后不存在待执行的子任务的情况下,所述第一服务器指示所述第二服务器将所述第一目标任务的状态标记为已完成。
4.根据权利要求1所述的方法,其特征在于,在所述第一服务器执行所述第一子任务之后,所述方法还包括:
在所述第一目标任务包括与所述第一子任务并行执行的并行子任务、所述并行子任务已成功执行、且所述第一目标任务中位于所述第一子任务之后不存在待执行的子任务的情况下,所述第一服务器指示所述第二服务器将所述第一目标任务的状态标记为已完成。
5.根据权利要求1所述的方法,其特征在于,
在所述第一服务器获取所述服务器集群中的第二服务器发送的任务状态信息之后、且在所述第一服务器执行所述第一子任务之前,所述方法还包括:所述第一服务器向所述第二服务器发送执行请求,其中,所述执行请求用于请求执行所述第一子任务;所述第一服务器获取所述第二服务器发送的执行响应;
所述第一服务器执行所述第一子任务包括:在所述执行响应指示允许所述第一服务器执行所述第一子任务的情况下,所述第一服务器执行所述第一子任务,并指示所述第二服务器将所述第一子任务的状态标记为处理中。
6.根据权利要求5所述的方法,其特征在于,在所述第一服务器指示所述第二服务器将所述第一子任务的状态标记为处理中时,所述方法还包括:
在接收到所述第二服务器发送的用于指示所述第一子任务的状态已被所述第一服务器以外的服务器标记为处理中的响应消息的情况下,所述第一服务器不再执行所述第一子任务。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述方法还包括:
所述第一服务器接收所述服务器集群以外的服务器发送的第二目标请求,其中,所述第二目标请求用于请求所述服务器集群中的服务器执行第二目标任务,其中,所述第二目标任务包括至少一个子任务;
所述第一服务器创建所述第二目标任务对应的第二任务状态信息,其中,第二任务状态信息用于指示所述第二目标任务中的子任务的执行状态;
所述第一服务器在接收到第二状态查询请求的情况下,响应所述第二状态查询请求,向发送所述第二状态查询请求的服务器发送所述第二任务状态信息,其中发送所述第二状态查询请求的服务器为所述服务器集群中的任意一个服务器。
8.根据权利要求1至6中任一项所述的方法,其特征在于,所述服务器集群中的所述服务器为区块链节点服务器。
9.一种任务处理装置,其特征在于,包括:
第一查询单元,用于通过服务器集群中的第一服务器向所述服务器集群中每个服务器发送第一状态查询请求,其中,所述第一状态查询请求用于查询是否存在待执行的子任务;
第一获取单元,用于通过所述第一服务器获取所述服务器集群中的第二服务器发送的任务状态信息;
第一执行单元,用于在所述任务状态信息指示第一目标任务中存在待执行的第一子任务、且所述第一服务器被允许执行所述第一子任务的情况下,通过所述第一服务器执行所述第一子任务,其中,所述第一目标任务包括多个子任务,所述多个子任务中存在执行时序,所述服务器集群中包括多个服务器,每个所述服务器均被配置为允许执行所述第一目标任务中的任意一个所述子任务;
第一处理单元,用于在所述第一服务器执行所述第一子任务的过程中,所述第一服务器周期性向所述第二服务器发送所述第一子任务的执行进度数据,其中,所述第二服务器用于在连续超过目标数量的周期仍未接收到所述执行进度数据的情况下将所述第一子任务的状态设置为待执行,使得所述服务器集群中的其他服务器通过轮询可以执行所述第一服务器未执行成功的所述第一子任务;
所述装置还用于,在所述第一服务器执行所述第一子任务之后,在所述第一目标任务包括与所述第一子任务并行执行的并行子任务、所述并行子任务已成功执行、且所述第一目标任务中存在位于所述第一子任务之后待执行的第三子任务的情况下,所述第一服务器指示所述第二服务器将所述第一目标任务的状态标记为存在待执行的第三子任务。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
接收单元,用于通过所述第一服务器接收所述服务器集群以外的服务器发送的第二目标请求,其中,所述第二目标请求用于请求所述服务器集群中的服务器执行第二目标任务,其中,所述第二目标任务包括至少一个子任务;
创建单元,用于通过所述第一服务器创建所述第二目标任务对应的第二任务状态信息,其中,第二任务状态信息用于指示所述第二目标任务中的子任务的执行状态;
第三发送单元,用于通过所述第一服务器在接收到第二状态查询请求的情况下,响应所述第二状态查询请求,向发送所述第二状态查询请求的服务器发送所述第二任务状态信息,其中发送所述第二状态查询请求的服务器为所述服务器集群中的任意一个服务器。
11.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,所述程序运行时执行上述权利要求1至8任一项中所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910780673.6A CN110532077B (zh) | 2019-08-22 | 2019-08-22 | 任务处理方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910780673.6A CN110532077B (zh) | 2019-08-22 | 2019-08-22 | 任务处理方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110532077A CN110532077A (zh) | 2019-12-03 |
CN110532077B true CN110532077B (zh) | 2021-12-07 |
Family
ID=68662588
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910780673.6A Active CN110532077B (zh) | 2019-08-22 | 2019-08-22 | 任务处理方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110532077B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111135563B (zh) * | 2019-12-16 | 2024-02-23 | 北京像素软件科技股份有限公司 | 任务处理方法、装置、电子设备和计算机可读存储介质 |
CN113467908B (zh) * | 2021-06-23 | 2024-02-20 | 深圳市蘑菇财富技术有限公司 | 任务执行方法、装置、计算机可读存储介质及终端设备 |
CN113476834B (zh) * | 2021-07-06 | 2024-06-25 | 网易(杭州)网络有限公司 | 游戏中的任务执行方法、装置、电子设备及存储介质 |
CN113783731A (zh) * | 2021-09-15 | 2021-12-10 | 云茂互联智能科技(厦门)有限公司 | 边缘服务器的控制方法、装置、存储介质及电子装置 |
CN114610461B (zh) * | 2022-03-17 | 2023-06-09 | 北京火山引擎科技有限公司 | 一种任务处理方法及装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104239148A (zh) * | 2013-06-06 | 2014-12-24 | 腾讯科技(深圳)有限公司 | 一种分布式任务调度方法及装置 |
CN104731663A (zh) * | 2015-03-31 | 2015-06-24 | 北京奇艺世纪科技有限公司 | 任务处理方法及系统 |
CN106844018A (zh) * | 2015-12-07 | 2017-06-13 | 阿里巴巴集团控股有限公司 | 一种任务处理方法、装置及系统 |
CN108228326A (zh) * | 2017-12-29 | 2018-06-29 | 深圳乐信软件技术有限公司 | 批量任务处理方法和分布式系统 |
CN108287756A (zh) * | 2018-01-25 | 2018-07-17 | 联动优势科技有限公司 | 一种处理任务的方法及装置 |
KR20180097904A (ko) * | 2017-02-24 | 2018-09-03 | 한국전자통신연구원 | 클라우드 플랫폼 상에서의 고속 비디오 편집 방법 및 그 장치 |
CN110134499A (zh) * | 2019-03-29 | 2019-08-16 | 新智云数据服务有限公司 | 任务调度方法、任务调度系统、存储介质和计算机设备 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2296799A (en) * | 1995-01-06 | 1996-07-10 | Ibm | Processing parallel data queries |
US7730119B2 (en) * | 2006-07-21 | 2010-06-01 | Sony Computer Entertainment Inc. | Sub-task processor distribution scheduling |
US20130081050A1 (en) * | 2011-09-23 | 2013-03-28 | Elwha LLC, a limited liability company of the State of Delaware | Acquiring and transmitting tasks and subtasks to interface devices |
TWI474673B (zh) * | 2012-12-06 | 2015-02-21 | Inst Information Industry | 工作負載分配裝置及其工作負載分配方法 |
CN106339260B (zh) * | 2016-08-19 | 2020-11-20 | 北京小米移动软件有限公司 | 基于Jenkins平台的任务分配方法及装置 |
CN109743390B (zh) * | 2019-01-04 | 2022-02-22 | 深圳壹账通智能科技有限公司 | 任务调度方法、装置、计算机设备和存储介质 |
CN109831520A (zh) * | 2019-03-07 | 2019-05-31 | 网宿科技股份有限公司 | 一种定时任务调度方法及相关装置 |
-
2019
- 2019-08-22 CN CN201910780673.6A patent/CN110532077B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104239148A (zh) * | 2013-06-06 | 2014-12-24 | 腾讯科技(深圳)有限公司 | 一种分布式任务调度方法及装置 |
CN104731663A (zh) * | 2015-03-31 | 2015-06-24 | 北京奇艺世纪科技有限公司 | 任务处理方法及系统 |
CN106844018A (zh) * | 2015-12-07 | 2017-06-13 | 阿里巴巴集团控股有限公司 | 一种任务处理方法、装置及系统 |
KR20180097904A (ko) * | 2017-02-24 | 2018-09-03 | 한국전자통신연구원 | 클라우드 플랫폼 상에서의 고속 비디오 편집 방법 및 그 장치 |
CN108228326A (zh) * | 2017-12-29 | 2018-06-29 | 深圳乐信软件技术有限公司 | 批量任务处理方法和分布式系统 |
CN108287756A (zh) * | 2018-01-25 | 2018-07-17 | 联动优势科技有限公司 | 一种处理任务的方法及装置 |
CN110134499A (zh) * | 2019-03-29 | 2019-08-16 | 新智云数据服务有限公司 | 任务调度方法、任务调度系统、存储介质和计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110532077A (zh) | 2019-12-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110532077B (zh) | 任务处理方法、装置及存储介质 | |
CN112632566B (zh) | 漏洞扫描方法和装置、存储介质及电子设备 | |
CN112087327B (zh) | 信息状态获取方法和装置、存储介质和电子装置 | |
WO2014117094A2 (en) | Device management service | |
CN112689316B (zh) | 智能设备的绑定方法、装置和存储介质及电子装置 | |
CN113347257A (zh) | 通信方法、装置、服务器及存储介质 | |
CN115454636A (zh) | 一种容器云平台gpu资源调度方法、装置及应用 | |
CN111353136B (zh) | 一种操作请求的处理方法和装置 | |
JP5517463B2 (ja) | シンクライアントシステム、管理サーバおよびシンクライアント端末 | |
CN113709247A (zh) | 资源获取方法、装置、系统、电子设备及存储介质 | |
CN115023919A (zh) | 防火墙规则的更新方法、装置、服务器及存储介质 | |
CN112748961A (zh) | 启动任务的执行方法和装置 | |
CN109936609B (zh) | 终端链式升级方法、装置及升级管理服务器 | |
CN111937013B (zh) | 电子设备管理 | |
CN116346834A (zh) | 一种会话同步方法、装置、计算设备及计算机存储介质 | |
CN110474954B (zh) | 基于区块链的文件分享方法、装置、计算机设备及可读存储介质 | |
CN114138895A (zh) | 多数据源的数据同步方法、装置、计算机设备和存储介质 | |
CN113504981A (zh) | 任务调度方法和装置、存储介质及电子设备 | |
CN111200560B (zh) | 微服务注册方法、装置、设备及存储介质 | |
CN113535402A (zh) | 基于5g mec的负载均衡处理方法、装置及电子设备 | |
JP5687225B2 (ja) | 分散システム、バージョン情報の流通方法、バージョン情報流通プログラム | |
CN116302618B (zh) | 一种会话信息处理方法及装置 | |
JP7189984B2 (ja) | ゲートウェイ装置、実行プログラム更新方法、サーバ、および実行プログラム更新システム | |
CN110830528A (zh) | 一种用于分布式定时开关控制的方法和装置 | |
JP6083210B2 (ja) | 認証情報管理システム、認証情報管理方法、認証情報管理プログラム、及び、検索システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |