Я читаю данные из Postgres БД с запросами n
. Выполнение каждого из этих запросов в БД может занять значительное количество времени, поэтому я хотел бы выполнить их асинхронно.
Я пытаюсь выполнить sh это через модуль 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
Почему так?