我正在使用aiohttp
.
一些协程需要使用aiomysql
库调用数据库。的文档aiomysql
有以下示例:
import asyncio
import aiomysql
loop = asyncio.get_event_loop()
async def test_example():
conn = await aiomysql.connect(host='127.0.0.1', port=3306,
user='root', password='', db='mysql',
loop=loop)
cur = await conn.cursor()
await cur.execute("SELECT Host,User FROM user")
print(cur.description)
r = await cur.fetchall()
print(r)
await cur.close()
conn.close()
loop.run_until_complete(test_example())
我的问题是关于全局变量的定义loop
:
loop = asyncio.get_event_loop()
我真的需要将loop
其作为全局变量保存在某个地方,还是可以asyncio.get_event_loop()
在需要时调用它?
例如,上面的代码示例,当我连接到数据库时,我可以获得事件循环:
conn = await aiomysql.connect(host='127.0.0.1', port=3306,
user='root', password='', db='mysql',
loop=asyncio.get_event_loop())
调用是否有不小的运行时成本asyncio.get_event_loop()
或我缺少的其他东西?