Как запустить фоновые потоки при запуске приложения Flask через Gunicorn?Python

Программы на Python
Anonymous
Как запустить фоновые потоки при запуске приложения Flask через Gunicorn?

Сообщение Anonymous »

Я запускаю приложение Flask напрямую через интерпретатор.

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

if __name__ == '__main__':
t = Thread(target=run_schedule)
t.start()
context = ('cert.pem', 'key.pem')
app.run(host='0.0.0.0',port=8080,debug=False,ssl_context=context)
Функция run_schedule работает вечно, время от времени разблокируясь для выполнения задачи.

Очевидно, я должен использовать сервер wsgi, например, Gunicorn, когда больше не занимаюсь отладкой, но он не вызывает модуль через main(), поэтому поток не запускается.
Помещение их за пределы этого блока не сработает, потому что тогда поток запустится, если какой-либо другой код импортирует модуль!

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

@before_first_request
— это почти то, что мне нужно, но для этого мне нужно сначала отправить запрос на сервер. Не идеально.

Как рекомендуется это сделать? (Или фоновые потоки противоречат философии wsgi?)

Подробнее здесь: https://stackoverflow.com/questions/439 ... h-gunicorn

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