Python 在cherrypy中重新加载单个模块?

Python 在cherrypy中重新加载单个模块?,python,cherrypy,Python,Cherrypy,在一个独立的cherrypy web应用程序中,是否可以在单个模块上使用python重载命令(或类似命令)?我有一个基于CherryPy的web应用程序,经常被持续使用。我会不时做出一个“重要”的改变,只影响一个模块。我希望能够立即重新加载该模块,而不会影响web应用程序的其余部分。诚然,完全重启是很快的,但是如果可能的话,我还是希望避免几秒钟的停机时间。重新加载模块是非常非常困难的。这会导致代码中可能存在过时的对象,无法查询状态和微妙的bug。这不是你想做的事 真正的web应用程序倾向于使用一

在一个独立的cherrypy web应用程序中,是否可以在单个模块上使用python重载命令(或类似命令)?我有一个基于CherryPy的web应用程序,经常被持续使用。我会不时做出一个“重要”的改变,只影响一个模块。我希望能够立即重新加载该模块,而不会影响web应用程序的其余部分。诚然,完全重启是很快的,但是如果可能的话,我还是希望避免几秒钟的停机时间。

重新加载模块是非常非常困难的。这会导致代码中可能存在过时的对象,无法查询状态和微妙的bug。这不是你想做的事

真正的web应用程序倾向于使用一个在其应用程序前面保持活动状态的服务器,例如带有mod_代理的Apache,作为反向代理。启动新的应用程序服务器,更改反向代理的路由,然后才杀死旧的应用程序服务器


没有停机时间。没有疯狂的、不可调试的代码。

以理智的方式重新加载模块是非常非常困难的。这会导致代码中可能存在过时的对象,无法查询状态和微妙的bug。这不是你想做的事

真正的web应用程序倾向于使用一个在其应用程序前面保持活动状态的服务器,例如带有mod_代理的Apache,作为反向代理。启动新的应用程序服务器,更改反向代理的路由,然后才杀死旧的应用程序服务器


没有停机时间。没有疯狂、无法破解的代码。

@OmidRaha close,但没有雪茄。这个问题与cherrypy无关。我通常知道如何重新加载模块(请参阅我对pythonload命令的引用),我要寻找的是一种让CherryPy(不是我的代码)重新加载其中一个模块的方法。除非像在我的代码中调用重载一样简单?@OmidRaha close,但没有雪茄。这个问题与cherrypy无关。我通常知道如何重新加载模块(请参阅我对pythonload命令的引用),我要寻找的是一种让CherryPy(不是我的代码)重新加载其中一个模块的方法。除非像在我的代码中调用重载一样简单?是有关将CherryPy与mod_proxy一起使用的一些信息。(您可以随意使用nginx或其他替代Apache的工具。)我明白了。因此,让我的应用服务器运行两个实例(至少在修改内容时)。我已经在使用带有mod_代理的apache,所以这完全可以通过简单地为应用服务器使用两个不同的端口并在这两个端口之间切换来实现。但是,我认为重新启动apache以更改代理路由也会遇到同样的问题——当apache重新启动以使用其他服务器/端口时,用户可能无法获得响应。除非我可以实时更新代理路径/路由?Hmmmm…@ibrewster,是的,Apache支持这一点。Upvoted并希望添加uWSGI,一个Python应用程序必备的服务器,可以让您以多种方式编写代码,而不会丢失客户端连接。是有关将CherryPy与mod_proxy一起使用的一些信息。(您可以随意使用nginx或其他替代Apache的工具。)我明白了。因此,让我的应用服务器运行两个实例(至少在修改内容时)。我已经在使用带有mod_代理的apache,所以这完全可以通过简单地为应用服务器使用两个不同的端口并在这两个端口之间切换来实现。但是,我认为重新启动apache以更改代理路由也会遇到同样的问题——当apache重新启动以使用其他服务器/端口时,用户可能无法获得响应。除非我可以实时更新代理路径/路由?Hmmmm…@ibrewster,是的,Apache支持这一点。Upvoted并希望添加uWSGI,一个Python应用程序必备的服务器,可以让您以多种方式编写代码,而不会丢失客户端连接。