CN113238820A - 任务处理方法、装置、服务器及存储介质 - Google Patents
任务处理方法、装置、服务器及存储介质 Download PDFInfo
- Publication number
- CN113238820A CN113238820A CN202110516667.7A CN202110516667A CN113238820A CN 113238820 A CN113238820 A CN 113238820A CN 202110516667 A CN202110516667 A CN 202110516667A CN 113238820 A CN113238820 A CN 113238820A
- Authority
- CN
- China
- Prior art keywords
- task
- packing
- packaging
- processing
- state
- 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.)
- Pending
Links
Images
Classifications
-
- 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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1438—Restarting or rejuvenating
-
- 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4418—Suspend and resume; Hibernate and awake
-
- 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/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Computer And Data Communications (AREA)
Abstract
本公开关于一种任务处理方法、装置、服务器及存储介质,该方法包括:通过至少两个打包设备,从打包任务队列中选取出相应的打包任务进行处理;所述打包任务队列用于按照接收到的打包任务的请求时间,存储所述接收到的打包任务;当至少一个打包设备处理完对应的打包任务时,则通过所述至少一个打包设备从所述打包任务队列中选取出目标打包任务进行处理,直到所述打包任务队列中的打包任务处理完毕;所述目标打包任务为所述打包任务队列中,未被选取的打包任务中的第一个打包任务。采用本方法,有利于提高任务处理效率。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及一种任务处理方法、装置、电子设备及存储介质。
背景技术
在某些业务场景中,需要对打包任务进行处理,比如游戏包。
相关技术中,通常通过一台打包设备对打包任务进行处理,当出现多个打包任务需要处理时,需要耗费打包设备较长处理时间,导致任务处理效率较低。
发明内容
本公开提供一种任务处理方法、装置、服务器及存储介质,以至少解决相关技术中任务处理效率较低的问题。本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种任务处理方法,包括:
通过至少两个打包设备,从打包任务队列中选取出相应的打包任务进行处理;所述打包任务队列用于按照接收到的打包任务的请求时间,存储所述接收到的打包任务;
当至少一个打包设备处理完对应的打包任务时,则通过所述至少一个打包设备从所述打包任务队列中选取出目标打包任务进行处理,直到所述打包任务队列中的打包任务处理完毕;所述目标打包任务为所述打包任务队列中,未被选取的打包任务中的第一个打包任务。
在一示例性实施例中,在通过至少两个打包设备,从打包任务队列中选取出相应的打包任务进行处理之前,还包括:
接收打包任务;
按照所述打包任务的请求时间,将所述打包任务存储至所述打包任务队列中,并将所述打包任务的任务状态标记为未处理状态。
在一示例性实施例中,在通过至少两个打包设备,从打包任务队列中选取出相应的打包任务进行处理之后,还包括:
将所述打包任务队列中的所述选取出的打包任务的任务状态,从未处理状态切换为处理中状态,并记录选取出所述打包任务的打包设备的设备标识;
在通过所述至少一个打包设备从所述打包任务队列中取出目标打包任务进行处理之前,还包括:
当至少一个打包设备处理完对应的打包任务时,将所述打包任务队列中对应的已完成的打包任务的任务状态,从处理中状态切换为处理完成状态。
在一示例性实施例中,在通过至少两个打包设备,从打包任务队列中选取出相应的打包任务进行处理之后,还包括:
若所述打包设备重启,则查询所述打包任务队列中是否存储有设备标识为所述打包设备的设备标识,且任务状态为处理中状态的打包任务;
若所述打包任务队列中存储有设备标识为所述打包设备的设备标识,且任务状态为处理中状态的打包任务,则通过所述打包设备对所述打包任务进行处理。
在一示例性实施例中,在若所述打包设备重启,则查询所述打包任务队列中是否存储有设备标识为所述打包设备的设备标识,且任务状态为处理中状态的打包任务之后,还包括:
若所述打包任务队列中未存储有设备标识为所述打包设备的设备标识,且任务状态为处理中状态的打包任务,则通过所述打包设备重新从所述打包任务队列中选取出目标打包任务进行处理。
在一示例性实施例中,所述方法还包括:
若所述打包任务队列中的打包任务处理完毕,则控制所述打包设备进入睡眠状态。
在一示例性实施例中,在控制所述打包设备进入睡眠状态之后,还包括:
根据预设频率,检测所述打包任务队列中是否存储有任务状态为未处理状态的打包任务;
若所述打包任务队列中存储有任务状态为未处理状态的打包任务,则唤醒进入睡眠状态的打包设备;
通过所述打包设备对所述任务状态为未处理状态的打包任务进行处理。
根据本公开实施例的第二方面,提供一种任务处理装置,包括:
第一任务处理单元,被配置为执行通过至少两个打包设备,从打包任务队列中选取出相应的打包任务进行处理;所述打包任务队列用于按照接收到的打包任务的请求时间,存储所述接收到的打包任务;
第二任务处理单元,被配置为执行当至少一个打包设备处理完对应的打包任务时,则通过所述至少一个打包设备从所述打包任务队列中选取出目标打包任务进行处理,直到所述打包任务队列中的打包任务处理完毕;所述目标打包任务为所述打包任务队列中,未被选取的打包任务中的第一个打包任务。
在一示例性实施例中,所述任务处理装置还包括任务存储单元,被配置为执行接收打包任务;按照所述打包任务的请求时间,将所述打包任务存储至所述打包任务队列中,并将所述打包任务的任务状态标记为未处理状态。
在一示例性实施例中,所述任务处理装置还包括第一切换单元,被配置为执行将所述打包任务队列中的所述选取出的打包任务的任务状态,从未处理状态切换为处理中状态,并记录选取出所述打包任务的打包设备的设备标识;
所述任务处理装置还包括第二切换单元,被配置为执行当至少一个打包设备处理完对应的打包任务时,将所述打包任务队列中对应的已完成的打包任务的任务状态,从处理中状态切换为处理完成状态。
在一示例性实施例中,所述任务处理装置还包括任务查询单元,被配置为执行若所述打包设备重启,则查询所述打包任务队列中是否存储有设备标识为所述打包设备的设备标识,且任务状态为处理中状态的打包任务;若所述打包任务队列中存储有设备标识为所述打包设备的设备标识,且任务状态为处理中状态的打包任务,则通过所述打包设备对所述打包任务进行处理。
在一示例性实施例中,所述任务处理装置还包括任务选取单元,被配置为执行若所述打包任务队列中未存储有设备标识为所述打包设备的设备标识,且任务状态为处理中状态的打包任务,则通过所述打包设备重新从所述打包任务队列中选取出目标打包任务进行处理。
在一示例性实施例中,所述任务处理装置还包括设备控制单元,被配置为执行若所述打包任务队列中的打包任务处理完毕,则控制所述打包设备进入睡眠状态。
在一示例性实施例中,所述任务处理装置还包括任务检测单元,被配置为执行根据预设频率,检测所述打包任务队列中是否存储有任务状态为未处理状态的打包任务;若所述打包任务队列中存储有任务状态为未处理状态的打包任务,则唤醒进入睡眠状态的打包设备;通过所述打包设备对所述任务状态为未处理状态的打包任务进行处理。
根据本公开实施例的第三方面,提供一种服务器,包括:处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令,以实现如第一方面的任一项实施例中所述的任务处理方法。
根据本公开实施例的第四方面,提供一种计算机可读存储介质,包括:当所述计算机可读存储介质中的指令由服务器的处理器执行时,使得所述服务器能够执行第一方面的任一项实施例中所述的任务处理方法。
根据本公开实施例的第五方面,提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序存储在计算机可读存储介质中,设备的至少一个处理器从所述计算机可读存储介质读取并执行所述计算机程序,使得设备执行第一方面的任一项实施例中所述的任务处理方法。
本公开的实施例提供的技术方案至少带来以下有益效果:
通过至少两个打包设备,从打包任务队列中选取出相应的打包任务进行处理;打包任务队列用于按照接收到的打包任务的请求时间,存储接收到的打包任务;当至少一个打包设备处理完对应的打包任务时,则通过至少一个打包设备从打包任务队列中选取出目标打包任务进行处理,直到打包任务队列中的打包任务处理完毕;目标打包任务为打包任务队列中,未被选取的打包任务中的第一个打包任务;这样,实现了在出现大量打包任务的情况下,通过多个打包设备对打包任务进行处理的目的,有利于缩短任务处理时间,进而提高了任务处理效率,避免了通过一台打包设备对所有的打包任务进行处理,导致任务处理效率较低的缺陷。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是根据一示例性实施例示出的一种任务处理方法的应用环境图。
图2是根据一示例性实施例示出的一种任务处理法的流程图。
图3是根据一示例性实施例示出的另一种任务处理法的流程图。
图4是根据一示例性实施例示出的机器重启时的任务处理方法的流程图。
图5是根据一示例性实施例示出的一种任务处理装置的框图。
图6是根据一示例性实施例示出的一种服务器的框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
本公开所提供的任务处理方法,可以应用于如图1所示的应用环境中。其中,该应用环境中包括打包系统,打包系统中包括多个打包设备110,比如打包设备110a、打包设备110b···打包设备110n,每个打包设备用于从存储有多个打包任务的打包任务队列中,选取出相应的打包任务进行处理;具体地,参考图1,在出现大量打包任务的情况下,通过至少两个打包设备110,从打包任务队列中选取出相应的打包任务进行处理;打包任务队列用于按照接收到的打包任务的请求时间,存储接收到的打包任务;当至少一个打包设备110处理完对应的打包任务时,则通过至少一个打包设备110从打包任务队列中选取出目标打包任务进行处理,直到打包任务队列中的打包任务处理完毕;目标打包任务为打包任务队列中,未被选取的打包任务中的第一个打包任务。其中,打包设备110是指处理打包任务的计算机设备,可以是指服务器、承载有打包服务的物理机等。
图2是根据一示例性实施例示出的一种任务处理方法的流程图,如图2所示,任务处理方法用于如图1所示的打包设备中,包括以下步骤:
在步骤S210中,通过至少两个打包设备,从打包任务队列中选取出相应的打包任务进行处理;打包任务队列用于按照接收到的打包任务的请求时间,存储接收到的打包任务。
其中,打包任务是指对数据包进行打包的任务,数据包是指需要占用较大内存的数据包,比如游戏包。打包任务的请求时间是指请求执行打包任务的时间。需要说明的是,至少两个打包设备,是指两个或者两个以上打包设备。
其中,打包任务队列中存储有多个打包任务,这些打包任务是按照对应的请求时间的先后顺序排序的,比如请求时间较早的打包任务排在前面,请求时间较晚的打包任务排在后面,例如,在打包任务队列中,排在第一的是打包任务1,排在第二的是打包任务2,排在第三的是打包任务3。需要说明的是,每个打包设备在接收到新增的打包任务之后,按照打包任务的请求时间,将打包任务存储在同一个打包任务队列中;而且,每次新增打包任务时,有且仅有一个打包设备接收新增打包任务,并将其存储至打包任务队列中,保证了打包任务队列中的打包任务的唯一性。
具体地,至少两个打包设备中的一个打包设备接收新增的打包任务,并将打包任务按照对应的请求时间存储至打包任务队列中,以通过同一个打包任务队列存储接收到的打包任务;此后,每个打包设备查询本设备是否有执行的打包任务,若没有,则从打包任务队列中选取出相应的打包任务进行处理。
需要说明的是,一开始执行打包任务的时候,每个打包设备都从打包任务队列中选取出相应的打包任务进行处理;此后,每个打包设备在执行完当前的打包任务之后,再从打包任务队列中选取出相应的打包任务进行处理。
在步骤S220中,当至少一个打包设备处理完对应的打包任务时,则通过至少一个打包设备从打包任务队列中选取出目标打包任务进行处理,直到打包任务队列中的打包任务处理完毕;目标打包任务为打包任务队列中,未被选取的打包任务中的第一个打包任务。
其中,打包任务队列中未被选取的打包任务,是指需要被选取并处理的打包任务。
具体地,在每个打包设备从打包任务队列中选取出相应的打包任务进行处理之后,每个打包设备都实时监控本设备的打包任务是否执行完成,当至少一个打包设备处理完对应的打包任务时,则通过至少一个打包设备从打包任务队列中选取出未被选取的打包任务中的第一个打包任务进行处理;以此类推,直到打包任务队列中的打包任务被处理完毕,则所有打包设备进入休眠状态。这样,实现了在出现大量打包任务的情况下,通过多个打包设备对打包任务进行处理的目的,有利于缩短任务处理时间,进而提高了任务处理效率。
上述任务处理方法中,通过至少两个打包设备,从打包任务队列中选取出相应的打包任务进行处理;打包任务队列用于按照接收到的打包任务的请求时间,存储接收到的打包任务;当至少一个打包设备处理完对应的打包任务时,则通过至少一个打包设备从打包任务队列中选取出目标打包任务进行处理,直到打包任务队列中的打包任务处理完毕;目标打包任务为打包任务队列中,未被选取的打包任务中的第一个打包任务;这样,实现了在出现大量打包任务的情况下,通过多个打包设备对打包任务进行处理的目的,有利于缩短任务处理时间,进而提高了任务处理效率,避免了通过一台打包设备对所有的打包任务进行处理,导致任务处理效率较低的缺陷。
在一示例性实施例中,上述步骤S210,在通过至少两个打包设备,从打包任务队列中选取出相应的打包任务进行处理之前,还包括:接收打包任务;按照打包任务的请求时间,将打包任务存储至打包任务队列中,并将打包任务的任务状态标记为未处理状态。
其中,任务状态用于表征打包任务的处理情况,比如未处理状态、处理中状态、处理完成状态。
具体地,当出现新增打包任务时,通过所有打包设备中的一个打包设备接收该打包任务;例如,指定某个打包设备接收该打包任务,也可以是通过处于空闲状态的一个打包设备接收该打包任务;接着,该打包设备按照该打包任务的请求时间,将该打包任务存储至打包任务队列中,比如将打包任务插入在打包任务队列中的最后一个打包任务之后;同时,将该打包任务的任务状态标记为未处理状态,比如将打包任务的任务状态标记为0,用0表示该打包任务处于未处理状态。这样,通过同一个打包任务队列,可以存储新增的打包任务。
当然,当打包任务发送给哪个打包设备时,则由该打包设备将该打包任务对应添加到打包任务队列中;例如,打包设备接收打包请求,并对打包请求进行解析,得到新增的打包任务,将该新增的打包任务存储至打包任务队列中。
本公开实施例提供的技术方案,在新增打包任务时,通过所有打包设备中的一个打包设备接收新增的打包任务,并将其按顺序存储至同一个打包任务队列中,有利于保证打包任务队列中存储的打包任务的唯一性。
在一示例性实施例中,上述步骤S210,在通过至少两个打包设备,从打包任务队列中选取出相应的打包任务进行处理之后,还包括:将打包任务队列中的选取出的打包任务的任务状态,从未处理状态切换为处理中状态,并记录选取出打包任务的打包设备的设备标识。
其中,打包设备的设备标识是指打包设备的唯一标识信息,比如设备编号、设备名称等。
具体地,当打包设备从打包任务队列中选取出相应的打包任务并对其进行处理之后,该打包设备将打包任务队列中被选取出的打包任务的任务状态,从未处理状态切换为处理中状态,并获取该打包设备的设备标识,作为该打包任务对应的设备标识。
例如,打包设备A从打包任务队列中选取出打包任务3并对其进行处理之后,将打包任务队列中的打包任务3的任务状态从0更新为1,用1表示打包任务3处于处理中状态,并记录打包设备A的设备名称,得到一条数据记录:打包任务3--1--打包设备A。
进一步地,上述步骤S220,在通过至少一个打包设备从打包任务队列中取出目标打包任务进行处理之前,还包括:当至少一个打包设备处理完对应的打包任务时,将打包任务队列中对应的已完成的打包任务的任务状态,从处理中状态切换为处理完成状态。
具体地,当打包设备处理完对应的打包任务时,该打包设备将打包任务队列中该打包任务的任务状态,从处理中状态切换为处理完成状态,以说明该打包任务已处理完毕,无需再对其进行处理。
例如,打包设备A处理完打包任务3之后,将打包任务队列中打包任务3的任务状态从1更新为2,用2表示打包任务3处于处理完成状态,从而得到一条新的数据记录:打包任务3--2--打包设备A。
本公开实施例提供的技术方案,当打包设备从打包任务队列中选取出相应的打包任务进行处理之后,将打包任务队列中的选取出的打包任务的任务状态,从未处理状态切换为处理中状态;当打包设备处理完对应的打包任务时,将打包任务队列中对应的已完成的打包任务的任务状态,从处理中状态切换为处理完成状态,有利于保证打包任务队列中存储的打包任务的任务状态的唯一性;同时,通过记录打包任务对应的打包设备的设备标识,有利于在出现异常状况时,依然通过同一个打包设备继续完成之前未处理完的打包任务,避免打包任务的处理过程中出现错误。
在一示例性实施例中,上述步骤S210,在通过至少两个打包设备,从打包任务队列中选取出相应的打包任务进行处理之后,还包括:若打包设备重启,则查询打包任务队列中是否存储有设备标识为打包设备的设备标识,且任务状态为处理中状态的打包任务;若打包任务队列中存储有设备标识为打包设备的设备标识,且任务状态为处理中状态的打包任务,则通过打包设备对打包任务进行处理。
其中,打包设备重启可以是至打包设备自身重启,也可以是至打包设备上部署的打包程序重启。
其中,设备标识为打包设备的设备标识,且任务状态为处理中状态的打包任务,为该打包设备上一次未完成的打包任务。
具体地,在打包设备重启时,实际上该打包设备上一次的打包任务并未完成,并且在打包任务队列中永远存在一个设备标识为该打包设备的设备标识,且任务状态为处理中状态的打包任务;因此,在打包设备重启时,会有一个前置查询的步骤,比如先查询打包任务队列中是否存储有设备标识为该打包设备的设备标识,且任务状态为处理中状态的打包任务,若有,则通过该打包设备继续对该打包任务进行处理,保证了在异常情况下,打包任务队列中存储的打包任务都能被完成,不会出现遗漏。
例如,当打包设备A在处理打包任务3的过程中出现异常,导致打包设备A重启;那么,当打包设备A重启时,打包设备A会先查询打包任务队列中是否存储有设备标识为打包设备A的设备标识,且任务状态标记为1的打包任务3,若有,则通过打包设备A继续对打包任务3进行处理,比如直接对打包任务3中的未处理任务进行处理。
本公开实施例提供的技术方案,当打包设备重启时,先查询打包任务队列中是否存储有设备标识为打包设备的设备标识,且任务状态为处理中状态的打包任务,若有,则继续对该打包任务进行处理,实现了在异常情况下,打包任务队列中存储的打包任务都能被完成的目的。
在一示例性实施例中,在若打包设备重启,则查询打包任务队列中是否存储有设备标识为打包设备的设备标识,且任务状态为处理中状态的打包任务之后,还包括:若打包任务队列中未存储有设备标识为打包设备的设备标识,且任务状态为处理中状态的打包任务,则通过打包设备重新从打包任务队列中选取出目标打包任务进行处理。
具体地,当打包设备重启,且查询到打包任务队列未存储有设备标识为该打包设备的设备标识,且任务状态为处理中状态的打包任务时,说明在该打包设备重启之前,该打包设备已将其需要处理的打包任务处理完成,则从打包任务队列中选取出未被选取的打包任务中的第一个打包任务进行处理,比如从打包任务队列中选取出最开始插入,且任务状态标记为0的打包任务进行处理,并在开始对该打包任务进行处理之后,将该打包任务的任务状态更新为1。
本公开实施例提供的技术方案,当打包设备重启,且查询到打包任务队列中未存储有设备标识为该打包设备的设备标识,且任务状态为处理中状态的打包任务时,则重新从打包任务队列中选取出对应的打包任务进行处理,避免了打包设备上一次的打包任务未处理完,在重启之后又对新的打包任务进行处理的状况,进一步保证了打包任务队列中存储的打包任务都能被完成。
在一示例性实施例中,本申请提供的任务处理方法还包括:若打包任务队列中的打包任务处理完毕,则控制打包设备进入睡眠状态。
例如,当打包任务队列中没有任务状态为0的打包任务时,说明打包任务队列中的打包任务均处理完毕,则打包设备会进入睡眠状态。
本公开实施例提供的技术方案,当打包任务队列中的打包任务处理完毕时,则控制打包设备进入睡眠状态,有利于节约打包设备的电源,增加打包设备的使用寿命。
在一示例性实施例中,在控制打包设备进入睡眠状态之后,还包括:根据预设频率,检测打包任务队列中是否存储有任务状态为未处理状态的打包任务;若打包任务队列中存储有任务状态为未处理状态的打包任务,则唤醒进入睡眠状态的打包设备;通过打包设备对任务状态为未处理状态的打包任务进行处理。
其中,预设频率是指查询打包任务队列中是否存储有任务状态为未处理状态的打包任务的频率,比如一分钟查询一次。
举例说明,在控制打包设备A进入睡眠状态之后,打包设备A会定时检测打包任务队列中是否存储有任务状态为0的打包任务,以查看是否有需要处理的打包任务;若打包任务队列中存储有任务状态为0的打包任务,则唤醒打包设备A,并通过打包设备A从打包任务队列中选取出最开始插入,且任务状态标记为0的打包任务进行处理。
本公开实施例提供的技术方案,在控制打包设备进入睡眠状态之后,根据预设频率,检测打包任务队列中是否存储有任务状态为未处理状态的打包任务,以在打包任务队列中存储有任务状态为未处理状态的打包任务时,立即对其进行处理,有利于缩短任务处理时间,进一步提高任务处理效率。
在一示例性实施例中,如图3所示,提供了另一种任务处理方法,主要包括如下内容:参考图3,每个机器的server启动,每个server有一个独立的打包状态,用来监控此时该机器是否有打包任务;当出现新增打包任务时,接收该新增打包任务的一个机器都会向同一个数据库中插入该打包任务,并将该打包任务的任务状态标记为0,形成打包任务队列;此时,机器会查看本机器是否有执行的打包任务,如果没有则查询数据库中是否有任务状态为0的任务,若有,则从数据库中获取最开始插入,且任务状态为0(未开始任务)的打包任务进行开始打包,打包任务开始后将该打包任务的任务状态置为1(执行中);此后,机器每次完成一个打包任务,都会将该打包任务的任务状态标记为2(打包完成)。
进一步地,参考图4,当出现异常状态时,例如机器重启或者程序重启时,实际上上一次的打包任务并没有真正完成,并且数据库中永远都会存在一个任务状态为1的打包任务。故而,每次在数据库中将打包任务的任务状态从0置为1的时候,需要将对应的打包机器的名称记录下来,由于机器名是永远不会更改的,这样在机器重启时,先执行前置查询,查看数据库中是否存在任务状态为1且打包机器是本机器的打包任务,若有,则继续完成之前的打包任务,避免出错;若没有,则从数据库中获取最开始插入,且任务状态为0的打包任务进行处理。
上述任务处理方法,可以达到以下技术效果:(1)缩短打包任务的处理时间,提高打包任务的处理效率;(2)保证打包任务队列中的打包任务的唯一性;(3)保证每个任务状态的唯一性;(4)当机器重启或者代码出错导致项目重启时,找到重启前的任务并继续对其进行打包,保证了打包任务队列中的打包任务都能被处理完。
应该理解的是,虽然图2的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
图5是根据一示例性实施例示出的一种任务处理装置的框图。参照图5,该装置包括第一任务处理单元510和第二任务处理单元520。
第一任务处理单元510,被配置为执行通过至少两个打包设备,从打包任务队列中选取出相应的打包任务进行处理;打包任务队列用于按照接收到的打包任务的请求时间,存储接收到的打包任务。
第二任务处理单元520,被配置为执行当至少一个打包设备处理完对应的打包任务时,则通过至少一个打包设备从打包任务队列中选取出目标打包任务进行处理,直到打包任务队列中的打包任务处理完毕;目标打包任务为打包任务队列中,未被选取的打包任务中的第一个打包任务。
在本实施例中,通过至少两个打包设备,从打包任务队列中选取出相应的打包任务进行处理;打包任务队列用于按照接收到的打包任务的请求时间,存储接收到的打包任务;当至少一个打包设备处理完对应的打包任务时,则通过至少一个打包设备从打包任务队列中选取出目标打包任务进行处理,直到打包任务队列中的打包任务处理完毕;目标打包任务为打包任务队列中,未被选取的打包任务中的第一个打包任务;这样,实现了在出现大量打包任务的情况下,通过多个打包设备对打包任务进行处理的目的,有利于缩短任务处理时间,进而提高了任务处理效率,避免了通过一台打包设备对所有的打包任务进行处理,导致任务处理效率较低的缺陷。
在一示例性实施例中,本公开提供的任务处理装置还包括任务存储单元,被配置为执行接收打包任务;按照打包任务的请求时间,将打包任务存储至打包任务队列中,并将打包任务的任务状态标记为未处理状态。
在一示例性实施例中,本公开提供的任务处理装置还包括第一切换单元,被配置为执行将打包任务队列中的选取出的打包任务的任务状态,从未处理状态切换为处理中状态,并记录选取出打包任务的打包设备的设备标识;
本公开提供的任务处理装置还包括第二切换单元,被配置为执行当至少一个打包设备处理完对应的打包任务时,将打包任务队列中对应的已完成的打包任务的任务状态,从处理中状态切换为处理完成状态。
在一示例性实施例中,本公开提供的任务处理装置还包括任务查询单元,被配置为执行若打包设备重启,则查询打包任务队列中是否存储有设备标识为打包设备的设备标识,且任务状态为处理中状态的打包任务;若打包任务队列中存储有设备标识为打包设备的设备标识,且任务状态为处理中状态的打包任务,则通过打包设备对打包任务进行处理。
在一示例性实施例中,本公开提供的任务处理装置还包括任务选取单元,被配置为执行若打包任务队列中未存储有设备标识为打包设备的设备标识,且任务状态为处理中状态的打包任务,则通过打包设备重新从打包任务队列中选取出目标打包任务进行处理。
在一示例性实施例中,本公开提供的任务处理装置还包括设备控制单元,被配置为执行若打包任务队列中的打包任务处理完毕,则控制打包设备进入睡眠状态。
在一示例性实施例中,本公开提供的任务处理装置还包括任务检测单元,被配置为执行根据预设频率,检测打包任务队列中是否存储有任务状态为未处理状态的打包任务;若打包任务队列中存储有任务状态为未处理状态的打包任务,则唤醒进入睡眠状态的打包设备;通过打包设备对任务状态为未处理状态的打包任务进行处理。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图6是根据一示例性实施例示出的一种用于执行上述任务处理方法的设备600的框图。例如,设备600可以为一服务器。参照图6,设备600包括处理组件620,其进一步包括一个或多个处理器,以及由存储器622所代表的存储器资源,用于存储可由处理组件620的执行的指令,例如应用程序。存储器622中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件620被配置为执行指令,以执行上述任务处理方法。
设备600还可以包括一个电源组件624被配置为执行设备600的电源管理,一个有线或无线网络接口626被配置为将设备600连接到网络,和一个输入输出(I/O)接口628。设备600可以操作基于存储在存储器622的操作系统,例如Window6 6erver,Mac O6 X,Unix,Linux,FreeBSD或类似。
在示例性实施例中,还提供了一种包括指令的计算机可读存储介质,例如包括指令的存储器622,上述指令可由设备600的处理器执行以完成上述方法。例如,计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
在示例性实施例中,还提供一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序存储在计算机可读存储介质中,设备的至少一个处理器从该计算机可读存储介质读取并执行该计算机程序,使得设备执行本公开的任一项实施例中所述的任务处理方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (10)
1.一种任务处理方法,其特征在于,包括:
通过至少两个打包设备,从打包任务队列中选取出相应的打包任务进行处理;所述打包任务队列用于按照接收到的打包任务的请求时间,存储所述接收到的打包任务;
当至少一个打包设备处理完对应的打包任务时,则通过所述至少一个打包设备从所述打包任务队列中选取出目标打包任务进行处理,直到所述打包任务队列中的打包任务处理完毕;所述目标打包任务为所述打包任务队列中,未被选取的打包任务中的第一个打包任务。
2.根据权利要求1所述的任务处理方法,其特征在于,在通过至少两个打包设备,从打包任务队列中选取出相应的打包任务进行处理之前,还包括:
接收打包任务;
按照所述打包任务的请求时间,将所述打包任务存储至所述打包任务队列中,并将所述打包任务的任务状态标记为未处理状态。
3.根据权利要求2所述的任务处理方法,其特征在于,在通过至少两个打包设备,从打包任务队列中选取出相应的打包任务进行处理之后,还包括:
将所述打包任务队列中的所述选取出的打包任务的任务状态,从未处理状态切换为处理中状态,并记录选取出所述打包任务的打包设备的设备标识;
在通过所述至少一个打包设备从所述打包任务队列中取出目标打包任务进行处理之前,还包括:
当至少一个打包设备处理完对应的打包任务时,将所述打包任务队列中对应的已完成的打包任务的任务状态,从处理中状态切换为处理完成状态。
4.根据权利要求3所述的任务处理方法,其特征在于,在通过至少两个打包设备,从打包任务队列中选取出相应的打包任务进行处理之后,还包括:
若所述打包设备重启,则查询所述打包任务队列中是否存储有设备标识为所述打包设备的设备标识,且任务状态为处理中状态的打包任务;
若所述打包任务队列中存储有设备标识为所述打包设备的设备标识,且任务状态为处理中状态的打包任务,则通过所述打包设备对所述打包任务进行处理。
5.根据权利要求4所述的任务处理方法,其特征在于,在若所述打包设备重启,则查询所述打包任务队列中是否存储有设备标识为所述打包设备的设备标识,且任务状态为处理中状态的打包任务之后,还包括:
若所述打包任务队列中未存储有设备标识为所述打包设备的设备标识,且任务状态为处理中状态的打包任务,则通过所述打包设备重新从所述打包任务队列中选取出目标打包任务进行处理。
6.根据权利要求2所述的任务处理方法,其特征在于,所述方法还包括:
若所述打包任务队列中的打包任务处理完毕,则控制所述打包设备进入睡眠状态。
7.一种任务处理装置,其特征在于,包括:
第一任务处理单元,被配置为执行通过至少两个打包设备,从打包任务队列中选取出相应的打包任务进行处理;所述打包任务队列用于按照接收到的打包任务的请求时间,存储所述接收到的打包任务;
第二任务处理单元,被配置为执行当至少一个打包设备处理完对应的打包任务时,则通过所述至少一个打包设备从所述打包任务队列中选取出目标打包任务进行处理,直到所述打包任务队列中的打包任务处理完毕;所述目标打包任务为所述打包任务队列中,未被选取的打包任务中的第一个打包任务。
8.一种服务器,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至6中任一项所述的任务处理方法。
9.一种计算机可读存储介质,其特征在于,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行如权利要求1至6中任一项所述的任务处理方法。
10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6任一项所述的任务处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110516667.7A CN113238820A (zh) | 2021-05-12 | 2021-05-12 | 任务处理方法、装置、服务器及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110516667.7A CN113238820A (zh) | 2021-05-12 | 2021-05-12 | 任务处理方法、装置、服务器及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113238820A true CN113238820A (zh) | 2021-08-10 |
Family
ID=77133594
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110516667.7A Pending CN113238820A (zh) | 2021-05-12 | 2021-05-12 | 任务处理方法、装置、服务器及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113238820A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107580049A (zh) * | 2017-09-05 | 2018-01-12 | 同程网络科技股份有限公司 | 一种可扩展的高效app渠道包打包平台 |
CN107844518A (zh) * | 2017-09-30 | 2018-03-27 | 链家网(北京)科技有限公司 | 评估指定app下载量的方法、数据服务器、打包平台及系统 |
CN108416665A (zh) * | 2018-02-07 | 2018-08-17 | 平安普惠企业管理有限公司 | 数据交互方法、装置、计算机设备和存储介质 |
CN111124648A (zh) * | 2019-12-24 | 2020-05-08 | 宁波三星医疗电气股份有限公司 | 多任务执行方法和装置 |
CN111301789A (zh) * | 2018-12-11 | 2020-06-19 | 顺丰科技有限公司 | 应用软件打包方法和装置 |
CN111782405A (zh) * | 2020-07-31 | 2020-10-16 | 福州智永信息科技有限公司 | 一种集成二维码扫码的自动打包方法及终端 |
CN112711624A (zh) * | 2020-12-25 | 2021-04-27 | 北京达佳互联信息技术有限公司 | 数据打包控制方法、装置、电子设备和存储介质 |
-
2021
- 2021-05-12 CN CN202110516667.7A patent/CN113238820A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107580049A (zh) * | 2017-09-05 | 2018-01-12 | 同程网络科技股份有限公司 | 一种可扩展的高效app渠道包打包平台 |
CN107844518A (zh) * | 2017-09-30 | 2018-03-27 | 链家网(北京)科技有限公司 | 评估指定app下载量的方法、数据服务器、打包平台及系统 |
CN108416665A (zh) * | 2018-02-07 | 2018-08-17 | 平安普惠企业管理有限公司 | 数据交互方法、装置、计算机设备和存储介质 |
CN111301789A (zh) * | 2018-12-11 | 2020-06-19 | 顺丰科技有限公司 | 应用软件打包方法和装置 |
CN111124648A (zh) * | 2019-12-24 | 2020-05-08 | 宁波三星医疗电气股份有限公司 | 多任务执行方法和装置 |
CN111782405A (zh) * | 2020-07-31 | 2020-10-16 | 福州智永信息科技有限公司 | 一种集成二维码扫码的自动打包方法及终端 |
CN112711624A (zh) * | 2020-12-25 | 2021-04-27 | 北京达佳互联信息技术有限公司 | 数据打包控制方法、装置、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105611330B (zh) | 智能电视维护方法、系统及一种服务器、一种移动终端 | |
EP3489825A1 (en) | Method, apparatus and computer readable storage medium for processing service | |
CN108984366B (zh) | 终端的监控处理方法、装置及设备 | |
CN111274052A (zh) | 数据分发方法、服务器及计算机可读存储介质 | |
CN109451078B (zh) | 一种分布式架构下的事务处理方法和装置 | |
CN110275992B (zh) | 应急处理方法、装置、服务器及计算机可读存储介质 | |
CN110795264A (zh) | 监控管理方法及系统、智能管理终端 | |
EP3018581A1 (en) | Data staging management system | |
CN107783828B (zh) | 任务处理方法和装置 | |
CN108039960B (zh) | 配置信息下发方法及服务器 | |
CN110109741B (zh) | 循环任务的管理方法、装置、电子设备及存储介质 | |
CN112328602B (zh) | 一种数据写入Kafka的方法、装置及设备 | |
CN107729207B (zh) | 一种应用程序主线程的监控方法及装置 | |
CN113238820A (zh) | 任务处理方法、装置、服务器及存储介质 | |
CN112463549A (zh) | 云平台的审计方法、装置、设备及计算机可读存储介质 | |
CN111580948A (zh) | 任务调度方法、装置及计算机设备 | |
CN109905459B (zh) | 一种数据传输方法及装置 | |
CN111506388A (zh) | 容器性能探测方法、容器管理平台及计算机存储介质 | |
US20090083747A1 (en) | Method for managing application programs by utilizing redundancy and load balance | |
CN109901950A (zh) | 一种规避应用程序崩溃的方法及装置 | |
CN113448747B (zh) | 数据传输方法、装置、计算机设备和存储介质 | |
CN113112786B (zh) | 一种针对电表的多数据抄读方法、介质及电子设备 | |
CN111049689B (zh) | 一种数据中心切换方法及装置 | |
CN114625515A (zh) | 一种任务管理方法、装置、设备及存储介质 | |
CN112819600A (zh) | 定时任务的执行方法、装置、设备及计算机存储介质 |
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 |