[发明专利]基于环境隔离的高并发python算法调用方法及介质有效
申请号: | 202111201141.6 | 申请日: | 2021-10-15 |
公开(公告)号: | CN113641343B | 公开(公告)日: | 2022-02-11 |
发明(设计)人: | 张聪聪;徐洋;李鹏旭;郝晓东;辛祥彬;石伟;单泽萌;申玲彩 | 申请(专利权)人: | 中汽数据(天津)有限公司 |
主分类号: | G06F8/20 | 分类号: | G06F8/20;G06F8/60 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 300385 天津市西青区中*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 环境 隔离 并发 python 算法 调用 方法 介质 | ||
1.一种基于环境隔离的高并发python算法调用方法,其特征在于,包括:
将python算法脚本部署到docker中;
搭建和接收Kafka消息队列;
调用所述python算法脚本中的python算法;
通过Kafka消息队列返回所述python算法的执行结果;
所述调用所述python算法脚本中的python算法包括:
根据消息传参获取待执行的算法名称和参数信息,根据算法名称通过懒加载从所述将python算法脚本部署到docker中建立的信息表中查询到部署这个算法的docker的ID信息,然后根据算法脚本调用工单携带的参数信息组建调用python的命令行语句。
2.根据权利要求1所述的调用方法,其特征在于,所述将python算法脚本部署到docker中包括:
根据python算法脚本,编写容器镜像文件dockerfile,创建包含不同语言版本的python基础环境的镜像;
将部署工单信息保存到mysql数据库中,所述部署工单信息包括脚本文件和脚本所需语言环境;
根据所述脚本所需语言环境,查找脚本部署所需的镜像;
根据所述脚本部署所需的镜像和所述脚本文件,组建命令行实现docker创建,然后启动docker容器服务,在启动docker容器服务的同时通过挂载路径方式将脚本文件传递到docker中。
3.根据权利要求2所述的调用方法,其特征在于,所述组建命令行实现docker创建,然后启动docker容器服务包括:
组建命令行实现docker创建;
根据脚本文件中的依赖版本文件requirement.txt,通过执行pipinstall–rrequirement.txt方式完善python脚本所需的执行环境;
启动docker容器服务。
4.根据权利要求1所述的调用方法,其特征在于,在所述将python算法脚本部署到docker中之后还包括:
记录docker的ID;
以算法名称作为KEY,所述ID作为VALUE,生成记录信息,将所述记录信息存储到mysql数据库和redis缓存数据库中。
5.根据权利要求1所述的调用方法,其特征在于,在所述将python算法脚本部署到docker中之后还包括:
获取修改后的脚本文件;
根据算法名称查找与所述算法名称相对应的部署docker的ID;
根据所述ID获取与所述ID相对应的docker,更新docker内的脚本文件和依赖版本文件requirement.txt,执行pipinstall–r requirement.txt更新python脚本所需的执行环境。
6.根据权利要求1所述的调用方法,其特征在于,所述通过Kafka消息队列返回所述python算法的执行结果包括:
搭建Kafka集群;
接收算法调用者发起的消息队列,所述消息队列中携带算法脚本调用工单;
对消息进行消费,在消费过程中,单起新线程去执行python算法的调用,在单线程中记录调用工单信息和消息队列的唯一编码,线程启动后,对消息队列直接返回接收成功;python算法调用的新线程执行完毕后,建立新的消息队列,返回执行结果和线程中记录的原消息队列的唯一编码至算法调用者。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中汽数据(天津)有限公司,未经中汽数据(天津)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111201141.6/1.html,转载请声明来源钻瓜专利网。