我正在做一个web服务,它需要用户输入的python代码在我的服务器上执行(我们有代码注入的检查)。我必须导入一个相当大的模块,所以我想确保我不会在每次有东西运行时启动python并从头开始导入模块(大约需要4-6秒)。
为此,我计划创建一个python (3.2)守护程序,它将用户输入代码作为模块导入,执行它,然后删除/垃圾收集该模块。我需要确保该模块从RAM中完全消失,因为此过程将继续,直到服务器重新启动。我读过很多东西,说这在python中是一件非常困难的事情。
做这件事最好的方法是什么?使用exec使用用户输入代码定义一个函数(用于变量作用域),然后执行该函数并以某种方式删除该函数,会不会更好?或者,有没有更好的方法来完成这个我错过的过程?
发布于 2012-07-23 21:58:10
您也许可以考虑创建一个由python守护进程组成的池
他们的目的将是服务于一个请求,然后死掉。
您必须编写一个池管理器,以确保总是有X守护进程在等待传入的请求。(X是等待守护进程的数量:取决于所需的工作负载)。池管理器必须观察守护进程池,并在每次进程完成时启动新实例。
https://stackoverflow.com/questions/11611351
复制相似问题