Flask SocketIO自动重新加载不起作用(在代码更改/开发时)

时间:2018-07-04 18:35:22

标签: flask werkzeug flask-socketio

使用app.run/flask run --host = 0.0.0.0 --port 8080,自动重新加载程序(在代码更改时)可以正常工作。

但是,一旦我将flask_socketio添加到混合中,它就会停止工作。

例如带来:

from flask_socketio import SocketIO, send, emit
socketio = SocketIO(app, path='/kpi/socket.io')
socketio.run(app, host='0.0.0.0', port=8080, debug=True, use_reloader=True, use_debugger=True)

requirements.txt

Flask==1.0.2
Flask-Bootstrap==3.3.7.1
Gunicorn==19.8.1
inotify==0.2.9
pymysql==0.7.2
flask-socketio==3.0.1
eventlet==0.23.0
socketIO-client==0.7.2

我的日志中确实显示了“ * stat重新启动”,就像我通常运行flask时一样。

外部信息:这在docker容器中运行,我在其中有一个dev组成文件,在其中运行dev模式,并为enf变量设置了FLASK_DEBUG = 1。使用nginx将其余的代理到端口80,然后我将该服务器分配到另一个本地端口。直到我添加socketio,这一切都正常工作。

1 个答案:

答案 0 :(得分:0)

最后这样做:

在开发人员中运行此程序(这为wsgi带来了werkzeug调试器)

# TODO run this only in dev
from werkzeug.debug import DebuggedApplication
app.debug = True
app.wsgi_app = DebuggedApplication(app.wsgi_app, evalex=True)

然后使用超级用户并运行uwsgi而不是包含标志

--py-autoreload 1

它们都返回我想要的开发功能。只需使它们现在仅以开发人员模式运行即可,我很好。