我正在使用n
查询从Postgres数据库读取数据。这些查询中的每个查询都可能需要花费大量时间才能在DB上执行,因此我想异步执行它们。
我正在尝试通过async
模块来完成此任务,但是没有运气
class Test:
async def collect_items(self, conn_):
await pd.read_sql_query(items_query_string, conn_)
async def test_items(self, conn_):
self.item_df = self.collect_items(conn_)
async def collect_stockout(self, conn_):
await pd.read_sql_query(stockout_query_string), conn_)
async def test_stockout(self, conn_):
self.so_df = self.collect_stockout(conn_)
async def _collect_all_async(self, conn_):
await asyncio.gather(self.test_items(conn_), self.test_stockout(conn_))
def collect_all(self, conn_):
asyncio.run(self._collect_all_async(conn_))
但是,当我致电collect_all
时,我想等待所有查询完成,情况并非如此,因为它会在没有正确设置self.item_df
和self.so_df
为什么会这样?