2011-04-08 46 views
3

您好,我想知道重新导入或重新执行模块的最佳方式,因为我的Web服务器只有一个Apache会话用于我的所有域和应用程序,如果我需要在一个应用程序上进行一些更改重新启动服务器会影响其他人,因此寻找调用模块的最佳方式。如果我选择子流程,我将需要打印回复,但我不知道是最安全的沟通方式。请告诉我你的经验是最好的方法?帮助在重新加载或子进程之间进行选择

提前致谢!

+0

你使用'mod_wsgi'吗? – 2011-04-08 10:10:53

+0

我不明白你的设置或问题。重新启动Apache是​​如此之快以至于人们很难注意到,我不确定为什么单个apache会话意味着你不能单独重启你的python服务器。 – 2011-04-08 10:27:29

+0

@ S.Lott是的,我使用mod_wsgi,但这不是问题 – hidura 2011-04-08 12:03:05

回答

1

重新加载模块在生产环境中很少是一个好主意;这是一个用于调试的机制。重新加载模块时,模块的内容(类,函数,数据)将被替换,但对来自其他模块的这些项的现有引用不受影响。这对于类特别重要:内存中的现有对象仍旧引用旧类,而重载后生成的对象引用新类。

还有另外一种可能需要考虑的选择:从文件加载Python代码并执行它。比完整的子过程更少的开销,并且与模块的其余部分紧密耦合。原则上,重新加载模块时需要重新执行相同的注意事项,但是由于更加灵活,因此您不太想引用exec'd代码。

+0

谢谢你的意思是我要去做子程序,因为我没有太多的时间来做长代码。谢谢!!!! – hidura 2011-04-08 12:16:35

相关问题