Сервер Flask не останавливается после однократного нажатия Ctrl + C. Нужно нажать дважды - PullRequest
0 голосов
/ 07 ноября 2019

Поэтому я использую колбу вместе с Кафкой для создания веб-приложения, которое позволяет пользователям отправлять определенные задания. Я создал несколько потоков, и каждый поток обрабатывает свой собственный запрос. Проблема, с которой я сталкиваюсь, заключается в том, что производитель kafka не отправляет сообщения потребителю. Когда я нажимаю CtRl + C на сервере фляги, только тогда производитель kafka затем отправляет сообщение. Когда я снова нажимаю Ctrl + C, сервер колб останавливается (нужно нажать два раза, чтобы полностью остановиться). Давно почесал голову над этой проблемой. Нужна помощь.

Мой основной метод в app.py выглядит следующим образом, мне нужно запустить поток, как только я запускаю сервер, и несколько фоновых задач с использованием BackgroundScheduler:

if __name__ == "__main__":   
    notification_thread = threading.Thread(target=minimization_notification,args = ())
    notification_thread.start()

    scheduler = BackgroundScheduler(daemon=True,job_defaults=job_defaults)
    scheduler.add_job(middleware.generate_graphs, 'interval', minutes=10)
    scheduler.add_job(middleware.copy_db, 'interval', minutes=5)
    scheduler.start()

    app.jinja_env.cache = {}
    hostip = socket.gethostbyname(socket.gethostname())
    app.run(debug=False, port=5000, threaded=True, host=hostip,use_reloader=False)
...