卸载 uwsgi 动态应用程序

卸载 uwsgi 动态应用程序

我有一个 uWSGI 设置,我在其中运行动态模式并向其中添加应用程序。所有应用程序都基于相同的代码库,但每个应用程序都有自己的设置文件。它运行良好。

比如说,我想更改一个已加载的应用程序的设置。有没有办法让 uwsgi 重新加载应用程序,而不是重新启动整个 uwsgi 服务器?在 Emperor 模式下,我只需触摸配置文件即可。如何在动态模式下实现等效结果?

答案1

不幸的是你不能。销毁 Python 子解释器(以及 Perl 或 Lua)是一项相当弱的操作,无法释放很多东西,从而导致非常糟糕的结果。

例如,基于 C 的共享 Python 模块无法安全地释放(因为其他解释器可以引用它们),以及更多与操作系统相关的问题,如打开的文件描述符等。

您能做的最好的事情就是重新加载工人(使用链式重新加载技巧来减少停机时间)。

注意:你只需要重新加载工作程序,而不是整个实例

相关内容