在uwsgi + Flask中自动重载没有master的python

问题描述 投票:0回答:1

我有一个 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 自动重新加载吗?

python flask uwsgi
1个回答
0
投票

总结评论中的讨论:

  • 尽可能使用
    master = true
    。您将需要它来获得 uWSGI 的许多更好的功能。
  • 使用
    http = localhost:5000
    让 uWSGI 启动一个单独的 http 解析/路由进程;
    http-socket = ...
    做了不同(更糟糕)的事情,并且
    protocol = http
    只是将默认协议设置为
    http
    ,这是你不想要的。
  • 最好根本不要使用
    daemonize = 
    ;使用系统的进程管理器(例如 systemd)来管理 uWSGI 及其登录位置。
© www.soinside.com 2019 - 2024. All rights reserved.