【发布时间】:2019-10-15 11:18:18
【问题描述】:
我正在尝试从循环中触发协程。这是我想要实现的一个简单示例:
import time
import random
import asyncio
def listen():
while True:
yield random.random()
time.sleep(3)
async def dosomething(data: float):
print("Working on data", data)
asyncio.sleep(2)
print("Processed data!")
async def main():
for pos in listen():
asyncio.create_task(dosomething(pos))
if __name__ == '__main__':
loop = asyncio.get_event_loop()
loop.run_until_complete(main())
不幸的是,这不起作用,我的 dosomething 协程永远不会执行......我做错了什么?
【问题讨论】:
-
Async 还会抱怨
main在释放控制权之前花费了太多时间。这只是一个警告,但值得在您的实际应用中考虑。
标签: python python-asyncio coroutine