我有一個多線程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