问题可能是由于使用 aiomysql 异步连接池时,没有正确关闭某些异步对象。解决方法如下:
async with aiomysql.create_pool(host=host, port=port, user=user, password=password, db=db, loop=loop) as pool: async with pool.acquire() as conn: async with conn.cursor() as cursor: await cursor.execute(sql) result = await cursor.fetchone() return result
参考示例:
import asyncio import aiomysql
async def select_mysql(): host = 'localhost' port = 3306 user = 'root' password = 'root' db = 'test_db'
try:
pool = await aiomysql.create_pool(
host=host,
port=port,
user=user,
password=password,
db=db,
loop=loop)
async with pool.acquire() as conn:
async with conn.cursor() as cursor:
await cursor.execute("SELECT * from test_table")
result = await cursor.fetchone()
return result
pool.close()
await pool.wait_closed()
except Exception as e:
print(e)
if name == 'main': loop = asyncio.get_event_loop() result = loop.run_until_complete(select_mysql()) print(result)
下一篇:aioodbc执行多个操作速度慢