是否可以在独立的cherrypy Web 应用程序中的单个模块上使用 python reload 命令(或类似命令)?我有一个基于 CherryPy 的 Web 应用程序,它经常被持续使用。我会时不时地做一个只影响一个模块的“重要”更改。我希望能够立即重新加载该模块,而不会影响 Web 应用程序的其余部分。诚然,完全重启很快,但是如果可能的话,我仍然希望避免几秒钟的停机时间。
以一种理智的方式重新加载模块非常非常困难。它会导致您的代码中潜在的陈旧对象具有无法查询的状态和微妙的错误。这不是你想做的事情。
真正的 Web 应用程序倾向于在其应用程序之前使用一个保持活动状态的服务器,例如带有 mod_proxy 的 Apache,作为反向代理。您启动新的应用服务器,更改反向代理的路由,然后才终止旧的应用服务器。
没有停机时间。没有疯狂的、不可调试的代码。