我有一个 Flask 服务器,由于多种原因,我需要在我的 uwsgi 配置中设置
master = false
。但由于这个原因,我无法再自动重新加载文件更改。
这是我的 uwsgi ini
[uwsgi]
master = false
enable-threads = true
wsgi-file = /opt/merlin/main.py
callable = app
protocol = http
http-socket = localhost:5000
daemonize = /var/log/merlin/merlin-app.log
env = FLASK_ENV=development
py-autoreload = 1
我需要使用
master = false
的原因是我正在导入pandas
和google.cloud.bigquery
,这会导致错误:
uWSGI listen queue of socket "localhost:5000" (fd: 3) full !!! (2871782829/10922)
不太确定这个问题。探索更多我发现它与 PIL 相关,可能导致它无法以 master = true 运行。
那么,有什么方法可以在 uwsgi 中使用 master = false 运行 python 自动重新加载吗?
总结评论中的讨论:
master = true
。您将需要它来获得 uWSGI 的许多更好的功能。http = localhost:5000
让 uWSGI 启动一个单独的 http 解析/路由进程; http-socket = ...
做了不同(更糟糕)的事情,并且protocol = http
只是将默认协议设置为http
,这是你不想要的。daemonize =
;使用系统的进程管理器(例如 systemd)来管理 uWSGI 及其登录位置。