我有一个多线程xmlrpc服务正在运行,它在内存中存储了大量的数据〜2G。目前,如果我想更新服务器公开的方法,我必须重新启动服务。这里的问题是,如果我重新启动服务,它需要通过使用数据库或使用搁置的数据将内存中的所有数据加载回内存。Python:在XMLRPC服务器中重载类的最佳方法
我使用这样的方法:
xmlrpc_getUser(self, uid):
return self.users[uid]
我希望我可以做的仅仅是使用这些方法作为代理到另一个模块,所以我的方法看起来更像是这个
xmlrpc_getUser(self, uid):
return self.proxy.getUser(uid)
这样我就可以更新开发服务器上的代码,然后只需将我的更新代理模块复制到生产服务器,而无需重新启动。
我尝试将 import service_proxy 添加到我的xmlrpc服务控制器的构造函数中,但我认为该模块已被缓存且不会重新加载。
有没有很好的方法来做到这一点?谢谢。
请注意,['reload'函数](https://docs.python.org/3/library/importlib.html#importlib.reload)已经在Python 3中移动了。 – 2017-08-07 21:10:16