一种动态队列的任务管理方法、系统及相关装置制造方法及图纸

技术编号:25834526 阅读:25 留言:0更新日期:2020-10-02 14:15
本申请提供一种动态队列的任务管理方法,包括:监测测试任务的可用状态;若所述测试任务的可用状态为可用,判断所述动态队列中是否存在所述测试任务对应的工作进程;若所述工作进程存在,利用所述工作进程执行所述测试任务;若所述工作进程不存在,在所述动态队列中创建所述工作进程并执行所述测试任务。本申请提高了动态队列中测试任务的可管理程度,从而提高系统维护效率。本申请还提供一种动态队列的任务管理系统、计算机可读存储介质和服务器,具有上述有益效果。

【技术实现步骤摘要】
一种动态队列的任务管理方法、系统及相关装置
本申请涉及数据处理领域,特别涉及一种动态队列的任务管理方法、系统及相关装置。
技术介绍
现有Celery任务执行时,必须预先指定任务所属队列,无法根据需要动态创建任务所属队列。当出现同一种任务并发执行时,易造成队列堵塞,导致任务无法正常执行。例如:当同时监控100台服务器的内存使用信息时,所有的任务采集都放在一个队列中,若其中一台服务器因网络故障无法联通,则会造成后续服务器的内存信息都无法正常采集。且现有Celery任务配置时,多是在Celery配置文件中固定任务,无法在线创建任务并在线管理启停任务进程。
技术实现思路
本申请的目的是提供一种动态队列的任务管理方法、任务管理系统、计算机可读存储介质和服务器,能够自由启停队列任务。为解决上述技术问题,本申请提供一种动态队列的任务管理方法,具体技术方案如下:监测测试任务的可用状态;若所述测试任务的可用状态为可用,判断所述动态队列中是否存在所述测试任务对应的工作进程;若所述工作进程存在,利用所述工作进程执行所述测试任务;若所述工作进程不存在,在所述动态队列中创建所述工作进程并执行所述测试任务。可选的,监测测试任务的可用状态之前,还包括:判断是否接收到web界面的任务修改指令;若是,根据所述任务修改指令更改所述测试任务的可用状态。可选的,判断是否接收到web界面的任务修改指令之前,还包括:接收所述web界面建立的测试任务;r>保存所述测试任务;根据所述测试任务的任务关键词创建所述动态队列或将所述测试任务连接至对应的动态队列。可选的,若所述测试任务的可用状态为不可用,还包括:获取所述工作进程的进程号,根据所述进程号关闭所述工作进程。可选的,监测测试任务的可用状态包括:利用所述动态队列中调度进程监测测试任务的可用状态。本申请还提供一种动态队列的任务管理系统,包括:监测模块,用于监测测试任务的可用状态;判断模块,用于若所述测试任务的可用状态为可用,判断所述动态队列中是否存在所述测试任务对应的工作进程;第一测试模块,用于若所述工作进程存在,利用所述工作进程执行所述测试任务;第二测试模块,用于若所述工作进程不存在,在所述动态队列中创建所述工作进程并执行所述测试任务。可选的,还包括:进程关闭模块,用于若所述测试任务的可用状态为不可用,获取所述工作进程的进程号,根据所述进程号关闭所述工作进程。可选的,所述监测模块为用于利用所述动态队列中调度进程监测测试任务的可用状态的模块本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的方法的步骤。本申请还提供一种服务器,包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时实现如上所述的方法的步骤。本申请提供一种动态队列的任务管理方法,包括:监测测试任务的可用状态;若所述测试任务的可用状态为可用,判断所述动态队列中是否存在所述测试任务对应的工作进程;若所述工作进程存在,利用所述工作进程执行所述测试任务;若所述工作进程不存在,在所述动态队列中创建所述工作进程并执行所述测试任务。本申请通过重构动态队列的任务调度机制,对测试任务提供可用状态信息配置,确保各个任务在执行过程中的独立性,避免繁杂的后端静态文件配置,同时,通过设置测试的可用状态,使得不同测试任务的执行可控,可根据测试任务需求或用户需要设置任务的启停状态,提高动态队列中测试任务的可管理程度,从而提高系统维护效率。本申请还提供一种动态队列的任务管理系统、计算机可读存储介质和服务器,具有上述有益效果,此处不再赘述。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1为本申请实施例所提供的一种动态队列的任务管理方法的流程图;图2为本申请实施例所提供的另一种动态队列的任务管理方法的流程图;图3为本申请实施例所提供的一种动态队列的任务管理系统结构示意图。具体实施方式为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。请参考图1,图1为本申请实施例所提供的一种动态队列的任务管理方法的流程图,该方法包括:S101:监测测试任务的可用状态;本步骤旨在监测测试任务的可用状态,在此对于如何监测不做具体限定,可以在测试任务的任务参数中添加可用状态关键字,即对测试任务进行内部参数设定,或者不改变测试任务的任何数据,即为测试任务配置相应的可用状态信息等,均可以实现对测试任务的监测。优选的,还可以利用动态队列中调度进程监测测试任务的可用状态。动态队列中,以Celery动态队列为例,Celery是一种Python开发的分布式队列的管理工具,可通过接口快速实现并管理一个分布式的任务队列,其通常包含调度进程和工作进程。本步骤中可以利用调度进程监测各测试任务的可用状态。具体的,引入基于Celery调度程序封装的DBScheduler作为CELERYBEAT_SCHEDULER的参数配置,利用DBScheduler的Watch方法监测测试任务的可用状。需要注意的是,每个测试任务的可用状态均互相独立,同样每个测试任务是否需要执行也互不干扰。即通过对测试任务配置可用状态实现了测试任务的独立性,解决了当前测试任务在动态队列中被固定的缺陷。S102:若测试任务的可用状态为可用,判断动态队列中是否存在测试任务对应的工作进程;若是,进入S103;若否,进入S104;当测试任务可用时,此时需要检测动态队列中是否存在对应的工作进程。需要注意的是,工作进程与测试任务之间通常为一对一或者一对多的关系,但每个测试任务同一时间只能被一个工作进程所执行。由于有的测试任务为周期性任务,例如某个测试任务为每10s检测一次某风机温度,则同一工作进程可以在不执行该测试任务时执行其他测试任务。当然,每个工作进程也可以同步执行多个测试任务,具体应视具体的任务内容而定,若是任务内容的复杂度低,工作进程可以分配子进程以完成各测试任务。因此,本步骤在测试任务状态可用时,在动态队列中寻找是否存在对应的工作进程。在此对于具体的寻找方式不做限定,可以在动态队列中维护映射表,即每个测试任务和对应的工作进程之间的映射关系通过映射表维护,映射表中可以保存工作进程的进本文档来自技高网...

【技术保护点】
1.一种动态队列的任务管理方法,其特征在于,包括:/n监测测试任务的可用状态;/n若所述测试任务的可用状态为可用,判断所述动态队列中是否存在所述测试任务对应的工作进程;/n若所述工作进程存在,利用所述工作进程执行所述测试任务;/n若所述工作进程不存在,在所述动态队列中创建所述工作进程并执行所述测试任务。/n

【技术特征摘要】
1.一种动态队列的任务管理方法,其特征在于,包括:
监测测试任务的可用状态;
若所述测试任务的可用状态为可用,判断所述动态队列中是否存在所述测试任务对应的工作进程;
若所述工作进程存在,利用所述工作进程执行所述测试任务;
若所述工作进程不存在,在所述动态队列中创建所述工作进程并执行所述测试任务。


2.根据权利要求1所述的管理方法,其特征在于,监测测试任务的可用状态之前,还包括:
判断是否接收到web界面的任务修改指令;
若是,根据所述任务修改指令更改所述测试任务的可用状态。


3.根据权利要求2所述的管理方法,其特征在于,判断是否接收到web界面的任务修改指令之前,还包括:
接收所述web界面建立的测试任务;
保存所述测试任务;
根据所述测试任务的任务关键词创建所述动态队列或将所述测试任务连接至对应的动态队列。


4.根据权利要求1所述的管理方法,其特征在于,若所述测试任务的可用状态为不可用,还包括:
获取所述工作进程的进程号,根据所述进程号关闭所述工作进程。


5.根据权利要求1所述的管理方法,其特征在于,监测测试任务的可用状态包括:
利用所述动态队列中调...

【专利技术属性】
技术研发人员:徐基法邓淮谦
申请(专利权)人:苏州浪潮智能科技有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1