«Выстрелил и забыл» python async/awaitPython

Программы на Python
Anonymous
«Выстрелил и забыл» python async/await

Сообщение Anonymous »

Иногда необходимо выполнить какую-то некритическую асинхронную операцию, но я не хочу ждать ее завершения. В реализации сопрограммы Tornado вы можете «запустить и забыть» асинхронную функцию, просто опустив ключевое слово yield.

Я пытался выяснить, как «запустить и забыть» с новым async/awaitСинтаксис появился в Python 3.5. Например, упрощенный фрагмент кода:

async def async_foo():
print("Do some stuff asynchronously here...")

def bar():
async_foo() # fire and forget "async_foo()"

bar()


Однако происходит следующее: bar() никогда не выполняется, и вместо этого мы получаем предупреждение во время выполнения:

RuntimeWarning: coroutine 'async_foo' was never awaited
async_foo() # fire and forget "async_foo()"


Подробнее здесь: https://stackoverflow.com/questions/372 ... sync-await

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