一种Celery在线管理及自动执行任务的方法、系统和存储介质技术方案

技术编号:26478389 阅读:13 留言:0更新日期:2020-11-25 19:22
本发明专利技术公开了一种Celery在线管理及自动执行任务的方法、系统和存储介质,涉及计算机软件应用技术领域。所述方法基于Celery分布式框架,在Web中自定义任务并保存在数据库中,然后在线触发任务执行请求,为请求任务创建任务队列并为任务队列启动Worker进程,接下来使用Celery异步执行方法与Python动态执行方法进行自定义任务执行,实现任务逻辑在线变更及实时生效的需求。本发明专利技术方案在解决了现有技术中Celery无法在线创建注册任务且必须重启Celery服务才可执行任务的问题,以更加简便快捷的方式实现任务管理,缩减了系统的升级流程,提高了系统的稳定性及运维效率。

【技术实现步骤摘要】
一种Celery在线管理及自动执行任务的方法、系统和存储介质
本专利技术实施例涉及计算机软件应用
,具体来说涉及一种Celery在线管理及自动执行任务的方法、系统和存储介质。
技术介绍
Celery是一种Python开发的分布式队列的管理工具,可通过接口快速实现并管理一个分布式的任务队列。Celery作为一种分布式异步框架,具有高可用、简单、快速及灵活等特点,多被用以处理实时异步任务或周期性轮询任务,例如服务器数据采集、异步执行远程命令等多种场景。现有技术中,Celery任务注册方式主要通过在后台脚本文件中提前定义任务函数名及代码逻辑,在启动Celery服务后将带有指定注解的方法名注册到Celery中,便于后续Worker进程获取任务并执行。但其存在下述不足之处:一方面使用Celery后端静态注册任务信息的方式,在任务逻辑或参数更新时,必须要求开发或运维人员变更代码并进行代码升级发布,且必须要重启Celery服务才能生效最新代码。这种方式无法有效支持需要频繁修改代码逻辑或任务参数的应用场景,且增加了开发运维人员的工作复杂度。另一方面,重启Celery服务可能会强制中断正在执行的任务进程,无法保证系统稳定运行。
技术实现思路
本专利技术实施例提供了一种Celery在线管理及自动执行任务的方法、系统和存储介质,基于Celery分布式框架及Python动态语言特性,将自定义任务执行逻辑配置在数据库中,实现自定义任务的异步执行,提高系统运维效率。为实现上述目的,本专利技术公开了如下技术方案:本专利技术一方面提供一种Celery在线管理及自动执行任务的方法,所述方法包括以下步骤:在Web中自定义任务并保存在数据库中,在线触发任务执行请求;接收任务执行请求,为请求任务创建任务队列并为任务队列启动Worker进程,然后基于Celery异步执行方法与Python动态执行方法进行自定义任务执行。基于上述方案,进一步的,所述基于Celery异步执行方法与Python动态执行方法进行自定义任务执行,包括下述步骤:引用公共执行函数,通过Celery异步执行函数将任务相关信息作为执行参数发送至指定任务队列;Worker进程从指定任务队列中获取任务信息,利用Python动态定义函数将函数字符串转换为可调用函数;从任务信息中获取执行函数参数传入可调用函数,自动执行任务逻辑。进一步的,所述在Web中自定义任务并保存在数据库中,在线触发任务执行请求,包括下述步骤:登录Web服务新建执行函数,并将函数数据保存至后端执行函数数据表中;新建执行任务,选择执行函数并输入函数参数信息,并将数据保存至后端任务表中;在Web界面中选择执行任务,触发任务执行请求。进一步的,所述在Web中自定义任务之前,还包括下述步骤:准备Python环境,并在Python环境中进行Celery及其组件的安装;配置Celery调度引擎,启动Web服务与Celery服务进程。本专利技术另一方面提供一种Celery在线管理及自动执行任务的系统,所述系统包括任务管理模块和任务执行模块;任务管理模块,用以管理任务信息,操作人员在任务管理模块中自定义任务并保存在数据库中,然后在线触发任务执行请求,进入任务执行模块;任务执行模块,接收任务执行请求,为请求任务创建任务队列并为任务队列启动Worker进程,然后基于Celery异步执行方法与Python动态执行方法进行自定义任务执行。基于上述装置,进一步的,所述任务管理模块包括:函数管理单元,用以新建执行函数,将函数数据保存至后端执行函数数据表中;任务管理单元,用以新建执行任务,选择执行函数输入函数参数信息,并将数据保存至后端任务表中;任务触发单元,用以在Web界面中选择执行任务,触发任务执行请求。进一步的,所述任务执行模块包括:任务队列创建单元,用以接收任务执行请求,为请求任务创建任务队列并为任务队列启动Worker进程;Celery异步执行单元,通过Celery异步执行函数将任务相关信息作为执行参数发送至指定任务队列;Python动态执行单元,利用Python动态定义函数将Worker进程从指定任务队列中获取的任务信息由函数字符串转换为可调用函数;任务自动执行单元,用以从任务信息中获取执行函数参数传入可调用函数,自动执行任务逻辑。此外,本专利技术还提供一种计算机存储介质,所述计算机存储介质中包含有程序指令,当所述程序指令在计算机设备上运行时,使得计算机设备执行如上所述的Celery在线管理及自动执行任务的方法。
技术实现思路
中提供的效果仅仅是实施例的效果,而不是专利技术所有的全部效果,上述技术方案中的一个技术方案具有如下优点或有益效果:本申请实施例提供的一种Celery在线管理及自动执行任务的方法,基于Celery分布式框架,在Web中自定义任务并保存在数据库中,然后在线触发任务执行请求,为请求任务创建任务队列并为任务队列启动Worker进程,接下来使用Celery异步执行方法与Python动态执行方法进行自定义任务执行,实现任务逻辑在线变更及实时生效的需求。本实施例方案在每次任务执行时均从数据库中取得最新代码块,再由后端公共任务执行方法转换为可执行函数,因此操作人员在Web界面修改任务代码逻辑及参数时,无需重启服务即可保证执行的为最新任务,解决了现有技术中Celery无法在线创建注册任务且必须重启Celery服务才可执行任务的问题,以更加简便、快捷的方式实现任务管理,缩减了系统的升级流程,提高了系统的稳定性及运维效率。本申请实施例提供的一种Celery在线管理及自动执行任务的系统和存储介质,能够实现上述的Celery在线管理及自动执行任务的方法,并取得上文所述的技术效果。附图说明此处的附图被并入说明书中并构成说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。图1为本申请实施例提供的一种Celery在线管理及自动执行任务的方法流程示意图;图2为图1中步骤S3的实现过程流程示意图;图3为图1中步骤S4的实现过程流程示意图;图4为本申请实施例提供的一种Celery在线管理及自动执行任务的系统结构示意图。具体实施方式为使本
的人员更好地理解本专利技术中的技术方案,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本专利技术保护的范围。图1示出了本专利技术实施例一种Celery在线管理及自动执行任务的方法流程图示意图。参照图1,本实施例的方法,包括以下步骤:S1、准备Python环境,并在Python环本文档来自技高网
...

【技术保护点】
1.一种Celery在线管理及自动执行任务的方法,其特征在于,包括以下步骤:/n在Web中自定义任务并保存在数据库中,在线触发任务执行请求;/n接收任务执行请求,为请求任务创建任务队列并为任务队列启动Worker进程,然后基于Celery异步执行方法与Python动态执行方法进行自定义任务执行。/n

【技术特征摘要】
1.一种Celery在线管理及自动执行任务的方法,其特征在于,包括以下步骤:
在Web中自定义任务并保存在数据库中,在线触发任务执行请求;
接收任务执行请求,为请求任务创建任务队列并为任务队列启动Worker进程,然后基于Celery异步执行方法与Python动态执行方法进行自定义任务执行。


2.根据权利要求1所述的一种Celery在线管理及自动执行任务的方法,其特征在于,所述基于Celery异步执行方法与Python动态执行方法进行自定义任务执行,包括下述步骤:
引用公共执行函数,通过Celery异步执行函数将任务相关信息作为执行参数发送至指定任务队列;
Worker进程从指定任务队列中获取任务信息,利用Python动态定义函数将函数字符串转换为可调用函数;
从任务信息中获取执行函数参数传入可调用函数,自动执行任务逻辑。


3.根据权利要求1所述的一种Celery在线管理及自动执行任务的方法,其特征在于,所述在Web中自定义任务并保存在数据库中,在线触发任务执行请求,包括下述步骤:
登录Web服务新建执行函数,并将函数数据保存至后端执行函数数据表中;
新建执行任务,选择执行函数输入函数参数信息,并将数据保存至后端任务表中;
在Web界面中选择执行任务,触发任务执行请求。


4.根据权利要求1所述的一种Celery在线管理及自动执行任务的方法,其特征在于,所述在Web中自定义任务之前,还包括下述步骤:
准备Python环境,并在Python环境中进行Celery及其组件的安装;
配置Celery调度引擎,启动Web服务与Celery服务进程。


5.一种Celery在线管理及...

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

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

1