修改 Python 脚本时如何使 uWSGI 重新启动?

cul*_*rón 42 django uwsgi

不记得在哪里,但我读到 uWSGI 可以像 Django 开发服务器一样在修改项目脚本时重新加载自身。我在文档和互联网中都找不到。我怎样才能做到这一点?

我在我的工作机器上使用 Ubuntu 12.04,在舞台和生产服务器上使用 Debian Squeeze,Django 1.4 和 uWSGI 1.2。

Cal*_*eng 42

参考:http : //projects.unbit.it/uwsgi/wiki/Management

如果您已使用该--touch-reload=/path/to/special/file/usually/the.ini选项启动uwsgi,则重新加载您的 uWSGI 很简单,只需使用

touch /path/to/special/file/usually/the.ini

如果您想要“自动重新加载”功能,这是完成此操作的提示:http : //projects.unbit.it/uwsgi/wiki/TipsAndTricks#uWSGIdjangoautoreloadmode


小智 39

py-autoreload=N在较新的版本中有一个选项。只需设置N检查的频率(以秒为单位)(3 是一个很好的值)。

  • “仅在开发中使用”根据 [uwsgi docs](http://uwsgi-docs.readthedocs.org/en/latest/Options.html#py-auto-reload-py-autoreload-python-auto-reload-python -自动重载) (12认同)
  • 看起来 [touch-reload=/some/file](http://uwsgi-docs.readthedocs.org/en/latest/Options.html#touch-reload) 是一个更安全的选择 (4认同)

小智 12

如果您不想丢失 django autoreload,请注册此重新加载方法(即:在 settings.py 中):

import uwsgi
from uwsgidecorators import timer
from django.utils import autoreload

@timer(3)
def change_code_gracefull_reload(sig):
    if autoreload.code_changed():
        uwsgi.reload()
Run Code Online (Sandbox Code Playgroud)

现在,如果您更改代码,它将被重新加载。

添加一名作者