python - 有没有办法异步运行 pandas run_sql_query?
问题描述
我正在使用n
查询从 Postgres 数据库中读取数据。这些查询中的每一个都可能需要相当长的时间在数据库上执行,所以我想异步执行它们。
我正在尝试通过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
为什么会这样?
解决方案
推荐阅读
- jquery - 选择2多个标签占位符样式在聚焦/交互后发生变化?
- webstorm - 如何让 Emmet 使用“与我一起编写代码”功能?
- javascript - 没有提交的图像上传进度条 - Javascript
- java - 每当我声明多个字符串变量并尝试从第二个字符串变量中获取用户输入时,它会突然跳过 Java 中的用户输入行
- javascript - 如何防止由于大量 HTML 导致 Javascript 执行导致页面无响应?
- vhdl - 转储 vhdl 项目中子模块输入输出的所有值
- c# - 如何每次向随机位置添加对象的力?
- azure - 部署 Azure 防火墙 IP 组更改失败并出现冲突
- javascript - 在 Jest 中测试回调函数
- c - 释放链表内的 strdup