您好,我想知道重新导入或重新执行模块的最佳方法,因为我的所有域和应用程序都只有一个Apache会话的web服务器,如果我需要对一个应用程序进行一些更改,重新启动服务器会影响其他应用程序,所以请寻找重新调用模块的最佳方法。如果我选择子流程,我将需要打印响应,但我不知道这是最安全的通信方式。请以你的经验告诉我哪种方式最好?
提前谢谢!
最佳答案
在生产环境中,重新加载模块很少是个好主意;这是一种用于调试的机制。当重新加载模块时,模块的内容(类、函数、数据)被替换,但对其他模块的这些引用的引用不会受到影响。这对于类来说尤其重要:内存中的现有对象仍然引用旧类,而在重新加载之后生成的对象引用新类。
您可能还需要考虑另一种选择:从文件加载Python代码并执行它。与完整的子进程相比开销更小,与程序其余部分的紧密耦合也比模块少。原则上,对于重新执行与重新加载模块一样,同样的注意事项也适用于重新执行,但是您不太想引用exec代码,因为它需要更多的工作。
关于python - 帮助选择重新加载还是子过程,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5590396/