Приложение "Флажок" "Перезапуск со статусом"
Я создал несколько флеш-приложений, но в своем последнем проекте я заметил что-то странное в режиме разработки. Вторая строка обычного сообщения в терминале, которое всегда читает:
* Running on http://127.0.0.1:5000/
* Restarting with reloader
был заменен на:
* Restarting with stat
Я не думаю, что я сделал что-то другое, на самом деле, я начал с клонирования проекта стартового набора, который я использовал много раз, что само по себе не демонстрирует такого поведения. Я также замечаю, что этот проект постоянно потребляет около 15% процессора, тогда как мой другой проект едва близок.
Любые идеи, почему это происходит?
Ответы
Ответ 1
Проверьте свою версию Werkzeug. Версия 0.10 была только что выпущена, и в загрузчик были внесены многочисленные изменения. Одним из изменений является то, что используется перегрузчик опросов по умолчанию; старый pyinotify reloader был явно неточным. Если вы хотите более эффективный опрос, установите пакет watchdog
. Вы можете увидеть код, связанный с этим здесь.
Когда Werkzeug не может найти сторожевой таймер, он использует перегрузчик stat
, в противном случае он использует то, что использует сторожевой таймер перегрузчика, который может варьироваться в зависимости от платформы. Это сообщение просто для того, чтобы вы знали, какой из них используется.
Сторожевой таймер может быть несовместим с Gevent. Если вы используете gevent и у вас возникают проблемы с перегрузчиком при использовании Watchdog, проверьте эту проблему на GitHub.
Ответ 2
Используйте run(use_reloader=False)
чтобы отключить перегрузчик.
Это дало мне некоторые проблемы, когда он не смог найти файл моего сервера при перезапуске. Это добилось цели. Выполнено только один раз, и все заработало. Довольно странно.
Ответ 3
возможно, вы работали с debug=True;
после установки debug=False
все будет хорошо. app.run(debug=False)