CN110968406B - 处理任务的方法、装置、存储介质和处理器 - Google Patents

处理任务的方法、装置、存储介质和处理器 Download PDF

Info

Publication number
CN110968406B
CN110968406B CN201811163352.3A CN201811163352A CN110968406B CN 110968406 B CN110968406 B CN 110968406B CN 201811163352 A CN201811163352 A CN 201811163352A CN 110968406 B CN110968406 B CN 110968406B
Authority
CN
China
Prior art keywords
task
task group
node
preset
group
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
Application number
CN201811163352.3A
Other languages
English (en)
Other versions
CN110968406A (zh
Inventor
赵振宇
姜珂
冯鸳鹤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Gridsum Technology Co Ltd
Original Assignee
Beijing Gridsum Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Gridsum Technology Co Ltd filed Critical Beijing Gridsum Technology Co Ltd
Priority to CN201811163352.3A priority Critical patent/CN110968406B/zh
Publication of CN110968406A publication Critical patent/CN110968406A/zh
Application granted granted Critical
Publication of CN110968406B publication Critical patent/CN110968406B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/484Precedence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5021Priority
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Hardware Redundancy (AREA)

Abstract

本发明公开了一种处理任务的方法、装置、存储介质和处理器。其中,该方法包括:获取至少一个任务组的任务组信息,其中,任务组信息至少包括如下之一:至少一个任务组的优先级以及至少一个任务组对应的节点数;基于客户端列表中任务组的优先级信息、至少一个任务组对应的节点数生成预设序列;基于预设序列以及至少一个节点发送的任务请求确定至少一个节点对应的目标任务组;控制至少一个节点执行目标任务组中的任务。本发明解决了现有技术在对任务进行分布式处理过程中,无法对任务进行管理的技术问题。

Description

处理任务的方法、装置、存储介质和处理器
技术领域
本发明涉及任务管理领域,具体而言,涉及一种处理任务的方法、装置、存储介质和处理器。
背景技术
在相关技术中,对任务的处理主要采用消息订阅机制的方式,例如,采用RabbitMQ等队列应用对任务进行处理。具体的,用户可根据实际需求构建消息队列的环境,然后手动将任务写入消息队列中,然后,通过编写任务执行程序来订阅消息队列。当消息队列中存在待执行的任务时,用户编写的任务执行程序可获取待执行任务,并执行。但在待执行任务的任务数量较大,需分布式执行的情况下,用户需要手动为任务执行程序准备节点。
另外,在上述过程中,无法对每组待执行任务的任务信息进行记录,并且,由于消息队列具有先进先出的特性,因此,现有技术无法完成对多个任务组的优先级分配、任务需求的节点数分配、任务的超时处理、任务的开始、暂停等操作。此外,现有技术也无法对执行失败的任务进行记录,并对执行失败的任务进行重新执行。
针对上述的现有技术在对任务进行分布式处理过程中,无法对任务进行管理问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种处理任务的方法、装置、存储介质和处理器,以至少解决现有技术在对任务进行分布式处理过程中,无法对任务进行管理的技术问题。
根据本发明实施例的一个方面,提供了一种处理任务的方法,包括:获取至少一个任务组的任务组信息,其中,任务组信息至少包括如下之一:至少一个任务组的优先级以及至少一个任务组对应的节点数;基于客户端列表中任务组的优先级信息、至少一个任务组对应的节点数生成预设序列;基于预设序列以及至少一个节点发送的任务请求确定至少一个节点对应的目标任务组;控制至少一个节点执行目标任务组中的任务。
进一步地,处理任务的方法还包括:创建至少一个任务组;存储至少一个任务组的任务组信息至客户端列表中,其中,客户端列表为数据库中存储任务组信息的列表,任务组信息还包括如下至少之一:至少一个任务组的状态信息、至少一个任务组的重试次数,状态信息包括如下至少之一:开始状态、暂停状态以及失效状态。
进一步地,处理任务的方法还包括:获取至少一个节点的请求时间与当前时间的第一时间差值;滤除客户端列表中第一时间差值大于第一预设差值的任务,得到更新后的客户端列表;基于预设序列以及更新后的客户端列表确定目标任务组。
进一步地,处理任务的方法还包括:检测预设任务组的当前状态;在预设任务组的当前状态为暂停状态的情况下,控制预设节点停止执行预设任务组中的任务,其中,预设节点为执行预设任务组中的任务的至少一个节点;根据至少一个任务组的优先级为预设节点重新分配任务。
进一步地,处理任务的方法还包括:存储至少一个节点执行目标任务时的执行信息至数据库中,其中,目标任务为目标任务组中至少一个节点所对应的任务;检测至少一个节点执行目标任务时反馈的任务状态;在任务状态为成功执行的情况下,删除数据库中目标任务所对应的执行信息。
进一步地,处理任务的方法还包括:获取至少一个节点执行目标任务的开始时间,其中,目标任务为目标任务组中至少一个节点所对应的任务;确定开始时间与当前时间的第二时间差值;在第二时间差值大于第二预设差值的情况下,确定目标任务执行失败,并记录目标任务执行失败时的失败信息,其中,失败信息至少包括:目标任务执行失败的失败次数;在失败次数小于预设次数的情况下,将目标任务添加至数据库的客户端列表的尾部。
根据本发明实施例的另一方面,还提供了一种处理任务的装置,包括:获取模块,用于获取至少一个任务组的任务组信息,其中,任务组信息至少包括如下之一:至少一个任务组的优先级以及至少一个任务组对应的节点数;生成模块,用于基于客户端列表中任务组的优先级信息、至少一个任务组对应的节点数生成预设序列;确定模块,用于基于预设序列以及至少一个节点发送的任务请求确定至少一个节点对应的目标任务组;控制模块,用于控制至少一个节点执行目标任务组中的任务。
进一步地,处理任务的装置还包括:第一获取模块,用于获取至少一个节点执行目标任务的开始时间,其中,目标任务为目标任务组中至少一个节点所对应的任务;第一确定模块,用于确定开始时间与当前时间的第二时间差值;第二确定模块,用于在第二时间差值大于第二预设差值的情况下,确定目标任务执行失败,并记录目标任务执行失败时的失败信息,其中,失败信息至少包括:目标任务执行失败的失败次数;处理模块,用于在失败次数小于预设次数的情况下,将目标任务添加至数据库的客户端列表的尾部。
根据本发明实施例的另一方面,还提供了一种存储介质,该存储介质包括存储的程序,其中,该程序执行处理任务的方法。
根据本发明实施例的另一方面,还提供了一种处理器,该处理器用于运行程序,其中,该程序运行时执行处理任务的方法。
在本发明实施例中,在获取至少一个任务组的任务组信息之后,基于客户端列表中所记录的任务组的优先级信息以及至少一个任务组对应的节点数生成预设序列,然后基于预设序列以及至少一个节点发送的任务请求确定至少一个节点对应的目标任务组,最后,控制至少一个节点执行目标任务组中的任务。其中,任务组信息至少包括如下之一:至少一个任务组的优先级以及至少一个任务组对应的节点数。在上述过程中,通过获取任务组的优先级信息以及任务组所对应的节点数来确定执行任务组中的任务的节点,并将该任务组中的任务分配至对应的节点,从而实现了对任务组的优先级分配以及任务需求的节点数的分配,达到了对任务进行管理的目的。
由上述内容可知,本申请所提供的方案可以解决现有技术在对任务进行分布式处理过程中,无法对任务进行管理的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种处理任务的方法流程图;
图2是根据本发明实施例的一种可选的处理任务的***结构示意图;
图3是根据本发明实施例的一种可选的数据库列表的示意图;
图4是根据本发明实施例的一种可选的客户端列表的示意图;
图5是根据本发明实施例的一种可选的客户端列表的示意图;
图6是根据本发明实施例的一种可选的界面示意图;以及
图7是根据本发明实施例的一种处理任务的装置结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
根据本发明实施例,提供了一种处理任务的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
此外,还需要说明的是,为实现上述处理任务的方法,本申请还提供了图2所示的处理任务的***,由图2可知,该***包括服务器、数据库以及多个节点(如图2中的节点1、节点2和节点n)。其中,服务器可以为Redi s数据库,用于存储任务组信息、每个节点的信息、待执行任务的队列以及任务执行失败的信息;服务器可创建任务组、修改任务组、删除任务、暂停任务、开始执行任务、重新开始执行任务以及导出任务失败的信息;图2中的节点为执行任务组中任务的节点,其中,每个节点内置有节点程序,用于轮询获取当前优先级最高的可执行任务组,并执行任务组中的任务。
具体的,图1是根据本发明实施例的处理任务的方法流程图,如图1所示,该方法包括如下步骤:
步骤S102,获取至少一个任务组的任务组信息,其中,任务组信息至少包括如下之一:至少一个任务组的优先级以及至少一个任务组对应的节点数。
需要说明的是,步骤S102中每个任务组包含多个任务,其中,每个任务组中的任务可量化,无顺序依赖,例如,需要对1000篇文书进行解析,则服务器可将任务分为1000份,每份1篇文书,每篇文书与对应的任务标识相对应,而每篇文书的解析逻辑不会依赖其他文书,也不会对其他文书造成影响。
此外,还需要说明的是,由于数据库中存储有任务组信息,因此,服务器在对任务进行分配时,可从服务器中获取每个任务组的任务组信息。另外,步骤S102中,至少一个任务组对应的节点数为该任务组能够将任务分发的最大节点数。
步骤S104,基于客户端列表中任务组的优先级信息、至少一个任务组对应的节点数生成预设序列。
需要说明的是,客户端列表为数据库中存储任务组信息的列表,预设序列为包含任务组标识的序列。
可选的,如图3所示的一种可选的数据库列表的示意图,由图3所示的客户端列表可知,客户端列表还存储有每个节点的标识;由图3所示的预设序列可知,每个任务组所对应的节点数为9。任务组1的优先级大于任务组2的优先级。其中,每个任务组所对应对节点数可以相同,也可以不同。
步骤S106,基于预设序列以及至少一个节点发送的任务请求确定至少一个节点对应的目标任务组。
需要说明的是,在得到预设序列之后,服务器按照一一对应的方式,将客户端列表与预设序列相对应,得到图4所示的客户端列表。
可选的,在节点向服务器请求任务组时,服务器可根据图4所示的客户端列表中该节点所对应的任务组标识,返回该节点所要执行的任务组。
步骤S108,控制至少一个节点执行目标任务组中的任务。
可选的,每个节点得到对应的任务之后,节点可根据任务组信息下载执行程序包,并在任务执行完成后通过启动轮询来监控该任务组的状态。当服务器因超时移除该节点,或服务器暂停该任务组时,节点可重新启动,并进入新一轮的获取任务组的轮询过程。
需要说明的是,至少一个节点中还包括执行程序,该执行程序由用户编写,并引用预设的基准数据库,将用户自定义的任务处理代码编写到基准数据库中的TaskReceived方法中,其中,TaskReceived方法用于提供量化的任务标识,用户可根据该任务标识执行自定义的任务处理代码,在任务执行成功后,节点将该任务的任务标识返回至服务器。
基于上述步骤S102至步骤S108所限定的方案,可以获知,在获取至少一个任务组的任务组信息之后,基于客户端列表中所记录的任务组的优先级信息以及至少一个任务组对应的节点数生成预设序列,然后基于预设序列以及至少一个节点发送的任务请求确定至少一个节点对应的目标任务组,最后,控制至少一个节点执行目标任务组中的任务。其中,任务组信息至少包括如下之一:至少一个任务组的优先级以及至少一个任务组对应的节点数。
容易注意到的是,通过获取任务组的优先级信息以及任务组所对应的节点数来确定执行任务组中的任务的节点,并将该任务组中的任务分配至对应的节点,从而实现了对任务组的优先级分配以及任务需求的节点数的分配,达到了对任务进行管理的目的。
由上述内容可知,本申请所提供的方案可以解决现有技术在对任务进行分布式处理过程中,无法对任务进行管理的技术问题。
需要说明的是,在获取至少一个任务组的任务组信息之前,服务器需要创建至少一个任务组,并存储至少一个任务组的任务组信息至客户端列表中,其中,任务组信息还包括如下至少之一:至少一个任务组的状态信息、至少一个任务组的重试次数,状态信息包括如下至少之一:开始状态、暂停状态以及失效状态。
可选的,图5示出了一种可选的客户端列表的示意图,由图5可知,客户端列表以键值对的形式存储任务组信息,其中,任务组的任务组信息包括任务组标识(即图5中的groupid)、任务组名称(即图5中的groupname)、任务组的优先级(即图5中的priority)、超时时间(即图5中的outmilliseconds)、任务组的状态(即图5中的runstate)、状态信息(即图5中的statemsg)、握手次数(即图5中的ackcount)、任务组的重试次数(即图5中的retrytimes)、任务组所对应的节点数(即图5中的maxalloctions)。
需要说明的是,在接收到节点发送的任务请求之后,服务器可记录每个节点的最后请求时间以及节点的标识信息,然后基于预设序列以及至少一个节点发送的任务请求确定至少一个节点对应的目标任务组。其中,服务器确定至少一个节点对应的目标任务组的方法可以包括如下步骤:
步骤S1040,获取至少一个节点的请求时间与当前时间的第一时间差值;
步骤S1042,滤除客户端列表中第一时间差值大于第一预设差值的任务,得到更新后的客户端列表;
步骤S1044,基于预设序列以及更新后的客户端列表确定目标任务组。
可选的,以图3为例,根据每个节点的请求时间滤除客户端列表中请求时间超过第一时间差值的节点,得到图3中的客户端列表。然后,服务器再将滤除请求时间与当前时间的差值超过第一时间差值的节点与预设序列按照顺序进行一一对应,得到图4所示的客户端列表,进而,服务器根据节点所对应的节点标识即可确定该节点所对应的任务组。
进一步地,在控制至少一个节点执行目标任务组中的任务之后,服务器还可在服务器修改任务的信息以及状态,并对任务组进行开始与暂停以及优先级的任务分配。具体步骤包括:
步骤S20,检测预设任务组的当前状态;
步骤S22,在预设任务组的当前状态为暂停状态的情况下,控制预设节点停止执行预设任务组中的任务,其中,预设节点为执行预设任务组中的任务的至少一个节点;
步骤S24,根据至少一个任务组的优先级为预设节点重新分配任务。
可选的,在节点数量为20个的情况下,如果任务组A的优先级2,对应的节点数为10,任务组B的优先级1,对应的节点数为15,其中,任务组A的优先级低于任务组B的优先级,则当任务组A和B同时开始执行的情况下,服务器分配15个节点执行任务组B中的任务,5个节点执行任务组A中的任务。当任务组B中的任务暂停执行时,服务器将分配10个节点执行任务组A中的任务。
在一种可选的方案中,在控制至少一个节点执行目标任务组中的任务之后,服务器还可删除任务对应的执行信息,具体过程如下:
步骤S30,存储至少一个节点执行目标任务时的执行信息至数据库中,其中,目标任务为目标任务组中至少一个节点所对应的任务;
步骤S32,检测至少一个节点执行目标任务时反馈的任务状态;
步骤S34,在任务状态为成功执行的情况下,删除数据库中目标任务所对应的执行信息。
具体的,当节点获取到任务组中的任务并启动执行程序执行任务后,节点进入轮询,并请求获取任务的任务标识,以执行该任务标识所对应的自定义操作。在节点执行完成自定义操作后,节点向服务器返回该任务标识,表明该条任务已执行成功,然后继续请求任务。在接收到节点发送的任务请求之后,服务器按顺序从客户端列表中获取节点对应的任务,并将该任务返回至请求任务的节点中,同时,服务器将该任务的获取时间(即该任务的开始执行时间)记录在数据库中。另外,在节点成功执行任务之后,服务器接收到该任务的执行成功信息,并从数据库中移除该任务所对应的执行信息。
进一步地,在任务执行失败时,服务器还可对执行失败的任务进行重试,具体步骤如下:
步骤S40,获取至少一个节点执行目标任务的开始时间,其中,目标任务为目标任务组中至少一个节点所对应的任务;
步骤S42,确定开始时间与当前时间的第二时间差值;
步骤S44,在第二时间差值大于第二预设差值的情况下,确定目标任务执行失败,并记录目标任务执行失败时的失败信息,其中,失败信息至少包括:目标任务执行失败的失败次数;
步骤S46,在失败次数小于预设次数的情况下,将目标任务添加至数据库的客户端列表的尾部。
具体的,服务器从数据库中获取已开始执行的任务以及任务开始执行的开始时间,并计算当前时间与开始时间的第二时间差值,若第二时间差值超出第二预设差值,则确定该任务执行失败,并将该任务执行失败的失败消息记录到数据库中的失败列表中,将该任务的失败次数加1,用户点击图6中导出失败任务控件,则将导出该失败任务的相关信息。然后,服务器判断失败次数是否超过预设次数,如果失败次数小于若小于,则将该条任务加入到客户端列表的尾部,等待下次分配。
需要说明的是,由上述内容可知,本申请采用分布式的架构,根据任务组的存储信息对多组任务进行统一的管理,并且,在本申请中,多任务可根据任务的优先级、节点数进行分布式任务调度机制。此外,在本申请中,服务器处理节点获取任务的请求以实现任务分发,并实现了失败重试机制。另外,在本申请中,服务器将节点中的执行程序以包的形式与任务组绑定,可以实现在任务暂停后,在更新节点中的程序包,达到更新节点的目的。
实施例2
根据本发明实施例,提供了一种处理任务的装置实施例,其中,图7是根据本发明实施例的处理任务的装置结构示意图,如图7所示,该装置包括:获取模块901、生成模块903、确定模块905以及控制模块907。
其中,获取模块901,用于获取至少一个任务组的任务组信息,其中,任务组信息至少包括如下之一:至少一个任务组的优先级以及至少一个任务组对应的节点数;生成模块903,用于基于客户端列表中任务组的优先级信息、至少一个任务组对应的节点数生成预设序列;确定模块905,用于基于预设序列以及至少一个节点发送的任务请求确定至少一个节点对应的目标任务组;控制模块907,用于控制至少一个节点执行目标任务组中的任务。
需要说明的是,上述获取模块901、生成模块903、确定模块905以及控制模块907对应于实施例1中的步骤S102至步骤S108,四个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。
在一种可选的方案中,处理任务的装置还包括:创建模块以及第一存储模块。其中,创建模块,用于创建至少一个任务组;第一存储模块,用于存储至少一个任务组的任务组信息至客户端列表中,其中,客户端列表为数据库中存储任务组信息的列表,任务组信息还包括如下至少之一:至少一个任务组的状态信息、至少一个任务组的重试次数,状态信息包括如下至少之一:开始状态、暂停状态以及失效状态。
在一种可选的方案中,确定模块包括:第二获取模块、滤除模块以及第三确定模块。其中,第二获取模块,用于获取至少一个节点的请求时间与当前时间的第一时间差值;滤除模块,用于滤除客户端列表中第一时间差值大于第一预设差值的任务,得到更新后的客户端列表;第三确定模块,用于基于预设序列以及更新后的客户端列表确定目标任务组。
需要说明的是,上述第二获取模块、滤除模块以及第三确定模块对应于实施例1中的步骤S1040至步骤S1044,三个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。
在一种可选的方案中,处理任务的装置还包括:第一检测模块、第一控制模块以及分配模块。其中,第一检测模块,用于检测预设任务组的当前状态;第一控制模块,用于在预设任务组的当前状态为暂停状态的情况下,控制预设节点停止执行预设任务组中的任务,其中,预设节点为执行预设任务组中的任务的至少一个节点;分配模块,用于根据至少一个任务组的优先级为预设节点重新分配任务。
需要说明的是,上述第一检测模块、第一控制模块以及分配模块对应于实施例1中的步骤S20至步骤S24,三个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。
在一种可选的方案中,处理任务的装置还包括:第二存储模块、第二检测模块以及删除模块。其中,第二存储模块,用于存储至少一个节点执行目标任务时的执行信息至数据库中,其中,目标任务为目标任务组中至少一个节点所对应的任务;第二检测模块,用于检测至少一个节点执行目标任务时反馈的任务状态;删除模块,用于在任务状态为成功执行的情况下,删除数据库中目标任务所对应的执行信息。
需要说明的是,上述第二存储模块、第二检测模块以及删除模块对应于实施例1中的步骤S30至步骤S34,三个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。
在一种可选的方案中,处理任务的装置还包括:第一获取模块、第一确定模块、第二确定模块以及处理模块。其中,第一获取模块,用于获取至少一个节点执行目标任务的开始时间,其中,目标任务为目标任务组中至少一个节点所对应的任务;第一确定模块,用于确定开始时间与当前时间的第二时间差值;第二确定模块,用于在第二时间差值大于第二预设差值的情况下,确定目标任务执行失败,并记录目标任务执行失败时的失败信息,其中,失败信息至少包括:目标任务执行失败的失败次数;处理模块,用于在失败次数小于预设次数的情况下,将目标任务添加至数据库的客户端列表的尾部。
需要说明的是,上述第一获取模块、第一确定模块、第二确定模块以及处理模块对应于实施例1中的步骤S40至步骤S46,四个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。
进一步地,上述处理任务的装置包括处理器和存储器,上述获取模块、生成模块、确定模块和控制模块等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,在获取至少一个任务组的任务组信息之后,基于客户端列表中所记录的任务组的优先级信息以及至少一个任务组对应的节点数生成预设序列,然后基于预设序列以及至少一个节点发送的任务请求确定至少一个节点对应的目标任务组,最后,控制至少一个节点执行目标任务组中的任务。其中,任务组信息至少包括如下之一:至少一个任务组的优先级以及至少一个任务组对应的节点数。在上述过程中,通过获取任务组的优先级信息以及任务组所对应的节点数来确定执行任务组中的任务的节点,并将该任务组中的任务分配至对应的节点,从而实现了对任务组的优先级分配以及任务需求的节点数的分配,达到了对任务进行管理的目的。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本发明实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现处理任务的方法。
本发明实施例提供了一种处理器,处理器用于运行程序,其中,程序运行时执行处理任务的方法。
本发明实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:获取至少一个任务组的任务组信息,其中,任务组信息至少包括如下之一:至少一个任务组的优先级以及至少一个任务组对应的节点数;基于客户端列表中任务组的优先级信息、至少一个任务组对应的节点数生成预设序列;基于预设序列以及至少一个节点发送的任务请求确定至少一个节点对应的目标任务组;控制至少一个节点执行目标任务组中的任务。
可选的,在处理器上运行的程序,处理器执行程序时还实现以下步骤:创建至少一个任务组;存储至少一个任务组的任务组信息至客户端列表中,其中,客户端列表为数据库中存储任务组信息的列表,任务组信息还包括如下至少之一:至少一个任务组的状态信息、至少一个任务组的重试次数,状态信息包括如下至少之一:开始状态、暂停状态以及失效状态。
可选的,在处理器上运行的程序,处理器执行程序时还实现以下步骤:获取至少一个节点的请求时间与当前时间的第一时间差值;滤除客户端列表中第一时间差值大于第一预设差值的任务,得到更新后的客户端列表;基于预设序列以及更新后的客户端列表确定目标任务组。
可选的,在处理器上运行的程序,处理器执行程序时还实现以下步骤:检测预设任务组的当前状态;在预设任务组的当前状态为暂停状态的情况下,控制预设节点停止执行预设任务组中的任务,其中,预设节点为执行预设任务组中的任务的至少一个节点;根据至少一个任务组的优先级为预设节点重新分配任务。
可选的,在处理器上运行的程序,处理器执行程序时还实现以下步骤:存储至少一个节点执行目标任务时的执行信息至数据库中,其中,目标任务为目标任务组中至少一个节点所对应的任务;检测至少一个节点执行目标任务时反馈的任务状态;在任务状态为成功执行的情况下,删除数据库中目标任务所对应的执行信息。
可选的,在处理器上运行的程序,处理器执行程序时还实现以下步骤:获取至少一个节点执行目标任务的开始时间,其中,目标任务为目标任务组中至少一个节点所对应的任务;确定开始时间与当前时间的第二时间差值;在第二时间差值大于第二预设差值的情况下,确定目标任务执行失败,并记录目标任务执行失败时的失败信息,其中,失败信息至少包括:目标任务执行失败的失败次数;在失败次数小于预设次数的情况下,将目标任务添加至数据库的客户端列表的尾部。
需要说明的是,本文中的设备可以是服务器、PC、PAD、手机等。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:获取至少一个任务组的任务组信息,其中,任务组信息至少包括如下之一:至少一个任务组的优先级以及至少一个任务组对应的节点数;基于客户端列表中任务组的优先级信息、至少一个任务组对应的节点数生成预设序列;基于预设序列以及至少一个节点发送的任务请求确定至少一个节点对应的目标任务组;控制至少一个节点执行目标任务组中的任务。
可选的,在程序运行时控制存储介质所在设备还执行以下功能:创建至少一个任务组;存储至少一个任务组的任务组信息至客户端列表中,其中,客户端列表为数据库中存储任务组信息的列表,任务组信息还包括如下至少之一:至少一个任务组的状态信息、至少一个任务组的重试次数,状态信息包括如下至少之一:开始状态、暂停状态以及失效状态。
可选的,在程序运行时控制存储介质所在设备还执行以下功能:获取至少一个节点的请求时间与当前时间的第一时间差值;滤除客户端列表中第一时间差值大于第一预设差值的任务,得到更新后的客户端列表;基于预设序列以及更新后的客户端列表确定目标任务组。
可选的,在程序运行时控制存储介质所在设备还执行以下功能:检测预设任务组的当前状态;在预设任务组的当前状态为暂停状态的情况下,控制预设节点停止执行预设任务组中的任务,其中,预设节点为执行预设任务组中的任务的至少一个节点;根据至少一个任务组的优先级为预设节点重新分配任务。
可选的,在程序运行时控制存储介质所在设备还执行以下功能:存储至少一个节点执行目标任务时的执行信息至数据库中,其中,目标任务为目标任务组中至少一个节点所对应的任务;检测至少一个节点执行目标任务时反馈的任务状态;在任务状态为成功执行的情况下,删除数据库中目标任务所对应的执行信息。
可选的,在程序运行时控制存储介质所在设备还执行以下功能:获取至少一个节点执行目标任务的开始时间,其中,目标任务为目标任务组中至少一个节点所对应的任务;确定开始时间与当前时间的第二时间差值;在第二时间差值大于第二预设差值的情况下,确定目标任务执行失败,并记录目标任务执行失败时的失败信息,其中,失败信息至少包括:目标任务执行失败的失败次数;在失败次数小于预设次数的情况下,将目标任务添加至数据库的客户端列表的尾部。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、***或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (10)

1.一种处理任务的方法,其特征在于,包括:
获取至少一个任务组的任务组信息,其中,所述任务组信息至少包括如下之一:所述至少一个任务组的优先级以及所述至少一个任务组对应的节点数;
基于客户端列表中所述任务组的优先级信息、所述至少一个任务组对应的节点数生成预设序列,其中,所述预设序列为包含任务组标识的序列,所述预设序列中每个任务组的任务组标识的数量与该任务组对应的节点数相同,且所述预设序列中的任务组标识与节点标识一一对应;
基于所述预设序列以及至少一个节点发送的任务请求确定所述至少一个节点对应的目标任务组;
控制所述至少一个节点执行所述目标任务组中的任务。
2.根据权利要求1所述的方法,其特征在于,在获取至少一个任务组的任务组信息之前,所述方法还包括:
创建所述至少一个任务组;
存储所述至少一个任务组的任务组信息至所述客户端列表中,其中,所述客户端列表为数据库中存储所述任务组信息的列表,所述任务组信息还包括如下至少之一:所述至少一个任务组的状态信息、所述至少一个任务组的重试次数,所述状态信息包括如下至少之一:开始状态、暂停状态以及失效状态。
3.根据权利要求2所述的方法,其特征在于,基于所述预设序列以及所述至少一个节点发送的任务请求确定所述至少一个节点对应的目标任务组,包括:
获取所述至少一个节点的请求时间与当前时间的第一时间差值;
滤除所述客户端列表中所述第一时间差值大于第一预设差值的任务,得到更新后的客户端列表;
基于所述预设序列以及所述更新后的客户端列表确定所述目标任务组。
4.根据权利要求1所述的方法,其特征在于,在控制所述至少一个节点执行所述目标任务组中的任务之后,所述方法还包括:
检测预设任务组的当前状态;
在所述预设任务组的当前状态为暂停状态的情况下,控制预设节点停止执行所述预设任务组中的任务,其中,所述预设节点为执行所述预设任务组中的任务的至少一个节点;
根据所述至少一个任务组的优先级为所述预设节点重新分配任务。
5.根据权利要求1所述的方法,其特征在于,在控制所述至少一个节点执行所述目标任务组中的任务之后,所述方法还包括:
存储所述至少一个节点执行目标任务时的执行信息至数据库中,其中,所述目标任务为所述目标任务组中所述至少一个节点所对应的任务;
检测所述至少一个节点执行所述目标任务时反馈的任务状态;
在所述任务状态为成功执行的情况下,删除所述数据库中所述目标任务所对应的执行信息。
6.根据权利要求1所述的方法,其特征在于,在控制所述至少一个节点执行所述目标任务组中的任务之后,所述方法还包括:
获取所述至少一个节点执行目标任务的开始时间,其中,所述目标任务为所述目标任务组中所述至少一个节点所对应的任务;
确定所述开始时间与当前时间的第二时间差值;
在所述第二时间差值大于第二预设差值的情况下,确定所述目标任务执行失败,并记录所述目标任务执行失败时的失败信息,其中,所述失败信息至少包括:目标任务执行失败的失败次数;
在所述失败次数小于预设次数的情况下,将所述目标任务添加至数据库的客户端列表的尾部。
7.一种处理任务的装置,其特征在于,包括:
获取模块,用于获取至少一个任务组的任务组信息,其中,所述任务组信息至少包括如下之一:所述至少一个任务组的优先级以及所述至少一个任务组对应的节点数;
生成模块,用于基于客户端列表中所述任务组的优先级信息、所述至少一个任务组对应的节点数生成预设序列,其中,所述预设序列为包含任务组标识的序列,所述预设序列中每个任务组的任务组标识的数量与该任务组对应的节点数相同,且所述预设序列中的任务组标识与节点标识一一对应;
确定模块,用于基于所述预设序列以及至少一个节点发送的任务请求确定所述至少一个节点对应的目标任务组;
控制模块,用于控制所述至少一个节点执行所述目标任务组中的任务。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
第一获取模块,用于获取所述至少一个节点执行目标任务的开始时间,其中,所述目标任务为所述目标任务组中所述至少一个节点所对应的任务;
第一确定模块,用于确定所述开始时间与当前时间的第二时间差值;
第二确定模块,用于在所述第二时间差值大于第二预设差值的情况下,确定所述目标任务执行失败,并记录所述目标任务执行失败时的失败信息,其中,所述失败信息至少包括:目标任务执行失败的失败次数;
处理模块,用于在所述失败次数小于预设次数的情况下,将所述目标任务添加至数据库的客户端列表的尾部。
9.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,所述程序执行权利要求1至6中任意一项所述的处理任务的方法。
10.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至6中任意一项所述的处理任务的方法。
CN201811163352.3A 2018-09-30 2018-09-30 处理任务的方法、装置、存储介质和处理器 Active CN110968406B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811163352.3A CN110968406B (zh) 2018-09-30 2018-09-30 处理任务的方法、装置、存储介质和处理器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811163352.3A CN110968406B (zh) 2018-09-30 2018-09-30 处理任务的方法、装置、存储介质和处理器

Publications (2)

Publication Number Publication Date
CN110968406A CN110968406A (zh) 2020-04-07
CN110968406B true CN110968406B (zh) 2023-04-07

Family

ID=70029429

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811163352.3A Active CN110968406B (zh) 2018-09-30 2018-09-30 处理任务的方法、装置、存储介质和处理器

Country Status (1)

Country Link
CN (1) CN110968406B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112667901B (zh) * 2020-12-31 2024-04-26 中国电子信息产业集团有限公司第六研究所 一种社交媒体数据的获取方法及***
CN113391814A (zh) * 2021-06-02 2021-09-14 中电金信软件有限公司 任务处理方法、装置、***及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107315629A (zh) * 2017-06-14 2017-11-03 北京小米移动软件有限公司 任务处理方法、装置及存储介质
CN107423120A (zh) * 2017-04-13 2017-12-01 阿里巴巴集团控股有限公司 任务调度方法及装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4781089B2 (ja) * 2005-11-15 2011-09-28 株式会社ソニー・コンピュータエンタテインメント タスク割り当て方法およびタスク割り当て装置
US8051209B2 (en) * 2008-11-26 2011-11-01 Microsoft Corporation Minimizing conflicts when synchronizing interrelated data between two systems
CN102316156A (zh) * 2011-07-05 2012-01-11 万达信息股份有限公司 一种可动态扩展的任务分发处理方法
US9832137B1 (en) * 2015-03-23 2017-11-28 VCE IP Holding Company LLC Provisioning system and method for a distributed computing environment using a map reduce process
CN107291548B (zh) * 2016-03-31 2021-04-13 阿里巴巴集团控股有限公司 任务的资源调度方法及装置
US20180260878A1 (en) * 2017-03-09 2018-09-13 Microsoft Technology Licensing, Llc Item delivery fulfillment plan determination
CN107807854A (zh) * 2017-10-25 2018-03-16 深圳市瑞云科技有限公司 一种自动调度节点机的方法及渲染任务处理方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107423120A (zh) * 2017-04-13 2017-12-01 阿里巴巴集团控股有限公司 任务调度方法及装置
CN107315629A (zh) * 2017-06-14 2017-11-03 北京小米移动软件有限公司 任务处理方法、装置及存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Fahad R. Dogar 等.Decentralized task-aware scheduling for data center networks.《ACM SIGCOMM Computer Communication Review》.2014,第44卷(第4期),431-442. *
王小乐.信息物理融合***资源调度关键技术研究.《中国博士学位论文全文数据库 信息科技辑》.2016,(第1期),I138-131. *

Also Published As

Publication number Publication date
CN110968406A (zh) 2020-04-07

Similar Documents

Publication Publication Date Title
US11226847B2 (en) Implementing an application manifest in a node-specific manner using an intent-based orchestrator
US20200344322A1 (en) Resource scheduling method, apparatus, device and system
EP3436927B1 (en) Processing pre-existing data sets at an on-demand code execution environment
US10891145B2 (en) Processing pre-existing data sets at an on demand code execution environment
US10162672B2 (en) Generating data streams from pre-existing data sets
US9830449B1 (en) Execution locations for request-driven code
US11119813B1 (en) Mapreduce implementation using an on-demand network code execution system
US11132213B1 (en) Dependency-based process of pre-existing data sets at an on demand code execution environment
US11620166B2 (en) Communications framework for multi-cluster management systems
CN106708608B (zh) 一种分布式锁服务方法、获取方法及相应装置
CN112346829A (zh) 一种用于任务调度的方法及设备
CN113037794B (zh) 计算资源配置调度方法、装置及***
US10620871B1 (en) Storage scheme for a distributed storage system
CN110968406B (zh) 处理任务的方法、装置、存储介质和处理器
CN109558143B (zh) 一种集群中部署应用的方法及装置
CN110764930B (zh) 基于消息模式的请求或应答处理方法及装置
CN113434283B (zh) 服务调度方法及装置、服务器、计算机可读存储介质
CN112600931B (zh) 一种api网关部署方法及装置
US20220206836A1 (en) Method and Apparatus for Processing Virtual Machine Migration, Method and Apparatus for Generating Virtual Machine Migration Strategy, Device and Storage Medium
US7127446B1 (en) File system based task queue management
CN112559118A (zh) 应用数据迁移方法、装置、电子设备及存储介质
CN109558249B (zh) 一种并发操作的控制方法及装置
CN108073453B (zh) 分布式集群中cpu资源的调度方法以及装置
US11003504B2 (en) Scaling virtualization resource units of applications
KR102177440B1 (ko) 빅데이터 처리 장치 및 방법

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