我试图学习如何在Python中使用异步框架。我有下面的代码,但是它给出了错误:
事件循环在将来完成之前停止。
还请更新在哪里捕获代码的输出。
代码:
import asyncio
import aiopg
dsn = 'dbname=dvdrental user=postgres password=password host=127.0.0.1'
async def go():
pool = await aiopg.create_pool(dsn)
async with pool.acquire() as conn:
async with conn.cursor() as cur:
await cur.execute("Select * from actor")
ret = []
async for row in cur:
ret.append(row)
assert ret == [(1,)]
loop = asyncio.get_event_loop()
loop.run_until_complete(go())发布于 2018-02-08 08:57:47
在退出go()协同线和循环停止之前,池不会关闭。
使用async with aiopg.create_pool()而不是await aiopg.create_pool(),或者在coroutine末尾显式调用pool.close()/await pool.await_closed()。
https://stackoverflow.com/questions/48673117
复制相似问题