Иногда необходимо выполнить какую-то некритическую асинхронную операцию, но я не хочу ждать ее завершения. В реализации сопрограммы 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