У меня запущена многопоточная служба xmlrpc, которая хранит огромный объем данных ~ 2G в памяти. В настоящее время, если я хочу обновить метод, который предоставляет сервер, я должен перезапустить службу. Проблема здесь заключается в том, что если я перезапускаю службу, ей нужно загрузить все данные, которые были в памяти, обратно в память, используя базу данных или данные с полок.
Я использую такие методы:
xmlrpc_getUser(self, uid):
return self.users[uid]
Я надеялся, что смогу использовать эти методы в качестве прокси для другого модуля, поэтому мои методы будут выглядеть примерно так
xmlrpc_getUser(self, uid):
return self.proxy.getUser(uid)
Таким образом, я мог бы обновить код на сервере разработки, а затем просто скопировать мой прокси-модуль обновления на рабочий сервер без необходимости перезапуска.
Я пытался добавить
import service_proxy
конструктору моего сервисного контроллера xmlrpc, но я думаю, что модуль кэшируется и не будет перезагружаться.
Есть ли хороший способ сделать это? Спасибо.