用户输入Python脚本执行守护进程
我正在研究一个需要用户输入python代码在我的服务器上执行的web服务(我们检查代码注入)。我不得不导入一个相当大的模块,所以我想确保我没有启动python,并在每次运行时从头开始导入模块(大约需要4-6s)。用户输入Python脚本执行守护进程
为此,我打算创建一个python(3.2)deamon,它将用户输入代码作为模块导入,执行它,然后删除/垃圾收集该模块。我需要确保该模块完全从RAM中消失,因为此过程将持续到服务器重新启动。我读过一堆这样的话,说这是python中很难做到的事情。
这样做的最好方法是什么?使用exec来定义一个带有用户输入代码的函数(用于变量范围),然后执行该函数并以某种方式删除该函数会更好吗?或者有没有更好的方法来完成我错过的这个过程?
你也许可以考虑创建一个python守护进程池?
他们的目的是服务一个请求,然后死亡。
您将不得不编写一个池管理器来确保始终有X守护程序进程等待传入请求。 (X是等待守护进程的数量:取决于所需的工作负载)。池管理器必须观察守护进程池,并在每次进程完成时启动新实例。
这会创建一个很大的开销,从Python加上所有被加载到RAM的库多次? – 2012-07-24 21:02:16
取决于你的硬件当然......装载所有附加库的python的内存占用量是多少? – gecco 2012-07-25 05:10:09
我将不得不检查,谢谢你的建议! – 2012-07-27 10:04:01
为每次运行启动一个新的python解释器似乎是最好的解决方案:为什么需要这么久?我宁愿检查它为什么需要这么长时间... – gecco 2012-07-23 11:38:13
我们正在加载圣人,其中有一个巨大的附加库需要提供给用户。 – 2012-07-23 12:55:51