Автоматическая перезагрузка Flask SocketIO не работает (при изменении / разработке кода) - PullRequest
0 голосов
/ 04 июля 2018

Автоматический перегрузчик (при изменении кода) работает нормально, используя 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

Я получаю «* Перезапуск со статистикой» в журналах, так же, как если бы я обычно использовал колбу.

Посторонняя информация: это выполняется в контейнере Docker, где у меня есть файл compose для dev, где я запускаю режим dev, и переменная env для FLASK_DEBUG = 1. Используя nginx для прокси остального до 80 порта, я подключаю его к другому локальному порту. Это все работает отлично и модно, пока я не добавлю socketio.

1 Ответ

0 голосов
/ 06 июля 2018

Завершая это:

Запуск этого в dev (это приводит к отладчику werkzeug для wsgi)

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

Затем используйте supervisord и запустите uwsgi вместо флага

--py-autoreload 1

Оба возвращают ту функциональность, которую я хочу в разработке. Просто нужно заставить их работать только в режиме разработки, и я в порядке.

...