@zaart

Как правильно завершить процесс tornado (python)?

Здравствуйте!

Написал скрипт сервера на питоне с помощью фреймворка Tornado. Но столкнулся с проблемой, когда я завершаю работу скрипта, сам процесс не завершается и остается висеть в фоне. Из-за этого порт не освобождается и я не могу снова запустить скрипт. Подскажите, пожалуйста, что делать?

6081ef1bcabea323622814.png

Код веб сервера

# Класс, реализующий веб-сервер
class WebServer(tornado.web.Application):

    def init(self):
        self.fd = FaceDetector()

        # Прописываем роутинг
        handlers = [
            (r"/FindFaces", FindFacesHandler),
            (r"/PredictFaceShape", PredictFaceShapeHandler),
            (r"/CompareFaces", CompareFacesHandler),
        ]
        # Настройки веб-сервера
        settings = dict(
            cookie_secret="TODO:_GENERATE_YOUR_OWN_RANDOM_VALUE_HERE",
            debug=True
        )
        # Передаём обработчики запросов и настройки в конструктор базового класса
        super().init(handlers, **settings)

    # Запускает веб-сервер в работу
    def run(self, port: int):
        # Указываем, какой порт будет прослушивать сервер
        self.listen(port, address='127.0.0.1')
        # Запускаем цикл обработки событий
        shutdown_event = tornado.locks.Event()
        tornado.ioloop.IOLoop.current().run_sync(shutdown_event.wait)

  • Вопрос задан
  • 60 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы