【发布时间】:2021-10-25 17:46:34
【问题描述】:
我有三个表,每个表都需要大约 1 分钟来查询(即总共 3 分钟)
from my_utils import get_engine
import pandas as pd
def main():
con1 = get_engine("table1")
con2 = get_engine("table2")
con3 = get_engine("table3")
df1 = pd.read_sql(query1,con=con1)
df2 = pd.read_sql(query2,con=con2)
df3 = pd.read_sql(query3,con=con3)
main()
让天空“异步”。
因此我尝试了以下方法(我对使用 asyncio 比较陌生)
.
.
import asyncio
async def get_df1(query1):
df1 = pd.read_sql(query1,con=con1)
return df1
async def get_df2(query2):
df2 = pd.read_sql(query2,con=con2)
return df2
async def get_df3(query3):
df3 = pd.read_sql(query3,con=con3)
return df3
async def main():
df1,df2,df3 = await asyncio.gather(get_df1(),get_df2(),get_df3())
asyncio.run(main())
它会运行,但它与同步运行所用的时间完全相同。
我错过了什么吗?
【问题讨论】:
-
如果目标只是并行执行查询并且您不喜欢异步协程,您可能还想查看此答案:stackoverflow.com/questions/51426533/…
标签: python pandas asynchronous python-asyncio