ElasticSearch Py的异步后端
elasticsearch-async的Python项目详细描述
这是用于elasticsearch-py的适配器,它基于 python的asyncio模块。现在所有的api调用都返回一个未来的包装 回应。
嗅探(在请求时)也可以通过预定的协程来完成。
python 3.5+示例
importasynciofromelasticsearch_asyncimportAsyncElasticsearchclient=AsyncElasticsearch(hosts=['localhost','other-host'])asyncdefprint_info():info=awaitclient.info()print(info)loop=asyncio.get_event_loop()loop.run_until_complete(print_info())loop.run_until_complete(client.transport.close())loop.close()
python 3.4的示例
importasynciofromelasticsearch_asyncimportAsyncElasticsearchclient=AsyncElasticsearch(hosts=['localhost','other-host'])@asyncio.coroutinedefprint_info():info=yield fromclient.info()print(info)loop=asyncio.get_event_loop()loop.run_until_complete(print_info())loop.run_until_complete(client.transport.close())loop.close()
带有ssl上下文的示例
importasynciofromelasticsearch_asyncimportAsyncElasticsearchfromelasticsearch.connection.http_urllib3importcreate_ssl_contextcontext=create_ssl_context(cafile="/certs/ca/ca.crt")client=AsyncElasticsearch(hosts=['elasticsearch-xpack'],ssl_context=context,http_auth=('elastic','changeme'))@asyncio.coroutinedefprint_info():info=yield fromclient.info()print(info)loop=asyncio.get_event_loop()loop.run_until_complete(print_info())loop.run_until_complete(client.transport.close())loop.close()
AsyncElasticsearch引入了一个额外的参数loop,可以是 用于传入希望客户端使用的事件循环。默认情况下 asyncio.get_event_loop()将被使用。
安装
elasticsearch-async可通过pypi获得,因此您可以使用pip安装它
pip install elasticsearch-async
许可证
2015 ElasticSearch版权所有
根据apache许可证2.0版(以下简称“许可证”)授权; 除非符合许可证,否则您不能使用此文件。 您可以在
http://www.apache.org/licenses/LICENSE-2.0
除非适用法律要求或书面同意,否则软件 根据许可证分发是按“原样”分发的, 无任何明示或默示的保证或条件。 有关管理权限的特定语言和 许可下的限制。