我尝试使用asyncio从elasticsearch中获取响应。我将查询收集到一个列表中的elastic,然后我迭代该列表,为每个查询做出响应。
这是我的代码:
”
async def make_response(query, es):
res = await es.search(index='index_name', query=query, size=10000)
return res
query_list = make_queries_list_db()
async def main():
list_of_res = []
for enum, el in enumerate(query_list):
es = AsyncElasticsearch(port, auth)
list_of_res.append(make_response(query_list[enum],es))
await asyncio.gather(*list_of_res)
asyncio.run(main())
”
这样做,我仍然有错误,如“未关闭的客户端会话”或“连接时间超过”。如何使用asyncio与elasticsearch以正确的方式?
1条答案
按热度按时间klsxnrf11#
所以我遇到了完全相同的问题,并设法从pypi项目https://pypi.org/project/elasticsearch-async/中拼凑出了答案
我的原始代码看起来像这样
为了解决这个问题,我简单地在代码末尾添加了以下内容
这并不完全是你的代码,但希望能帮助你指出你需要的方向。