使用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,这一切都正常工作。
答案 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
它们都返回我想要的开发功能。只需使它们现在仅以开发人员模式运行即可,我很好。