asyncio
не может запускать произвольный код "в фоновом режиме" без использования потоков. Поскольку user4815162342 отмечено как asyncio
, вы запускаете цикл обработки событий, который блокирует основной поток и управляет выполнением сопрограмм.
Если вы хотите использовать asyncio
и воспользоваться его преимуществами, вам следует переписать все ваши функции, которые используют сопрограммы, чтобы они были сопрограммами, либо до основной функции - точки входа вашей программы. Эта основная сопрограмма обычно передается на run_until_complete
. Этот небольшой пост раскрывает эту тему более подробно.
Поскольку вы заинтересованы в Flask, взгляните Quart : это веб-фреймворк, который пытается реализовать Flask API (насколько это возможно) с точки зрения asyncio
. Причина, по которой этот проект существует, заключается в том, что чистый Flask не совместим с asyncio
. Кварта написана для совместимости.
Если вы хотите остаться с чистым Flask, но у вас есть асинхронный материал, взгляните на gevent . Благодаря патчированию обезьяны это может сделать ваш код асинхронным. Хотя у этого решения есть свои проблемы (именно поэтому был создан asyncio
).