掌桥专利:专业的专利平台
掌桥专利
首页

一种基于Agent的任务管理方法及装置

文献发布时间:2023-06-19 10:02:03


一种基于Agent的任务管理方法及装置

技术领域

本申请涉及电子信息领域,尤其涉及一种基于Agent的任务任务管理方法及装置

背景技术

任务可以基于多种语言编写,如Shell脚本、Java程序、Go程序等,在任务编写完毕后,将将任务分配给对应的任务节点,基于对应的任务节点处理该任务。

现有的任务管理过程,只能针对某一种编程语言编写的任务进行管理,不支持多种语言任务的管理,导致任务处理速度慢。

发明内容

本申请提供了一种基于Agent的任务任务管理方法及装置,用于解决现有的任务管理过程,只能针对某一种编程语言编写的任务进行管理,不支持多种语言任务的管理,导致任务处理速度慢的问题,本申请提供了以下技术方案:

一种基于Agent的任务任务管理方法,预先在任务节点中添加Agent,所述方法包括:

接收待处理的任务,所述待处理任务至少为一个,所述待处理任务的类型为各个预设类型中的任意一个,获取所述待处理任务中的启动命令、CPU占用信息、内存占用信息和任务可执行文件;

接收各个任务节点的空闲CPU信息和空闲内存信息;

基于各个空闲CPU信息和对应的空闲内存信息、所述CPU占用信息和所述内存占用信息确定目标任务节点;

将所述任务可行性文件发送给所述目标任务节点,以令所述目标任务节点执行所述任务可行文件。

上述的方法,可选的,基于各个空闲CPU信息和空闲内存信息、所述CPU占用信息和所述内存占用信息确定目标任务节点,包括:

遍历各个空闲CPU信息和其对应的空闲内存信息,将所述CPU占用信息和所述内存占用信息与每个空闲CPU信息和对应的空闲内存信息进行比较;

将空闲CPU信息大于等于所述CPU占用信息同时其对应的空闲内存信息大于等于所述内存占用信息的任务节点作为所述目标任务节点。

上述的方法,可选的,还包括:

将所述待处理任务和所述各个空闲CPU信息和对应的空闲内存信息进行存储。

上述的方法,可选的,还包括:

接收所述目标任务节点反馈的所述待处理任务的执行结果;

标记所述执行结果。

上述的方法,可选的,还包括:

每间隔预设时长统计所述待处理任务中执行失败的待处理任务的失败次数;

将所述失败次数与预设的失败次数阈值进行比较;

放弃对所述失败次数达到所述预设失败阈值的待处理任务的处理。

一种基于Agent的任务任务管理装置,预先在任务节点中添加Agent,所述装置包括:

接收和获取模块,用于接收待处理的任务,所述待处理任务至少为一个,所述待处理任务的类型为各个预设类型中的任意一个,获取所述待处理任务中的启动命令、CPU占用信息、内存占用信息和任务可执行文件;

接收模块,用于接收各个任务节点的空闲CPU信息和空闲内存信息;

确定模块,用于基于各个空闲CPU信息和对应的空闲内存信息、所述CPU占用信息和所述内存占用信息确定目标任务节点;

发送和执行模块,用于将所述任务可行性文件发送给所述目标任务节点,以令所述目标任务节点执行所述任务可行文件。

上述的装置,可选的,所述确定模块包括:

比较单元,用于遍历各个空闲CPU信息和其对应的空闲内存信息,将所述CPU占用信息和所述内存占用信息与每个空闲CPU信息和对应的空闲内存信息进行比较;

确定单元,用于将空闲CPU信息大于等于所述CPU占用信息同时其对应的空闲内存信息大于等于所述内存占用信息的任务节点作为所述目标任务节点。

上述的装置,可选的,还包括:

存储模块,用于将所述待处理任务和所述各个空闲CPU信息和对应的空闲内存信息进行存储。

上述的装置,可选的,还包括:

接收模块,用于接收所述目标任务节点反馈的所述待处理任务的执行结果;

标记模块,用于标记所述执行结果。

上述的装置,可选的,还包括:

统计模块,用于每间隔预设时长统计所述待处理任务中执行失败的待处理任务的失败次数;

比较模块,用于将所述失败次数与预设的失败次数阈值进行比较;

放弃模块,用于放弃对所述失败次数达到所述预设失败阈值的待处理任务的处理。

本发明公开了一种基于Agent的任务任务管理方法,预先在任务节点中添加Agent,包括:接收待处理的任务,待处理任务至少为一个,待处理任务的类型为各个预设类型中的任意一个,待处理任务包括:启动命令、CPU占用信息、内存占用信息和任务可执行文件;接收各个任务节点的空闲CPU信息和空闲内存信息;基于各个空闲CPU信息和对应的空闲内存信息、CPU占用信息和内存占用信息确定目标任务节点;将任务可行性文件发送给目标任务节点,以令目标任务节点执行任务可行文件。上述方法,在任务节点中添加Agent,通过Agen执行待处理任务,不限定待处理任务的类型,实现了对多种类型待处理任务的管理,提高了处理速度。

附图说明

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

图1为本申请实施例公开的一种基于Agent的任务任务管理方法流程图;

图2为本申请实施例公开的一种基于Agent的任务任务管理方法原理图;

图3为本申请实施例公开的一种基于Agent的任务任务管理装置结构框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

本发明公开一种基于Agent的任务管理方法及装置,应用于对不同类型的任务的管理过程中,不同类型的任务可以基于Shell脚本、Java程序、Go程序进行编写,所述方法的执行主体可以为处理器或者控制器等,优选的,所述处理器或者控制器为任务管理中心,所述任务管理中心与多个任务节点相连接,针对每一个任务节点预先添加Agent,所述管理方法的执行流程如图1所示,包括步骤:

S101、接收待处理的任务,所述待处理任务至少为一个,所述待处理任务的类型为各个预设类型中的任意一个,获取所述待处理任务中的启动命令、CPU占用信息、内存占用信息和任务可执行文件;

本发明实施例中,接收待处理任务,所述待处理任务至少为一个,所述待处理任务的类型为各个预设类型中的任意一个,所述预设类型为基于Shell脚本、基于Java程序和基于Go程序等,本发明实施例中对所述各个预设类型不进行限定,获取所述待处理任务中的启动命令、CPU占用信息、内存占用信息和任务可执行文件,其中,所述启动命令用于执行所述任务可执行文件,所述任务可执行文件为所述待处理任务中具体的待执行任务,所述CPU占用信息为处理所述待处理任务需要占用的CPU的处理量,所述内存占用信息为处理所述待处理任务中粗腰占用的内存量,所述待处理任务中还包括:任务名称和任务类型,优选的,通过Rest接口获取所述待处理任务。

进一步的,在接收到所述待处理任务以后,将所述待处理任务中的任务名称、任务类型、启动命令、CPU占用信息和内存占用信息存储到数据库,将所述任务执行文件存储到文件服务器。

S102、接收各个任务节点的空闲CPU信息和空闲内存信息;

本发明实施例,各个任务节点会实时发送空闲CPU信息和空闲内存信息给所述任务管理中心,所述任务管理中接收各个任务节点的空闲CPU信息和空闲内存信息,其中,所述空闲CPU信息可以为任务节点中对任务的处理量,所述空闲内存信息可以为具体的空闲内存量,本发明实施例中,对所述空闲CPU信息和所述空闲内存信息的存在形式不进行具体限定。

优选的,将所述各个任务节点的空闲CPU信息和其对应的空闲内存信息进行存储,可以与所述待处理信息中的任务名称、任务类型、启动命令、CPU占用信息和内存占用信息一起存储到数据库中,也可以存储到其它指定位置中,本发明实施例中,对具体的存储位置不进行限定,本发明实施例中,以将所述各个任务节点的空闲CPU信息和其对应的空闲内存信息存储到所述数据库中为例进行说明。

S103、基于各个空闲CPU信息和对应的空闲内存信息、所述CPU占用信息和所述内存占用信息确定目标任务节点;

本发明实施例中遍历所述数据库中各个空闲CPU信息和其对应的空闲内存信息,将每个空闲CPU信息和其对应的空闲内存信息与所述CPU占用信息和所述内存占用信息进行比较,判断是否存在空闲CPU信息大于等于所述CPU占用信息同时其对应的空闲内存信息大于等于所述内存占用信息的任务节点,其中,判断的过程中可以先比较CPU占用信息也可以先比较内存占用信息,本发明实施例中不进行具体限定,将空闲CPU信息大于等于所述CPU占用信息同时其对应的空闲内存信息大于等于所述内存占用信息的任务节点作为所述目标任务节点,进一步的,若所述各个任务节点中存在多个满足上述要求的任务节点,可以将第一满足要求的任务节点作为目标任务节点,也可以将满足要求的各个节点中空闲CPU信息或者空闲内存信息最大的节点作为目标任务节点,本发明实施例中,对存在多个满足空闲CPU信息大于等于所述CPU占用信息同时其对应的空闲内存信息大于等于所述内存占用信息的任务节点时,目标任务节点的确定过程不进行具体限定。

优选的,在所述目标任务节点确定以后,将所述待处理任务和所述目标任务节点的对应关系进行存储,便于后续任务执行阶段查询与所述待处理任务对应的目标任务节点,以令所述目标任务节点对所述待处理任务进行处理。

S104、将所述任务可行性文件发送给所述目标任务节点,以令所述目标任务节点执行所述任务可行文件。

本发明实施例中,针对所述各个任务节点,每间隔预设时长向所述任务管理中心拉取本任务节点的待处理任务,其中,拉取的原则可以为所述任务管理中心直接指派对应的待处理任务或者该任务节点基于所述待处理任务和所述目标任务节点的对应关系主动获取对应的待处理任务,本发明实施例中对具体的实现方式不进行限定,无论哪一种实现方式,所述任务管理中心均会获取所述待处理任务中任务可行文件,将所述任务可行性文件发送给所述目标任务节点,以令所述目标任务节点执行所述任务可执行文件。

所述目标任务节点执行所述任务可执行文件的处理过程如下:获取所述待处理任务中启动命令,调用所述启动命令,以令所述任务可执行文件执行,优选的,将执行结果反馈给所述任务管理中心。

所述任务管理中心接受所述执行结果,并对所述待处理任务进行标记,例如,可以将其标记为处理完成。

本发明公开了一种基于Agent的任务任务管理方法,预先在任务节点中添加Agent,包括:接收待处理的任务,待处理任务至少为一个,待处理任务的类型为各个预设类型中的任意一个,待处理任务包括:启动命令、CPU占用信息、内存占用信息和任务可执行文件;接收各个任务节点的空闲CPU信息和空闲内存信息;基于各个空闲CPU信息和对应的空闲内存信息、CPU占用信息和内存占用信息确定目标任务节点;将任务可行性文件发送给目标任务节点,以令目标任务节点执行任务可行文件。上述方法,在任务节点中添加Agent,通过Agen执行待处理任务,不限定待处理任务的类型,实现了对多种类型待处理任务的管理,提高了处理速度。

本发明实施例中,针对上述流程的原理图如图2所示,包括任务管理中心、数据库、文件服务和任务节点,任务管理中心接收待处理任务,将所述待处理任务中的启动命令、CPU占用信息、内存占用信息、任务名称和任务类型存储到数据库中,将文件可行稳健存储到文件服务中,所述文件管理中心会接收各个任务节点的空闲CPU信息和空闲内存信息,将各个空闲CPU信息和对应的空闲内存信息存储到数据库中,基于各个空闲CPU信息和对应的空闲内存信息、所述CPU占用信息和所述内存占用信息确定目标任务节点,将所述任务可行性文件发送给所述目标任务节点,以令所述目标任务节点执行所述任务可行文件。具体的处理过程与S103和S104描述相同,在此不再赘述。

进一步的,每间隔预设时长统计所述待处理任务中执行失败的待处理任务的失败次数,将所述失败次数与预设的失败次数阈值进行比较,将所述失败次数与预设的失败次数阈值进行比较;放弃对所述失败次数达到所述预设失败阈值的待处理任务的处理。其中,所述预设的失败阈值可以基于经验或者具体情况进行设定,本发明实施例中,对所述预设的失败次数阈值的具体取值不进行限定。优选的,还可以将放弃处理的信息进行反馈。

基于上述的一种基于Agent的任务任务管理方法,本发明实施例中,还提供了一种基于Agent的任务任务管理装置,所述管理装置的结构框图如图3所示,包括:

接收和获取模块201、接收模块202、确定模块203和发送和执行模块204。

其中,

所述接收和获取模块201,用于接收待处理的任务,所述待处理任务至少为一个,所述待处理任务的类型为各个预设类型中的任意一个,获取所述待处理任务中的启动命令、CPU占用信息、内存占用信息和任务可执行文件;

所述接收模块202,用于接收各个任务节点的空闲CPU信息和空闲内存信息;

所述确定模块203,用于基于各个空闲CPU信息和对应的空闲内存信息、所述CPU占用信息和所述内存占用信息确定目标任务节点;

所述发送和执行模块204,用于将所述任务可行性文件发送给所述目标任务节点,以令所述目标任务节点执行所述任务可行文件。

本发明公开了一种基于Agent的任务任务管理装置,预先在任务节点中添加Agent,包括:接收待处理的任务,待处理任务至少为一个,待处理任务的类型为各个预设类型中的任意一个,待处理任务包括:启动命令、CPU占用信息、内存占用信息和任务可执行文件;接收各个任务节点的空闲CPU信息和空闲内存信息;基于各个空闲CPU信息和对应的空闲内存信息、CPU占用信息和内存占用信息确定目标任务节点;将任务可行性文件发送给目标任务节点,以令目标任务节点执行任务可行文件。上述装置,在任务节点中添加Agent,通过Agen执行待处理任务,不限定待处理任务的类型,实现了对多种类型待处理任务的管理,提高了处理速度。

本发明实施例中,所述确定模块203包括:

比较单元205和确定单元206。

其中,

所述比较单元205,用于遍历各个空闲CPU信息和其对应的空闲内存信息,将所述CPU占用信息和所述内存占用信息与每个空闲CPU信息和对应的空闲内存信息进行比较;

所述确定单元206,用于将空闲CPU信息大于等于所述CPU占用信息同时其对应的空闲内存信息大于等于所述内存占用信息的任务节点作为所述目标任务节点。

本发明实施例中,所述管理装置还包括:存储模块207。

所述存储模块207,用于将所述待处理任务和所述各个空闲CPU信息和对应的空闲内存信息进行存储。

本发明实施例中,所述管理装置还包括:

接收模块208和标记模块209。

其中,

所述接收模块208,用于接收所述目标任务节点反馈的所述待处理任务的执行结果;

所述标记模块209,用于标记所述执行结果。

本发明实施例中,所述管理装置还包括:

统计模块210、比较模块211和放弃模块212。

其中,

所述统计模块210,用于每间隔预设时长统计所述待处理任务中执行失败的待处理任务的失败次数;

所述比较模块211,用于将所述失败次数与预设的失败次数阈值进行比较;

所述放弃模块212,用于放弃对所述失败次数达到所述预设失败阈值的待处理任务的处理。

需要说明的是,消息推送装置可以包括处理器和存储器,接收和获取模块201、接收模块202、确定模块203和发送和执行模块204等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。

处理器中可以包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或多个,通过调整内核参数来在任务节点中添加Agent,通过Agen执行待处理任务,不限定待处理任务的类型,实现了对多种类型待处理任务的管理,提高了处理速度。

存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。

本申请实施例提供了一种计算机可读介质,其上存储有计算机程序,其中,该程序被处理器执行时实现以上方法实施例描述的基于Agent的任务管理方法。

本申请实施例提供了一种处理器,该处理器用于运行程序,其中,该程序运行时实现以上方法实施例描述的基于Agent的任务管理方法。

本申请实施例提供了一种设备,该设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以上方法实施例描述的基于Agent的任务管理方法。

本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,使得数据处理设备实现以上方法实施例描述的基于Agent的任务管理方法。所述管理方法预先在任务节点中添加Agent,所述方法包括:

接收待处理的任务,所述待处理任务至少为一个,所述待处理任务的类型为各个预设类型中的任意一个,获取所述待处理任务中的启动命令、CPU占用信息、内存占用信息和任务可执行文件;

接收各个任务节点的空闲CPU信息和空闲内存信息;

基于各个空闲CPU信息和对应的空闲内存信息、所述CPU占用信息和所述内存占用信息确定目标任务节点;

将所述任务可行性文件发送给所述目标任务节点,以令所述目标任务节点执行所述任务可行文件。

上述的方法,可选的,基于各个空闲CPU信息和空闲内存信息、所述CPU占用信息和所述内存占用信息确定目标任务节点,包括:

遍历各个空闲CPU信息和其对应的空闲内存信息,将所述CPU占用信息和所述内存占用信息与每个空闲CPU信息和对应的空闲内存信息进行比较;

将空闲CPU信息大于等于所述CPU占用信息同时其对应的空闲内存信息大于等于所述内存占用信息的任务节点作为所述目标任务节点。

上述的方法,可选的,还包括:

将所述待处理任务和所述各个空闲CPU信息和对应的空闲内存信息进行存储。

上述的方法,可选的,还包括:

接收所述目标任务节点反馈的所述待处理任务的执行结果;

标记所述执行结果。

上述的方法,可选的,还包括:

每间隔预设时长统计所述待处理任务中执行失败的待处理任务的失败次数;

将所述失败次数与预设的失败次数阈值进行比较;

放弃对所述失败次数达到所述预设失败阈值的待处理任务的处理。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。

存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。

本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

相关技术
  • 一种基于Agent的任务管理方法及装置
  • 一种基于Multi-Agent的弹性可伸缩的任务规划系统及方法
技术分类

06120112389906