一种从数据库加载Python脚本并使用的方法及系统技术方案

技术编号:33469759 阅读:25 留言:0更新日期:2022-05-19 00:47
本发明专利技术公开了一种从数据库加载Python脚本并使用的方法及系统,所述方法包括如下步骤:编写脚本,并将编写完成的脚本以脚本ID为key值,脚本内容为value值保存入数据库中;根据脚本ID,从数据库中取出脚本内容,并通过直接获取脚本的函数对象的方式直接运行和/或通过创建并返回模块对象的方式封装为包。通过应用本方法及本系统可以节约启动运行环境的时间,提高脚本的启动速度。提高脚本的启动速度。提高脚本的启动速度。

【技术实现步骤摘要】
一种从数据库加载Python脚本并使用的方法及系统


[0001]本专利技术属于计算机
,具体而言属于一种从数据库加载Python脚本并使用的方法及系统。

技术介绍

[0002]对于支持执行用户自定义Python脚本的系统中,是否能方便有效地管理用户提交的自定义Python脚本是一个必须要面对的问题。
[0003]一般来说,支持执行用户自定义脚本的系统,往往会把用户自定义脚本保存为本地文件来直接执行(如:用PHP编写的Wordpress),也有将用户自定义脚本放入容器中运行的方式(各家云厂商的serverless平台),然而上述方法均存在其各自的弊端。
[0004]对于保存为本地文件直接运行的方式,当服务器存在多台时,必然要做额外的工作保证各个服务器上的用户自定义脚本文件一致,同时本地文件也会在运行时被缓存,脚本更新后必须清除缓存才能执行新版本的脚本。
[0005]对于放入容器中运行的方式,首先由于容器中需要启动一个完整的,和主程序隔离的环境,耗费资源比较多,并且在脚本更新后,需要更新容器才能执行新版本的脚本,加剧了本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种从数据库加载Python脚本并使用的方法,其特征在于,包括如下步骤:编写脚本,并将编写完成的脚本以脚本ID为key值,脚本内容为value值保存入数据库中;根据所述脚本ID,从数据库中取出脚本内容,并通过直接获取脚本的函数对象的方式直接运行和/或通过创建并返回模块对象的方式封装为包。2.根据权利要求1所述的方法,其特征在于,所述直接运行脚本的方法包括如下步骤:根据所述脚本ID,创建脚本运行上下文;加载脚本,并返回加载脚本后的上下文;从所述加载脚本后的上下文中获取脚本中待调用的函数,并直接运行所述函数。3.根据权利要求2所述的方法,其特征在于,所述函数运行结束之后会返回HTTP响应,并展示所述函数的返回值。4.根据权利要求1所述的方法,其特征在于,所述封装为包的方法包括如下步骤:用户自定义脚本运行过程中,遇到导入语句时,根据所述导入语句中的指定ID从数据库中查询脚本ID;若所述脚本ID存在,则根据所述脚本ID生成模块对象;为待导入脚本创建上下文并加载所述待导入脚本,将加载脚本后的上下文作为模块的上下文填入所述模块对象;返回所述模块对象,以供所述用户自定义脚本作为包进行导入。5.根据权利要求4所述的方法,其特征在于,在运行用户自定义脚本之前,还包...

【专利技术属性】
技术研发人员:蒋烁淼周逸灵
申请(专利权)人:上海驻云信息科技有限公司
类型:发明
国别省市:

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

1