有没有一种方法可以异步运行pandas run_sql_query?

时间:2020-05-27 08:47:55

标签: python pandas asynchronous async-await

我正在使用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_dfself.so_df

为什么会这样?

0 个答案:

没有答案