【发布时间】:2019-04-03 13:20:42
【问题描述】:
这可能是一个愚蠢的问题,但我似乎无法异步运行 python google-clood-bigquery。
我的目标是同时运行多个查询并等待所有查询在asyncio.wait() 查询收集器中完成。我正在使用asyncio.create_tast() 来启动查询。
问题是每个查询都在开始之前等待前一个查询完成。
这是我的查询函数(很简单):
async def exec_query(self, query, **kwargs) -> bigquery.table.RowIterator:
job = self.api.query(query, **kwargs)
return job.result()
既然我不能等待job.result(),我应该等待别的吗?
【问题讨论】:
-
必须使用
asyncio吗? Bigquery 的 python api 不支持异步 yeild,因此更好的选择可能是在某些 ThreadPool 执行器的后台执行查询。 -
我刚开始使用 python,但是是否可以使用您的方法将查询包装为异步调用?
标签: python async-await google-bigquery