有时候需要执行一些非关键的异步操作,但是我不想等它完成。在龙卷风的协同程序实现中,你可以通过简单地省略 yield
关键字来“发射并忘记”一个异步函数。
我一直试图弄明白如何使用 Python 3.5中发布的新 async
/await
语法来“激活并忘记”。例如,一个简化的代码片段:
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()"