Как я могу остановить и перезапустить сервер Flask между различными тестами, не убивая основной процесс Python? [закрытоPython

Программы на Python
Ответить
Anonymous
 Как я могу остановить и перезапустить сервер Flask между различными тестами, не убивая основной процесс Python? [закрыто

Сообщение Anonymous »

Я провожу несколько тестов алгоритма в одном приложении Python. Для каждого теста я запускаю сервер Flask, создаю объект Network, а затем создаю несколько объектов Node внутри этой сети.
В идеале я хочу запускать один тест за другим, не перезапуская всю программу, поскольку перезапуск всего требует времени.
Проблема в следующем:
Если я попытаюсь выключить и перезапустить сервер Flask между тестами, он не будет работать должным образом (Flask не полностью останавливается и перезапуск).
Если я сохраняю тот же экземпляр Flask и просто создаю новую сеть и новые узлы, некоторое состояние или данные сохраняются из предыдущего теста, что вызывает проблемы в следующем тесте.
Я пробовал запустить Flask с параметрами debug=True и debug=False, но это не решило проблему.
Вот как я запускаю сервер:

Код: Выделить всё

flask_server = FlaskServer(network)
def run_server():
flask_server.run()

server_thread = threading.Thread(target=run_server)
server_thread.daemon = False
server_thread.start()
time.sleep(2)  # Give time for the server to start

# In class Flask
def run(self, host="0.0.0.0", port=5000, debug=False):
self.__app.run(host=host, port=port, debug=debug, use_reloader=False)
Есть ли способ:
Запустить Flask, чтобы /shutdown работал (с помощью Werkzeug)?
Остановить Flask без остановки основного процесса?
Перезапустить Flask несколько раз в одном и том же процессе Python?
Или рекомендуется поддерживать постоянную работу Flask и просто сбрасывать внутреннее состояние вместо перезапуска сервера?>

Подробнее здесь: https://stackoverflow.com/questions/798 ... ut-killing
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»